Campaigns as code
Every campaign is a versioned YAML spec with an optional process script. Diffable, reviewable, repeatable — no more clicking through five screens to change a budget.
Private beta · invite only
AdSpec is an ops console for agencies: campaigns live as YAML specs with an optional process script, move through a review workflow, and only then execute against the Google Ads API — with budgets, linting and an audit trail in front of every change.
platform: google_ads
type: search
name: brand-defense-q4
budget:
daily: 45
currency: USD
targeting:
countries: [UY, AR]
languages: [es]
ad_groups:
- name: brand
keywords: ["[acme]", "acme reviews"]Every campaign is a versioned YAML spec with an optional process script. Diffable, reviewable, repeatable — no more clicking through five screens to change a budget.
Todo → in-progress → under-review → done, plus failed. Nothing reaches the Google Ads API before a human picks it up, runs a dry run and approves it.
Paste a landing page and constraints. AdSpec proposes campaigns, a deterministic daily budget floor from real CPCs, staged rollout and a forecast before you spend.
Each client has its own Google Ads connection, palette, logo, AI context and plan history. Strict row-level security keeps data from ever crossing over.
Ask for "two more headlines" or "switch to Spanish" and get a concrete YAML change you can review, apply or undo. Unsupported requests are named, not silently dropped.
Deterministic linting, spend alerts, pause/enable controls and a full log of who changed what, when, on which account.
Authorize Google Ads per client with OAuth. Credentials stay encrypted and client-scoped.
Start from a template, a voice brief or the URL planner. Lint it before anything goes live.
Dry run, approve, execute. Campaigns are created paused so you keep the last word.
Accounts are created by invitation so we can keep support close while the Google Ads coverage grows. Request access and we'll send you a signup link.
I already have an account