How to Write Ad Scripts That Actually Convert
A practical framework for writing ad scripts: hook, problem, proof, offer, and how to test scripts fast without guessing.
A converting ad script almost always follows the same shape: a fast hook that earns the next few seconds, a clearly named problem the viewer recognizes, some form of proof or demonstration, and a simple, specific offer or call to action. Write in that order, keep it conversational, and test multiple versions rather than betting everything on one script.
How do I open the script?
The opening line has to do the most work in the entire script, because if it doesn't earn attention, nothing that follows gets watched. Lead with the hook, not a brand introduction or a slow setup, whether that's naming the problem bluntly, showing the product mid-action, or making a bold but honest claim about the outcome. If you're stuck on angles, a hook generator is a faster way to generate starting lines than staring at a blank page, and tracking hook rate once the ad is live tells you whether your opening is actually working.
How do I frame the problem?
After the hook, name the problem in language the viewer already uses in their own head, not marketing language. This is the section where a UGC-style, conversational tone tends to beat polished ad copy, because it sounds like a person describing a real frustration rather than a brand pitching a solution. Keep it short, specific, and recognizable rather than vague or generic.
What counts as proof in a short ad?
Proof doesn't have to mean a testimonial or a number. A clear demonstration of the product working, a visible before-and-after, or a confident, specific description of how it solves the named problem can all function as proof in a short-form script. The goal is to remove doubt quickly, not to build a full case, since you have seconds, not minutes, to work with.
How specific should the offer be?
Close with a single, clear call to action tied to a specific next step, not a vague "check us out." Keep any claims about results directional and honest rather than promising guaranteed outcomes, particularly in regulated categories where disease, cure, or guaranteed-result claims create real compliance risk on top of trust risk. A specific, modest claim a viewer believes will usually outperform a big claim they instinctively distrust.
How do I actually test multiple scripts?
Writing one script and hoping it works is the slowest way to learn what your audience responds to. The faster path is writing several script variants, testing different hooks or problem framings against the same offer, and letting real performance pick the winner. Tools like Polaris make this practical: you connect it to Claude once, then paste a script (or a few variants) in plain chat along with a product photo, and a live panel renders each one back as a finished UGC-style ad inside the conversation. That turns script testing from a production bottleneck into a normal part of writing. See how the Claude MCP workflow works for the setup.
How do I know a script actually worked?
Judge scripts by results, not by how good they sound in the room. Track hook rate to see whether the opening actually held attention, then run the outcome through a ROAS calculator against your real margin to see whether the script converted profitably, not just cheaply. Understanding ROAS alongside hook rate tells you whether a weak script failed at the hook, the offer, or somewhere in between, which is the difference between a small rewrite and starting over.