# FunnelKeeper + Google Ads

> Spend at campaign, ad group, keyword and ad grain — so each row gets a real ROAS.

FunnelKeeper reads what you spent and puts it next to what that spend earned. Budget changes are possible, but only as a card a person approves — the API cannot execute one on its own.

- **Category:** Paid acquisition
- **Access:** read + human-approved proposals
- **Sync:** Daily. Campaign spend backfills in stages up to a year on a new connection, then reads a rolling 7-day window; the ad-group, keyword and ad grain always reads the last 7 days.
- **On demand:** no — scheduled only

## What FunnelKeeper reads from Google Ads

- Daily spend by campaign, ad group, keyword and ad
- Impressions and clicks alongside each spend row
- Amounts in the ad account's native currency, converted from micros to integer cents
- Account structure, so manager-owned accounts resolve to the right customer id

## What it never does

- No spend change is ever executed by an agent or by the Keeper. Proposals return pending_human
- Policy caps are enforced at the API boundary — an over-cap proposal is refused, not escalated
- You never supply a developer token; FunnelKeeper uses its own

## How to connect Google Ads

| Surface | How |
| --- | --- |
| Dashboard | Integrations → Google → Connect with Google, then pick the Ads account |
| MCP | connect_source_start with kinds: ["google_ads"] |
| CLI | fk connect google-ads --product <slug> |
| API | POST /connect/google/start |

## FAQ

### Can FunnelKeeper change my budgets?

Only with your tap. The Keeper can propose a change with a rationale and a rollback condition; it arrives as a card with one number and two buttons. A database constraint — not application code — stops a proposal reaching approved without a human recorded against it.

### How does click attribution reach my funnel?

Through the gclid. Set the tracking template once from Integrations (GET and POST /products/{slug}/connections/google-ads/url-suffix) and the click id lands in your own tables or tracked events, where the attribution mapping resolves it to the paid_google channel.

### One sign-in for GA4, Tag Manager and Ads?

Yes. A single Google grant per account serves all three; you then pick the GA4 property, the GTM container and the Ads customer on the return screen.

## Related

- [Google Analytics 4](https://funnelkeeper.com/integrations/ga4/) — Sessions, channels and landing pages — the traffic half of the payback join.
- [Meta Ads](https://funnelkeeper.com/integrations/meta-ads/) — Campaign delivery and spend, subject to FunnelKeeper's policy walls.
- [Google Tag Manager](https://funnelkeeper.com/integrations/google-tag-manager/) — Catch the broken tag that is quietly spoiling every number you trust.

Full catalogue: https://funnelkeeper.com/integrations/ · Machine index: https://funnelkeeper.com/llms.txt
