10 UGC Ad Script Templates That Convert (Copy, Paste, Generate)
Playbooks

10 UGC Ad Script Templates That Convert (Copy, Paste, Generate)

Jul 10, 2026
·By Vadym Zh

Every UGC ad that converts follows the same skeleton: Hook → Problem → Product → Proof → CTA. The delivery changes, the platform changes, the person on camera changes — the order barely does. Once you see the skeleton, you stop staring at a blank page and start filling in slots, which is exactly what the 10 fill-in-the-blank templates below are for.

Before the templates, two ground rules that make all of them work. First, people speak about 2.5 words per second on camera, so word count is your timing tool:

  • 15-second ad ≈ 35-40 words
  • 30-second ad ≈ 70-80 words
  • 60-second ad ≈ 140-160 words

Second, the skeleton has a clock. Here's how the beats map to a 30-second ad:

BeatTimingJob
Hook0-2sStop the scroll — one line, no wind-up
Problem2-8sMake the viewer feel seen
Product8-18sWhat it is + the one mechanism that makes it work
Proof18-25sA result, a number, a demonstration
CTA25-30sOne action, one reason to do it now

If your script runs long, cut the product description — never the hook or the CTA. Viewers forgive not knowing every feature; they don't forgive being bored in the first two seconds.

1. The classic testimonial

Best for: retargeting, landing pages, social proof at the consideration stage. This is the workhorse of UGC advertising because it mirrors how people actually decide: they don't want your pitch, they want to hear someone like them say it worked. It performs best on audiences who already know the product exists and need a push past their doubt.

I was skeptical about [product] because [common doubt]. But after [timeframe], [specific result]. The thing that surprised me most? [unexpected benefit]. If you [target audience problem], just try it — [CTA].

Specificity is the whole game here: "after 3 weeks my dark circles faded" beats "it really works" every time. The doubt you open with should be the actual objection your buyers have — pull it from reviews and support tickets, not your imagination. More on this format in our AI testimonial video guide.

2. Problem → agitate → solve

Best for: cold audiences who don't know your product exists. PAS is the oldest structure in direct response for a reason — it earns attention by talking about the viewer's life, not your product, for the entire first half. The agitation beat is what separates it from a bland feature ad: you're naming the cost of the problem (money, embarrassment, wasted time) until ignoring it feels expensive.

[Blunt statement of the problem]. And the worst part is [agitate: cost/embarrassment/wasted time]. I tried [failed alternative 1] and [failed alternative 2] — nothing. Then I found [product]. It [mechanism in one sentence]. Now [after-state]. [CTA].

The failed-alternatives line is doing quiet heavy lifting: it pre-empts "why not just use X?" before the comments section asks it.

3. Three reasons why

Best for: products with clear, distinct benefits; performs well as a hook test. The numbered structure retains viewers because they subconsciously wait for the list to finish — a retention trick borrowed from listicles that works just as well spoken. It's also the easiest template to iterate: swap reason three and you have a new ad.

Three reasons [product] is blowing up right now. One: [benefit + proof]. Two: [benefit + proof]. Three — and this is the big one: [strongest benefit]. [CTA].

Order matters: put your second-strongest reason first, weakest in the middle, strongest last. Viewers remember openings and endings; the middle is where filler goes to hide.

4. Before / after

Best for: anything with a visible or measurable transformation. Transformation is the most persuasive story structure that exists, and this template works even when the change isn't visual — "inbox zero in 20 minutes" is a before/after just as much as a skincare result. The honesty of the before-state is what sells the after-state: sanitize it and the whole ad reads fake.

This was me [timeframe] ago: [before-state, specific and honest]. Someone told me about [product], and honestly I didn't believe [claim]. Here's where I am now: [after-state with numbers]. [Timeframe]. That's it. [CTA].

Platform note: dramatic physical-transformation claims trip ad policies in health and beauty categories. Keep results modest and typical, and you'll keep both the algorithm and compliance happy.

5. Unboxing / first impressions

Best for: products with strong packaging or a tactile wow factor. Unboxings work because they borrow the viewer's own anticipation — everyone knows the feeling of a package arriving, so the format generates borrowed excitement before you've claimed anything. It also feels the least like an ad of any template here, which makes it a strong first touch for skeptical audiences.

It finally came — this is [product] everyone's been talking about. Okay, first thing I notice: [sensory detail]. [Open/demonstrate.] Oh wow, [genuine reaction to feature]. I've been using [old alternative] for years and this already feels [comparison]. I'll report back, but first impressions? [verdict]. [CTA].

The sensory detail is mandatory, not decorative. "It's heavier than I expected" or "it smells like actual vanilla" carries more credibility than any adjective.

6. "TikTok made me buy it"

