A/B test hooks with campaign links: judge after a week on installs, not views
The creator-growth method: same video, different hook, one store campaign link per variant, installs per campaign read after a week. Includes the iOS ct= link shape and the noise rule.
Set up a hook A/B test for {app} on {platform}. 1. One body, two or three hooks. Cut the same 20-40 s body and prepend each hook variant (0-3 s). Nothing else changes: same caption, same posting hour, same account. 2. One campaign link per variant. iOS: https://apps.apple.com/app/apple-store/id{APP_ID}?pt={PROVIDER_ID}&ct={platform}-{account}-{hookA}&mt=8 The ct value is at most 40 characters; use a short code per hook (hookA, hookB). Android: the Play store link with &referrer=utm_source%3D{platform}-{account}-{hookA}. Put the link in the bio or the pinned comment and change it when the variant changes, or run each variant from its own account if you have niche accounts. 3. Post each variant on a different day at the same hour, then repeat so each hook has 2-3 posts. A single post is one data point and one data point is weather. 4. Judge after a week. Read installs per campaign in App Store Connect under App Analytics, Sources (iOS) or the Play Console acquisition report by referrer (Android). Views are attention; installs are the result. A hook that wins on views and loses on installs lost. 5. Noise rule: at small volumes, percentage swings are noise and multiples are findings. A hook with 2x the installs of the other on the same views is a result; a 20 percent difference is a coin toss. Keep both and run another week. 6. Write down the winner, its installs and views, and the loser's, in one line, dated. The next test starts from the winner. Return: a table (variant, hook text, ct code, full link, post dates), and the one-line result template to fill after the week.
In Claude Code, paste the prompt as a message, or run /creator-growth which does this end to end.
Steps
- Build the campaign links before you shoot. The ct code goes in the filename of the variant so the edit and the link never get swapped.
- Post variants on different days at the same hour; repeat so each has 2-3 posts.
- After 7 days, read installs per campaign, not views. Write one dated line with the numbers.
- If one variant has a multiple of the other's installs, it won. If the gap is a percentage, run another week.
Example
App: a photo app for sellers. Platform: TikTok, account @cleanlisting.
| Variant | Hook | ct | Link | Post dates |
|---|---|---|---|---|
| A | Listing photo. Two taps. On the phone. | tt-cleanlisting-hookA | https://apps.apple.com/app/apple-store/id{APP_ID}?pt={PROVIDER_ID}&ct=tt-cleanlisting-hookA&mt=8 | Mon, Thu |
| B | Stop editing product photos on a laptop. | tt-cleanlisting-hookB | …&ct=tt-cleanlisting-hookB&mt=8 | Tue, Fri |
| C | It’s 11 pm and you have forty photos to list. | tt-cleanlisting-hookC | …&ct=tt-cleanlisting-hookC&mt=8 | Wed, Sat |
Result line template: ‘{date}: hookA {installs}/{views}, hookB {installs}/{views}, hookC {installs}/{views}. Winner: {letter} by {multiple}x on installs. Next: {what changes}.’
Example filled, with made-up numbers for the shape only: ‘2026-11-08: hookA 14/9,200, hookB 6/11,000, hookC 15/7,400. hookC and hookA within noise of each other, both over 2x hookB on installs. Next: keep A and C, test a new B.’
Tips
- Views tell you the hook worked on strangers. Installs tell you it worked on the right strangers. The creator-growth skill's trigger for paying creators needs both: a view threshold you set (it suggests 100k as an example) and a campaign link that shows installs.
- Do not kill a hook over a 20 percent week. The rule in the skill is that at small volumes only multiples count.
- In Claude Code, `/creator-growth` writes the measurement setup into docs/marketing.md with one link per platform and account; this entry is the per-hook version of that.
| works with | By hand: No tool needed: a checklist or a technique. · Claude Code: Runs as a skill or a prompt in the terminal; can read your files and write the result. · Any LLM: Model-agnostic: Gemini, Mistral, a local model. |
| skill | npx skills add fortunto2/solo-factory/creator-growth · source |
| cost | Free. No API, no key. |
| status | Unverified: written from the technique, not yet run end to end by us. |
| license | CC BY 4.0 for the text here; skills are MIT. |
| updated | 2026-11-01 |
| for agents | hook-ab-test-campaign-links.md |
Related
Generate 20 hooks for a topic and rank them by a stated rubric
One prompt that produces 20 openers across the 8 archetypes, scores each on four named criteria, and returns the top 5 with the score shown, so the ranking can be argued with instead of trusted.
Visual hook rules: first frame, text on screen, sound off, and how long you have
The checklist for what the viewer sees before any word is heard: first frame, text, the sound-off case, and the attention windows the creator-growth skill states (about 0.1 s, 0.5 s, 1-2 s by age).
Measurement: one store campaign link per platform and account
The iOS campaign link format with the provider token and a 40-character ct tag, the Android Play referrer, where installs show up, and the rule to judge a format after a week on installs, not views.
Hook for a generated video: what must be in frame 1 when a model draws it
The first-frame rules for Veo, Kling and Runway: start mid-action, name the motion already happening, keep text out of the generation, and generate the hook shot as its own 4-second prompt first.
Bold claim hook: say the thing you can prove in the next 20 seconds
Template and rules for the claim hook: one declarative sentence that the viewer expects you to fail to back up, plus the rule that the proof must be in the video, not in the caption.
Contrarian hook: disagree with the standard advice, then earn it in 20 seconds
Template for the hook that reverses what the audience has been told, with the two rules that separate it from rage bait: quote the standard advice fairly, and name the case where it still holds.