Foundation · build guide
Campaign Structure & Naming
A naming convention, launch template, and audit loop that keep campaigns identifiable.
What it does
Campaign Structure & Naming gives every campaign in your ad accounts one predictable name. You define a convention — platform, brand or non-brand, funnel stage, geo, and whatever else you report on — plus a launch template and a QA checklist that every new campaign passes through. A recurring audit then compares every live campaign against that convention, flags drift, and drives renames back to standard.
The compounding logic is simple: automation can only act on what it can reliably identify. Budget rules, pacing scripts, anomaly alerts, Looker Studio reports, and AI workflows all match on names; when names are consistent, all of them become dependable at scale. Fix structure once and every later automation inherits it instead of re-fighting the same mess.
This version runs entirely on exports and a spreadsheet: you pull campaign lists from Google Ads Editor and Meta Ads Manager on a schedule, validate every name with formulas, and apply renames yourself in bulk. It suits a single marketer or a small team on a handful of accounts, and it needs no API access or engineering time.
This version connects your ad platforms to an agent through read-scoped APIs or MCP servers. The agent pulls the full campaign inventory on a schedule, audits every name against your spec, and packages proposed renames into batches that you approve before anything is written back. It suits teams running many accounts, or enough campaigns that a spreadsheet audit no longer keeps up.
Before you start
Prerequisites.
Path A
Build it with manual data extracts.
This version runs entirely on exports and a spreadsheet: you pull campaign lists from Google Ads Editor and Meta Ads Manager on a schedule, validate every name with formulas, and apply renames yourself in bulk. It suits a single marketer or a small team on a handful of accounts, and it needs no API access or engineering time.
Write the convention and launch template
Decide the segments every campaign name carries — platform, brand vs non-brand, funnel stage, geo, match type — and fix one delimiter between them. List the allowed values for each segment in a reference tab of a Google Sheet. Turn the same rules into a launch template and a short QA checklist that every new campaign must pass before it goes live.
Export your live campaign inventory
Export campaigns and ad groups to CSV from Google Ads Editor, and download the campaign list from Meta Ads Manager. Paste both into an audit tab in your sheet, keeping the platform's campaign ID in its own column. IDs are your stable key — never match on names alone.
Validate every name with formulas
Split each name on your delimiter, then check segment count and each segment's value against the allowed lists with lookups. Flag every non-conforming row and classify it: a simple rename, or a structural problem like a campaign mixing brand and non-brand that needs rebuilding. The flags become your work queue.
Draft renames in a mapping table
For each fixable row, write the new compliant name next to the old one, keyed by campaign ID. Before applying anything, note where reports, rules, or scripts filter on the old name so you can update those filters in the same pass. This table doubles as your change log and your rollback plan.
Apply in bulk, then gate new launches
Paste the approved renames into Google Ads Editor, review the change preview, and post; make the Meta edits in Ads Manager. From now on, every new campaign gets its name from the launch template and passes the QA checklist before going live. Re-export next cycle to confirm drift is falling toward zero.
Cadence: Weekly while you clean up existing accounts, then monthly for drift checks; a cycle takes under an hour once the sheet is built.
Path B
Integrate it with MCP connections.
This version connects your ad platforms to an agent through read-scoped APIs or MCP servers. The agent pulls the full campaign inventory on a schedule, audits every name against your spec, and packages proposed renames into batches that you approve before anything is written back. It suits teams running many accounts, or enough campaigns that a spreadsheet audit no longer keeps up.
Encode the convention as a machine-readable spec
Store the segments, delimiter, and allowed values in a Google Sheet or a small config file the agent reads on every run. This is the single source of truth: when the convention changes, you change it here and the next audit picks it up. Include the launch template so the agent can also generate compliant names for new campaigns.
Give the agent a read-only view
Connect the Google Ads and Meta ads APIs — directly or through an MCP server for each platform — with read scope only. Schedule the inventory pull with n8n, Make, or Zapier, or let the agent run on its own timer. At this stage the agent can see everything and change nothing.
Run the audit loop
On each run, the agent parses every campaign name against the spec and classifies it: conforming, fixable by rename, or needing restructure. It writes the results to an audit log with campaign IDs and drafts a compliant new name for every fixable row. Nothing is applied — the output is a proposal.
Batch renames for sign-off
Proposed renames land as a batch in Slack, email, or a review tab in the sheet. Only after you approve a batch does the workflow use a write-scoped credential to apply it, and every applied change is logged old name, new name, and campaign ID. That log means any batch can be reversed in a single follow-up run.
Watch new launches for drift
Each run, the agent also checks campaigns created since the last run against the launch template and flags any that skipped the checklist. These alerts are notify-only: the agent never pauses or blocks a live campaign. Structure violations get raised to a human, and the human decides.
Tools & guardrails
Run it safely.
- Every rename ships as a human-approved batch; the agent never renames anything unreviewed, even a one-character fix
- Write scope covers names and labels only — the agent can never touch budgets, bids, targeting, or campaign status
- Every change is logged old name, new name, campaign ID, so any batch is reversible in one pass
- New-launch violations are notify-only alerts; nothing is paused or blocked automatically
Want new build guides as they ship?
Optional — every guide on this site is free either way. Leave your details and we'll email you when new automations join the library, nothing else.
Prefer it built for you?
We stand this automation up as a governed sprint on the stack you already run — scoped, built, and handed over with the guardrails configured. No new platform, no migration.