Skip to main content

Using the Ad Copy Engine

Generate ad copy from your own account's performance data, in each client's voice.

The Ad Copy Engine writes ad copy for a client using two things most copy tools don't have: a framework built from real ecommerce ad performance, and your own account's data about what has actually worked for that client.

It runs per client. You pick a client, and everything the engine reads and writes is theirs.

What it writes from

Every generation is built on a copy framework of ten angles — Pain-point → solution, Review / testimonial, Seasonal / weather, Product feature, Catalogue / warm nudge, Occasion / lifestyle, Comparison / authority, Aspirational / identity, plus Founder story and Objection handling. Eight carry benchmark data from a real ecommerce ad portfolio. The last two are marked (test angle) in the dropdown: they're proven angles in the wider industry that the benchmark portfolio didn't happen to contain, so they're offered without performance claims attached.

Each angle pairs with one of six opening-line patterns — the pain-point question, the weather or moment hook, the identity hook, the review-led hook, the product-as-hero hook, and the comparison or authority hook. The engine picks a hook that suits the angle you chose.

On top of the framework, it reads your data: the client's top-spending ads with their copy and classification, benchmarks across every account in your agency, the client's voice profile, and the copy your team most recently approved. Where your client's own numbers disagree with the framework's benchmarks, your numbers win.

Set your agency-wide rules once

Open 📏 Agency-wide copy rules and write your standing do's and don'ts. These apply to every client's generations, so a rule you write once is a rule you never have to catch in review again.

Good candidates are the corrections you find yourself making repeatedly: "Never open with a question and answer it in the next line." "British English for UK clients." "No exclamation marks in headlines."

These are hard constraints on generation. Client-specific notes can add to them, but never loosen them.

Owners and admins can edit this. Everyone else sees the rules in effect.

Build the client's voice profile

The voice profile is what makes copy sound like the client rather than like a tool. It's per client, and it's the highest-value setup step in the engine.

Click ✨ Draft from data and the engine mines what it can reach: the client's existing ads, their Shopify product catalogue, and verified customer reviews from Klaviyo and from the client's storefront. You can also give it more to work from — paste a messaging doc or brand guidelines into the box, upload a file, or paste a Google Docs link set to "Anyone with the link."

It drafts a profile and tells you what it drew on, then waits. The heading shows Draft — needs review until you read it. When it reads right, click ✓ Approve voice and generation starts using it. The heading then shows Approved with a version number, so you can tell an approved profile from one nobody has looked at.

Verified reviews matter more than they sound. They're the only customer quotes the engine is allowed to use word for word. Everything else it writes is original copy; a quote in a review-led ad is a real thing a real customer said.

Owners and admins draft and approve the profile. Anyone with access to the tool can read it.

Generate copy

Pick your copy type, platform, and how many variations you want, from one to five.

Platforms are Meta (FB/IG), Meta Dynamic / Advantage+, TikTok, Google Search (RSA) and Google PMax. Each gets copy shaped for it — Google Search returns titles and descriptions at the right character counts, Meta returns primary text and a headline. Choosing Meta adds an ad format: Single image, Video / Reel, Carousel, or Catalogue / Dynamic.

The brief box is optional and worth using. A line like "Linen dresses for wedding-guest season" narrows the output considerably.

Hit ✨ Generate. Copy streams in as it's written. Each variation shows its angle and hook, character counts against the platform's limits, and a creative brief describing the visual it was written for.

Alongside the button you'll see how many generations you have left this month. Every organization gets 30 an hour and 500 a month.

The Week-1 launch slate

For a client you're starting from scratch, 🚀 Week-1 launch slate generates a full opening set in one go: five angles, two distinct executions each, in the mix the framework recommends for a new account's first thirty days.

It's the answer to "we've just won this account and need to be live on Monday." Regenerate any time for a fresh set.

Approve, edit, reject

This is the part that compounds, and it takes seconds.

  • ✓ Approve keeps the copy as written.

  • ✏️ Edit lets you fix it first — approve after editing and it records as Approved (edited), storing what you changed.

  • ✕ rejects it.

The engine feeds your recent approvals back into the next generation for that client. Approving is how it learns your taste; editing before you approve teaches it more precisely, because the difference between what it wrote and what you shipped is the actual lesson.

📋 Copy puts a variation on your clipboard, ready to paste into Ads Manager. Individual fields have their own copy buttons so you can take just the headline.

Everything you generate stays under Recent generations with its status, so you can find copy you approved last week without regenerating it.

What's working

The What's working — copy types by ROAS panel ranks the client's angles by return on ad spend, drawn from their synced Meta ads. Below it, a grid crosses creative style against copy type, so you can see that — for instance — testimonial copy carries a UGC video on this account but not a product still.

This panel needs Meta connected with the client's ad accounts mapped to them. Without that, the engine still writes: it works from the framework, the voice profile and your agency-wide benchmarks instead.

Read a low-performing angle as a note about execution, not a verdict on the angle. An angle that underperformed on one account is usually copy that was written badly, not a category to abandon.

The Monday digest

If your organization has Slack connected, the engine posts a weekly digest on Monday mornings: per client, which angles are pulling above and below their account average, and where the spend is going that the results don't justify.

Who can use it

The Ad Copy Engine is enabled per organization, then per user. Your account owner controls both in Settings.

Team members whose access is scoped to assigned clients only see the engine for their own clients. Owners and admins see every client.

Editing agency-wide rules and approving voice profiles are owner and admin actions. Generating, approving and rejecting copy are open to anyone with access to the tool.

Troubleshooting

The tool isn't in my menu It isn't enabled for your user. Your account owner can switch it on in Settings.

A client isn't in my list Either they're marked churned, or your access is scoped to assigned clients only. See Roles and permissions.

"What's working" is empty but generation works That panel reads the client's synced Meta ads. Check Meta is connected and that the client's ad accounts are mapped to them in Settings → Integrations. Generation doesn't depend on it, which is why one works without the other.

Draft from data says there's nothing to work from The engine found no ads, no products, no reviews and no pasted notes for this client. Paste a messaging doc or brand guidelines into the box and draft again — that alone is enough to build a profile.

The copy doesn't sound like the client Check the voice profile heading. If it says Draft — needs review or Not set up, generation isn't using a profile yet. Approving one is the single biggest change you can make to output quality.

I've hit a limit Generations are capped at 30 an hour and 500 a month per organization. The hourly cap clears within the hour; the monthly one resets on the first.

Copy is longer than the platform allows Character counts turn red past the limit. Edit the variation down before approving — the count updates as you type.

Did this answer your question?