Documentation

Connect your marketing data to Claude, ChatGPT and other LLMs.

Account Targets — give your AI a goal to compare against

Set CPA / ROAS / monthly budget cap targets per Google Ads account or per individual campaign. The AI uses these in every audit, chat answer, and write-action proposal — no more generic "your ROAS is 1.8" answers, instead "your ROAS is 1.8 vs your 2.5 target = 28% under, top 3 contributing campaigns are X / Y / Z".

💡
Why this matters for paid ads work: without targets, an AI can describe what's happening but can't tell you whether it's good or bad relative to YOUR business. With targets set, every recommendation becomes contextualized — "pause this ad group" becomes "pause this ad group, it's at $42 CPA vs your $25 target on a 30-day window".

Where to set them

Two levels — account-wide defaults + per-campaign overrides.

Account-level targets (defaults)

  1. Go to /accounts/{id}/targets (or click "Targets" on the account card)
  2. Top section — set 3 fields :
    • Target CPA (€) — the cost-per-conversion you're aiming for. Leave empty if you optimize for ROAS only
    • Target ROAS (x) — return on ad spend (revenue / cost). Leave empty if you don't track conversion value
    • Monthly budget cap (€) — hard ceiling on total spend per month. The AI will warn before any write that would push you over
  3. Click Save — these become the defaults for every campaign without an explicit override

Per-campaign overrides

Same page, table below. Each campaign row shows :

  • Campaign name + status + current performance (last 30d CPA / ROAS / spend)
  • Two editable cells : Override CPA + Override ROAS
  • Empty / 0 = inherit from account default

Bulk edit supported : change multiple rows, click Save targets at the bottom — saves all in one batch.

Overrides are typically used for brand campaigns (looser CPA tolerance — protective bidding) and prospecting campaigns (longer attribution, accept higher CPA early). Don't override every campaign — defeats the purpose of having a default.

How the AI uses targets

WhereWhat changes
AI Insights chat (Ads page) Every answer contextualizes numbers vs targets ("CPA $42 — that's 68% over your $25 target")
Health indicators on cards Campaigns showing as ✅ good / ⚠ warning / ❌ bad use your targets, not generic 2x ROAS heuristic
Write tool proposals via MCP Before any update_campaign_budget / pause_ad, Claude pulls your targets to justify the change
SEO Audit synthesis The "Top 3 priorities" section weighs Ads-related opportunities by your CPA gap — bigger gap = higher priority
Persistent memory Targets are auto-injected in the system prompt of every MCP session, so Claude knows them without re-discovery

Workflow examples

Daily morning check

ask Claude
What campaigns are tracking under target this week?
Use my CPA + ROAS targets, sort by € lost = (actual CPA - target CPA) × conversions.
Top 5.

Monthly budget pacing

ask Claude
We're 18 days into the month. With current spend pace,
will we exceed the monthly budget cap on any account?
List the at-risk accounts + projected overshoot in €.

Brand campaign re-tuning

ask Claude
My brand campaigns have a $30 CPA override (vs $15 account default).
Are they still respecting that loose target? If any are over $30, by how much?

Limits

WhatLimit
Max target CPA€100 000
Max target ROAS99.99x
Max monthly budget cap€10 000 000
Number of per-campaign overridesUnlimited

FAQ

Do targets push to Google Ads ?

No — targets are stored locally in gadspilot and used only by the AI for contextualization. They are NOT pushed to Google Ads (i.e. they don't change your actual bidding strategy or daily budgets). For that, use the MCP write tool update_campaign_budget or update_bidding_strategy explicitly.

Search/Display : update_bidding_strategy(bidding_strategy=TARGET_CPA, target_cpa_micros=25000000) for €25 CPA target.

Performance Max : the API rejects TARGET_CPA / TARGET_ROAS as direct strategies — use the "Maximize conversions with target CPA" pattern instead : update_bidding_strategy(bidding_strategy=MAXIMIZE_CONVERSIONS, target_cpa_micros=25000000). Same idea for ROAS via MAXIMIZE_CONVERSION_VALUE + target_roas. See the PMax deep dive for the full rationale.

Why store the budget cap in gadspilot if Google Ads has its own daily budgets ?

Google's daily budgets prevent intra-day overspend but don't enforce a monthly ceiling. You could have 20 active campaigns each at €100/day = €60k/month with no warning until the credit card screams. The gadspilot monthly cap is an early-warning system the AI checks proactively.

Can I bulk-import targets from a CSV ?

Not yet via UI — but you can use the MCP write tools from Claude. Ask: "I'll paste a CSV of campaign_id;target_cpa;target_roas. Set them all."

What if a campaign has no target and no account default ?

The AI falls back to industry defaults (CPA = a "good" CPA per channel type, ROAS = 2.0 minimum). It will say so explicitly in answers ("no target set, comparing to industry baseline of...").

Need help? Ask Léa 💬
gadspilot assistant
Léa
AI assistant · gadspilot
Need a human? Contact support