Cold traffic has never seen your product before. It doesn't know your brand, doesn't trust your claims, and has no reason to keep watching unless the first few seconds earn its attention. That's why an ad script structure for cold traffic campaigns has to work differently than a script aimed at people who already know you — it needs to build belief from zero, in under 30 seconds, without relying on brand recognition or retargeting familiarity.
The short answer: open with a hook that names the viewer's problem or desire, agitate that problem just enough to create urgency, introduce the product as the obvious solution, back it up with quick proof, then close with a clear, low-friction offer and call to action. Below is the full framework, a copy-paste template, and the mistakes that most often sink cold traffic scripts.
Why cold traffic needs a different ad script structure
A retargeting ad can open with your logo, reference a cart someone abandoned, or assume the viewer already understands what the product does. Cold traffic can't. Every assumption has to be earned inside the video itself. If a script spends its first five seconds on a slow brand intro, a cold viewer has no incentive to stay — they don't yet know why they should care.
This means the structure for cold campaigns has to front-load relevance. The viewer needs to recognize themselves in the problem before anything else happens. Compare that to a warm or retargeting script, where the job is often just a reminder nudge. For more on how those differ in practice, see silent ad engagement tips for retargeting campaigns, which covers scripts built for people who've already shown interest.
The core ad script structure for cold traffic campaigns
This is the structure to start testing with. It works across most e-commerce categories — skincare, gadgets, apparel, supplements, home goods — because it's based on how attention and trust actually get built in a short video, not on any one product category.
- Hook (0–3 seconds): Name the problem, desire, or surprising claim before you name the product.
- Problem (3–7 seconds): Make the pain specific and relatable — not generic.
- Agitate (7–12 seconds): Show what happens if the problem stays unsolved, or what the viewer has already tried that didn't work.
- Solution / benefit (12–18 seconds): Introduce the product as the direct answer to the problem just described.
- Proof (18–24 seconds): A visual demo, before/after, or simple reason to believe — not a vague claim.
- Offer (24–27 seconds): State what the viewer gets and any reason to act now (discount, bundle, limited stock).
- CTA (27–30 seconds): One clear action, stated simply.
Notice the product name doesn't need to appear until the solution beat. Cold viewers care about themselves first, your product second. A script that leads with brand name and tagline is optimized for people who already trust you — which is the opposite of what cold traffic needs.
Why this order matters
Each beat exists to earn the next three seconds of attention. If the hook doesn't land, nothing after it matters. If the problem isn't specific, the agitate beat feels manufactured. If proof is skipped, the offer sounds like every other ad. Treat the structure as a chain: weaken one link and the whole script loses its pull.
Cold traffic vs. warm traffic script structure
| Element | Cold traffic script | Warm / retargeting script |
|---|---|---|
| Opening line | Problem or desire, no brand mention | Can reference brand, past visit, or cart |
| Pacing | Fast, front-loaded value | Can be slower, more reminder-style |
| Proof needed | High — viewer has no trust yet | Lower — some trust already exists |
| Offer placement | Near the end, after value is built | Can appear earlier since intent is higher |
| Goal of first 3 seconds | Stop the scroll with relevance | Re-engage recognition |
If you're building a sequence of ads across the funnel, it helps to write the cold version first since it has to do the most persuasive work. For a deeper breakdown of three-beat pacing that applies to both, see three act structure for product ad scripts.
A copy-paste cold traffic script template
Here's a generic template you can adapt. The example below is for an invented product — a posture-correcting phone stand — but the structure transfers to almost any product.
- Hook (0–3s): "Your neck hurts by 3pm and you don't know why."
- Problem (3–7s): "It's not your chair. It's how far down you're tilting your head to look at your phone, every single day."
- Agitate (7–12s): "Stretching helps for an hour. A new pillow doesn't fix it. The habit is the problem, not the furniture."
- Solution (12–18s): "This stand holds your phone at eye level, so your neck stays straight without you thinking about it."
- Proof (18–24s): Quick side-by-side shot: head tilted down without the stand, head level with it. On-screen text: 'Same phone. Same desk. Different angle.'
- Offer (24–27s): "Ships free this week, and it folds flat for your bag."
- CTA (27–30s): "Tap to get yours before the free shipping offer ends."
Notice how little time is spent explaining what the product is made of or how it's manufactured. Cold traffic doesn't need specs first — it needs to feel the problem, then see the fix. If you want more full scripts broken down line by line, video ad script examples for beginners walks through five more in this same style.
Common mistakes that weaken cold traffic scripts
- Leading with the brand name. Cold viewers don't know you yet, so a brand-first hook wastes the only seconds you have to earn attention.
- Skipping the agitate beat. Going straight from problem to solution can feel rushed; a short agitate beat makes the solution land harder.
- Vague proof. "Thousands of happy customers" is a claim, not proof. A visible before/after or a specific demo works better because it shows rather than asserts.
- Multiple calls to action. One clear action at the end outperforms a script that asks the viewer to "shop now," "learn more," and "follow us" all in the same 30 seconds.
- Designing only for sound on. Cold traffic frequently scrolls with sound off; a script that depends entirely on voiceover to make its point can lose viewers who are watching on mute. Build the hook and problem into on-screen text too, and test how the script performs both ways.
How to test hooks without rewriting the whole script
Once the body of the script (problem, agitate, solution, proof, offer, CTA) is working, the fastest lever for cold traffic is usually the hook, not the rest of the script. Keep the middle and end fixed, and write three to five different hook lines that attack the same problem from different angles — a question, a bold claim, a relatable scene, a surprising stat framed as something to test rather than a verified fact. Run them as separate hook variants against the same audience and see which one holds attention longest before the problem beat even starts.
This is also where a problem-first structure pays off twice: once in the body of the script, and again when you're mining it for new hook ideas. If you need more raw material, script ideas for problem agitate solution ads is a useful source of problem-first openings to adapt.
Where FrameNotion fits
Writing a cold traffic script is the hard part — testing it is the slow part, because every variant usually means a new round of filming or editing. FrameNotion AI is built around that gap: paste a product link, and it reads the page and writes a from-scratch script following a hook, problem, benefit, proof, offer, call-to-action structure, then renders it as a finished 30-second vertical MP4 with voiceover, music, and captions in about 10 to 20 minutes.
Because cold traffic campaigns live or die by hook testing, the Pro and Agency plans support A/B hook variants on the same ad, so you can test several opening lines against the same body script without starting over. Every ad also comes out in 4:5, 1:1, and 16:9 alongside the original 9:16, which covers most placements a cold campaign runs across. You can see finished examples of the structure in action on the examples page, or check how it works and plans before testing it on your own product.
Putting it together
A strong cold traffic script doesn't need to be clever — it needs to be ordered correctly. Lead with the problem, not the brand. Let the agitate beat do real work. Show proof instead of claiming it. End on one offer and one action. If a script follows that order and still underperforms, the fix is usually the hook line, not the whole structure — so test there first before rewriting everything else.
If you want a problem-first framework written out in more depth, problem-solution script structure for ads covers the same beats from a slightly different angle and is worth reading alongside this one.
Frequently asked questions
How long should a cold traffic ad script be?+
For most feed placements, 30 seconds is a reliable starting length — long enough to cover problem, solution, and proof, short enough to hold attention. Test shorter cuts around 15 seconds once you know which beats perform, rather than assuming shorter always wins.
Should the product name appear in the first three seconds?+
Not necessarily. Cold viewers respond to recognizing their own problem before they care what the product is called. Many strong cold traffic scripts hold the brand or product name until the solution beat, around the midpoint of the script.
How many hook variants should I test per script?+
Three to five is a reasonable starting range. Keep the problem, proof, and offer identical across variants so you're isolating the hook as the only changed variable.
Does the same script structure work for every product category?+
The beat order (hook, problem, agitate, solution, proof, offer, CTA) transfers across most categories, but the specific problem and proof you choose should be unique to the product. A generic problem statement is one of the fastest ways to lose a cold viewer.
What's the biggest difference between a cold traffic script and a retargeting script?+
A cold script has to build the case for the problem from scratch, so it needs more proof and a slower build to the offer. A retargeting script can skip straight to a reminder or incentive since the viewer already has some context and intent.