Best for: riding social proof momentum; works even without prior virality. This template borrows the platform's own culture as its hook — the phrase signals "I'm a regular person who got influenced, same as you," which lowers the guard that a brand voice raises. Counterintuitively, you don't need to have gone viral to use it; the framing works as long as the reaction that follows is genuine.

Okay so TikTok made me buy [product] and I need to talk about it. Everyone in the comments kept saying [repeated claim] and I genuinely thought they were exaggerating. They were not. [Show or describe the result.] I've had it for [timeframe] and [specific outcome]. I get the hype now. If it's still in stock, link's below.

7. The founder story

Best for: brands with a genuine origin story; builds trust like nothing else. People buy from people, and the founder format converts that cliché into structure: frustration, failed alternatives, the thing you built instead. It performs disproportionately well for small brands, where "we're not a faceless corporation" is a real differentiator worth advertising.

I built [product] because [personal frustration]. Everything on the market was [flaw]. So we spent [time] making [product] — [what makes it different in one sentence]. [Traction stat or customer count] later, I still [personal commitment]. Try it: [CTA].

The commitment line at the end ("I still answer every support email") is the trust anchor. Make it true, make it specific, and don't skip it.

8. Us vs. them comparison

Best for: switching audiences from a known competitor or an old habit. Most purchases aren't first purchases — they're switches. This template speaks directly to someone already spending money on the old way, which makes it one of the highest-intent formats on the list. The structure is a simple ledger: their pains, your advantages, one price line each.

[Old solution] vs [product]. [Old solution]: [pain 1], [pain 2], and it costs [price]. [Product]: [advantage 1], [advantage 2], for [price]. I know which one I'm keeping. [CTA].

Keep the competitor generic ("regular whitening strips", not a brand name) to stay ad-policy safe — naming competitors in paid placements invites takedowns and occasionally lawyers.

9. The objection crusher

Best for: products with one dominant objection blocking purchase — price, skepticism, or effort. Naming the viewer's objection out loud is disarming: it signals you're not afraid of it, and it earns you the ten seconds needed to answer it. Check your DMs and pre-sale questions for the objection that appears most; that's the one that belongs in this script.

I know exactly what you're thinking: [objection, stated plainly]. I thought the same. Here's what changed my mind: [reframe or proof]. And if [objection] still worries you — [risk reversal: guarantee/trial/refund]. [CTA].

The risk reversal at the end is what closes. "30-day money back, no questions" turns "maybe later" into "fine, I'll try it" more reliably than any additional benefit claim.

10. Day-in-the-life integration

Best for: lifestyle products; feels the most native, least like an ad. The product appears as one beat inside an otherwise normal routine, which is exactly how real habits look — and the algorithm treats watch-through of the whole routine as engagement on your ad. It's the hardest template to do badly, but also the easiest to make forgettable: the routine must be specific enough to be interesting on its own.

Come with me for my [morning/evening/work] routine. First, [routine step]. Then — okay, this is where [product] comes in. [Natural usage moment + one benefit line]. Honestly it's the [superlative] part of my day. [Rest of routine.] [Soft CTA].

Worked example: filling in a template

Templates only click when you see one filled in. Here's template #2 (problem → agitate → solve) for a fictional smart water bottle, word-counted for 30 seconds:

You drink maybe two glasses of water a day and you can't even tell. Headaches by 3pm, tired all the time — and you blame work. I tried reminder apps, I tried the giant gallon jug. Ignored both. Then I got the HydraTrack. It glows when I'm behind and logs every sip automatically. Three weeks in: no afternoon headaches, actual energy. If your water intake is a guess — fix it. Link below.

Notice what the filled version does: the problem is stated in the viewer's terms (headaches, not "dehydration"), both failed alternatives are things the viewer has genuinely tried, the mechanism is one sentence, and the proof is small and believable. That's the calibration to copy — modest, specific, human.

20 hooks you can steal

The first two seconds decide everything: feeds are auctions for attention and the hook is your bid. Treat hooks as interchangeable modules — the body of your script stays constant while you swap these in and out to find the one your audience can't scroll past.

  1. "Stop scrolling if you [target problem]."
  2. "I wish someone told me this before I spent $[amount] on [category]."
  3. "This is your sign to stop using [old solution]."
  4. "POV: you finally found a [category] that actually works."
  5. "Nobody talks about this, but…"
  6. "I tested [number] [category products] so you don't have to."
  7. "The [category] industry doesn't want you to know this."
  8. "3 signs you need [product category]."
  9. "I was today years old when I learned…"
  10. "Don't buy [category] until you watch this."
  11. "My [friend/mom/dermatologist] begged me to share this."
  12. "This went viral for a reason."
  13. "Rating [category] products until I find the best one."
  14. "Things in my [home/bag/routine] that just make sense."
  15. "If you're still [old behavior], you're doing it wrong."
  16. "Watch me [transform/fix/change] this in [timeframe]."
  17. "I almost didn't post this, but…"
  18. "The $[low price] product that replaced my $[high price] one."
  19. "Everyone asks me about my [result] — here's the secret."
  20. "You have [problem]? Watch this."

