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".
Where to set them
Two levels — account-wide defaults + per-campaign overrides.
Account-level targets (defaults)
- Go to
/accounts/{id}/targets(or click "Targets" on the account card) - 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
- 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.
How the AI uses targets
| Where | What 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
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
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
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
| What | Limit |
|---|---|
| Max target CPA | €100 000 |
| Max target ROAS | 99.99x |
| Max monthly budget cap | €10 000 000 |
| Number of per-campaign overrides | Unlimited |
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...").