UGC Script Template for Ecommerce Ads (Free, 2026)
The general-purpose 30-second product UGC script — hook, demonstration, CTA — with timings, on-screen text, and a note on why each beat earns the next one.
Quick Answer
A standard ecommerce UGC script runs 30 seconds across three beats: a 0-3s hook naming the objection the product answers, a 3-22s body demonstrating the product resolving that exact objection on camera, and a 22-30s CTA. Each beat exists to earn the next three seconds, not to describe the product.
This is the general-purpose product script — the one to start from when the category does not impose its own constraints. Every other template on this site is a variation of it.
The organizing idea is that a UGC ad is not a description, it is a sequence of small bargains. The hook buys three seconds. The demonstration has to justify those three seconds well enough to buy nineteen more. The CTA only works if the previous twenty-two actually delivered. Scripts fail when a beat describes the product instead of earning the next one.
The most common structural mistake is a hook that states a benefit and a body that restates the same benefit more slowly. The hook should name an objection or a friction; the body should resolve it visibly. If the body is not answering the exact thing the hook raised, the viewer has no reason to still be there at second ten.
The ecommerce UGC script
30 seconds · 84 spoken words · copy it, swap the product, keep the structure.
Hook 0.0-3.0s
“I have bought four of these and every one of them broke in the same place.”
On-screen text: four of them. same spot.
Visual: Creator holding up a visibly broken previous version, thumb resting on the failure point. Handheld, natural light.
Why this beat converts: Names the objection the category has earned rather than a benefit the product claims. Leading with the failure of competitors is the strongest opening available in ecommerce because it is the thing the viewer has already privately concluded. The physical prop does more work than any adjective could.
Body 3.0-22.0s
“This one is reinforced right where the others gave out — you can feel the difference in the seam. I have had it eight months, same daily use, and it has not moved. It is about six dollars more than the ones I kept replacing, which I worked out means I have already spent less.”
On-screen text: 8 months, daily use
Visual: Close-up on the reinforced seam, thumb pressing it. Then the product in genuine daily use — not styled, not on a white background.
Why this beat converts: Resolves the exact objection the hook raised, at the exact physical point the hook indicated. The price is raised by the creator before the viewer can raise it, and reframed as total cost rather than unit cost — pre-empting the objection is far stronger than answering it after the fact. Eight months of use is the credibility anchor.
CTA 22.0-30.0s
“Linked below. Get the one with the reinforced seam, not the older version.”
On-screen text: link below
Visual: Product held casually at chest height, then a short beat of the creator using it again as the video ends.
Why this beat converts: A specific, useful instruction rather than a generic close. Telling the viewer which variant to buy reads as advice rather than as a sale, and it reduces the wrong-SKU returns that quietly wreck ecommerce UGC economics. Ending on use rather than on the product held to camera keeps the register native.
Adapting this to your product
- Lead with the objection, not the benefit. The thing the viewer has already privately concluded about the category is your strongest opening.
- Make the body resolve the exact thing the hook raised. If it does not, the viewer has no reason to still be watching at second ten.
- Raise the price yourself before the viewer does, and reframe it as total cost over time.
- Use a physical prop wherever possible. A broken previous version outperforms any adjective.
- Close with a specific instruction ("get the reinforced version"), which reads as advice and cuts wrong-SKU returns.
Frequently Asked Questions
Turn this script into a finished video
Generate the creator, the scenes, and the render with Sora 2, Veo 3.1, Kling 3.0, or Seedance 2.0. Need hooks first? See the viral hook formula library.