How to actually test these: pick one script body, produce it with 3-5 different hooks, run them in the same campaign with equal budget, and kill everything but the winner within a few days. Hook testing is the single highest-leverage habit in paid social — the same body with a different first line routinely swings performance by 2-3x.

The 5 mistakes that kill UGC scripts

  1. Starting with the brand name. Nobody cares yet — brand-first openings read as ads instantly, and the scroll continues. Hook first; the brand can introduce itself at second 20, when the viewer has a reason to want to know.
  2. Listing features instead of showing outcomes. "10,000mAh battery" loses to "charges my phone three times on one trip" because viewers buy the after-state, not the spec sheet. Translate every feature into the moment it improves.
  3. Sounding like a press release. Write like a voice memo to a friend, contractions and all, then read it out loud before shooting. If any sentence is hard to say, it will sound scripted no matter who delivers it — spoken language and written language are different dialects.
  4. One version. The template is the constant; the hook is the variable. Producing a single version of a script isn't a test, it's a bet — and paid social punishes betting. Ship 3-5 hook variations of every concept you believe in.
  5. Weak CTA. "Link in bio" is a shrug. "Get 20% off this week with code SAVE20" gives a reason and a deadline. Every strong CTA answers two questions: what exactly do I do, and why now instead of later?

Turn any of these into a finished video in minutes

You don't need to hire a creator to test these templates anymore. With UnrealUGC, you pick an AI creator, paste your script, and generate the video with natural speech and lip sync — a 10-second hook test costs a few dollars and renders in minutes. Fill a template, generate 3 hook variations, and let your ad account tell you which one wins. The economics that used to make hook testing a luxury — $150+ per variation with a human creator — simply stop applying.

Want the script written for you too? Our free AI video script generator drafts a UGC-style script from a one-line product description — no signup required. There's also a free hook generator if you just need openers to test against the 20 above.

FAQ

How long should a UGC ad script be?

For cold-audience ads on TikTok and Reels, 15-30 seconds — roughly 40-80 words — is the sweet spot: long enough to land problem, product, and proof, short enough to hold completion rates. Save 60-second scripts for retargeting audiences who already know you, or for genuinely complex products where the explanation is the ad. When in doubt, write the 30-second version first; it forces the discipline that makes every longer cut better.

Do these templates work for AI-generated UGC videos?

Yes — arguably better than they work for human production. The templates are delivery-agnostic; what changes with AI is the cost of iteration. Producing five hook variations of one script means re-booking a human creator, but with an AI UGC generator it's five minutes of regenerating. Since hook variation is the single biggest performance lever in this whole playbook, cheap iteration compounds the templates' value.

How many script variations should I test?

Keep the body constant and test 3-5 hooks per concept — enough to find signal without splitting your budget into statistical noise. Give each variation enough spend to be judged fairly (most buyers use a threshold of roughly 1,000-2,000 impressions or a few dollars per variant), kill the losers without sentiment, then iterate on the winning hook's angle rather than starting from scratch. Testing is a loop, not a launch event.

How do I make a UGC script sound natural instead of scripted?

Three habits fix 90% of stiff scripts. Write with contractions and sentence fragments, the way people actually talk. Read the script out loud before using it — your mouth will find the clunky phrases your eyes skipped. And keep one imperfection: a "okay so", a self-correction, a small aside. Real speech has texture; scripts that sand it all away trigger everyone's ad radar.

What's the best UGC video length for TikTok vs Meta?

TikTok and Reels reward shorter: 15-30 seconds with a hook in the first two, since completion rate feeds distribution. Meta placements tolerate — and for retargeting, often reward — longer 30-60 second cuts, because feed and Stories buyers click at different stages of consideration. The practical approach: write one 30-second master script, cut a 15-second version for TikTok by dropping the second proof beat, and let performance data overrule the defaults.

Can I use these scripts commercially?

Yes — all templates and hooks in this post are free to use and adapt for your ads, no attribution needed. They're structures, not copyrighted copy; the value is in what you fill the brackets with. If you want them turned into finished videos, that's what UnrealUGC does all day.

ugc scriptsad copyhookstiktok ads
Written by
Vadym Zh
Vadym Zh
Founder, UnrealUGC

Building UnrealUGC — AI video ads cheap enough to actually test. Writing from the trenches of running them.

Follow @vadymzhy

Ready to ship your own UGC ads?

Generate scroll-stopping video ads with AI in under 2 minutes.