Launch a Google Performance Max campaign in 30 seconds with Claude
Performance Max campaigns have a reputation for being a black box — Google takes your assets, your budget, and your audience signals, then optimizes across all its channels without much transparency. Creating one through the Ads Manager UI involves about fifteen steps. Creating one through SpendSignoff involves one sentence.
What the AI actually does when you describe a campaign
When you tell Claude "create a Performance Max campaign for my e-commerce store targeting US shoppers with a $150/day budget," SpendSignoff translates that into a typed draft object — a structured change proposal that maps to the Google Ads API's CampaignBudget, Campaign, and AssetGroup resources. It does not send anything to Google. It stages a diff.
The draft shows you what will be created: campaign name, bidding strategy (typically Maximize Conversions with an optional target CPA), geographic targeting, budget amount, and a placeholder asset group that you will need to fill with headlines, descriptions, and images before the campaign can run.
The AI cannot upload creative assets
Step-by-step: the 30-second path
Step 1 — open Claude Desktop, Claude Code, or ChatGPT with SpendSignoff connected.
Step 2 — describe the campaign: goal, product or service, daily budget, primary geography, and whether you have a target CPA or ROAS in mind.
Step 3 — Claude returns a draft summary. Review the campaign name, budget, bidding strategy, and geo. If something is off, say so in plain English — "change the budget to $200" — and Claude updates the draft.
Step 4 — open the SpendSignoff dashboard. The draft is waiting in your approval queue as a before→after diff: left column shows "nothing exists," right column shows the full campaign config.
Step 5 — click Approve & push live. SpendSignoff calls the Google Ads API with the approved config. The campaign appears in your Google account within seconds, in PAUSED status by default until you add assets and enable it.
Common configuration questions Claude handles
- "Use Maximize Conversion Value instead of Maximize Conversions" — maps to the correct
BiddingStrategyType.MAXIMIZE_CONVERSION_VALUE - "Only run on Search and Shopping, skip Display and YouTube" — sets the
channel_settingsexclusions - "Target return on ad spend of 4x" — populates
target_roason the bidding strategy - "Exclude branded keywords from this campaign" — creates a campaign-level negative keyword list
- "Set a start date of next Monday and no end date" — fills
start_date, leavesend_dateempty
What Performance Max does not expose through the API
Some PMax settings are not available through the Google Ads API at all. URL expansion (the setting that lets Google send traffic to pages other than your specified final URLs) can be toggled through the API, but the "Final URL expansion opt-out" at the asset group level requires the UI in some account configurations. Audience signals can be attached through the API; smart audience exclusions can not.
SpendSignoff sets what the API allows, flags what it cannot set, and notes both in the draft. Transparency about limitations is better than silently skipping configuration the user asked for.
FAQ
- Why does the campaign start in PAUSED status?
- SpendSignoff creates campaigns paused by default so you have time to upload assets and verify settings before spend begins. You enable the campaign manually once the asset group is complete.
- Can I duplicate an existing PMax campaign through SpendSignoff?
- Yes. Ask Claude to "copy my existing PMax campaign and change the budget to $200." SpendSignoff reads the existing campaign structure and drafts a new one with the requested changes. You review and approve the full config before anything is created.
Connect an account read-only and watch the operator work.
Reads are free on every plan. Nothing spends without your two-step approval.
Related reading