Campaign briefs
A campaign brief is a short description of a paid campaign — who it is for, what it should achieve, where it runs and what it may spend. From it, GrowthOps writes the ad copy: a placement plan, and several variants per placement, ready to paste into the ad manager or hand to whoever buys the media.
It is the one part of this product that writes paid copy. The rest of the guide is about pages you already have and the organic search results they appear in; a brief is about ads you are about to run.
Nothing here is published anywhere. A brief produces text and a plan, exported as CSV or JSON. It does not connect to an ad account, cannot spend your budget, and no campaign starts because you saved one.
What comes out
A placement plan — for each channel, which placements to use, roughly how long a cut should run, what the asset should show, and why.
Variants — per placement, several versions of the copy: headline, primary text, description, call to action, and hashtags where the channel expects them.
A policy check runs over all of it before you see it. A variant that states something the brand has not backed, or that repeats a claim the brand bans, comes back flagged rather than quietly shipped — the same two brand fields decide it here as in organic copy.
Export from the brief's own page, as CSV for a spreadsheet or JSON for anything that reads structured data.
A worked example
A driving school in Dakar, whose brand already carries its positioning, audience, tone, proof points and banned claims. The brief:
| | |
| --- | --- |
| Brand | École de Conduite Teranga |
| Brief name | Rentrée 2026 — Dakar |
| Objective | Signups for the Saturday course |
| Audience | First-time drivers, 18–30, mobile-first |
| Budget | 150 000 XOF |
| Market / locale | Senegal · fr-SN |
| Channels | facebook, instagram |
| Landing URL | https://…/cours-samedi |
The placement plan that comes back:
| channel | placement | cut | what the asset should show | | --- | --- | --- | --- | | instagram | Stories | 15s | Learner at the wheel, instructor beside, shot vertical | | facebook | Feed | 30s | Same footage, subtitled — Feed is watched with sound off |
And the variants, several per placement. One of them:
Permis en poche, sans rater le travail Cours le samedi, à Dakar. 12 000 élèves formés depuis 2019. → S'inscrire
Note where "12 000 élèves formés depuis 2019" came from: it is a proof point on the brand. Nothing invents a number — if that line were not saved on the brand, the copy would have been written without it.
A flagged variant, in the same run:
⚠ Réussite garantie en 4 semaines — flagged:
réussite garantieis in this brand's banned claims.
It comes back flagged rather than silently dropped, so you can see what was attempted and why it was refused. Caught before the budget is spent, not after somebody screenshots the ad.
What you do next: read the variants, keep the ones that are right, and export — CSV for a spreadsheet, JSON for anything that reads structured data. Then paste them into the ad manager, or hand the file to whoever buys the media.
What did not happen: no ad account was touched, no budget was committed, and no campaign started. The 150 000 XOF is a number the plan was shaped around, not money that moved.
What each field decides
Brand
Which brand's voice, audience and rules to write in. Everything on the brand applies — positioning, who it is for, tone of voice, and crucially proof points and banned claims, which decide what may and may not be said. See what each brand field does.
A brief cannot loosen a brand's rules. If a claim is banned for the brand, it is banned in the ads.
Brief name
For you, not for the copy. It is how this brief is found later — Q3 launch — Dakar beats Brief 4.
Objective
What the campaign should achieve, in the plainest words available: "signups from SMB owners", "bookings for the Saturday course", "downloads of the price list".
It decides the call to action and what the copy pushes toward. An objective naming an action produces copy that asks for that action; "awareness" produces copy that asks for nothing, which is usually not what was wanted.
Audience
Who should see it — the people, not the targeting settings. "Small merchants and freelancers, 25–45, mobile-first" is enough; it does not have to match the ad platform's own audience builder.
This is the strongest single influence on the words. The same objective written for teenagers and for procurement managers shares almost nothing.
Budget and currency
What the campaign may spend, in total. It shapes the plan rather than the words: a plan for a small budget concentrates on fewer placements instead of spreading thin across every channel you ticked.
The currency is the one your last brief used, so it does not have to be reset each time. It is recorded with the brief and used in the export; nothing converts it, and nothing here charges anything.
Market and locale
Market is where the campaign runs — the country or region. Locale is the language and region the copy is written in, as a code like fr-SN or en-CA.
They are separate on purpose: a campaign in Senegal may be written in French or in English, and one in Canada may need both. Locale decides the language of every variant; market decides the references, the seasons and what counts as local.
Channels
Which platforms to plan for. Each ticked channel gets its own placements and its own variants, because the formats differ — what works as a YouTube pre-roll is not what works as an Instagram story.
Tick only the ones you will actually buy. Every extra channel divides the same budget across more placements.
Landing URL
Where the ad sends people. It is written into the plan and used as the destination in the exported rows.
Point it at the page that fulfils the objective, not at the home page: copy promising a price list and a link to the front door is the most common reason a campaign spends without converting.
After it is written
Nothing runs. Read the variants, keep what is right, and export. A flagged variant is the one to read first — it means the check found a claim the brand has not backed, and it is telling you before the money is spent rather than after.