← All integrations Paid acquisition

FunnelKeeper + Google Ads

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.

Accessread + human-approved proposals
SyncDaily
On demandScheduled 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

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

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.

Google Ads questions

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.

Usually connected alongside

Connect Google Ads on the free tier. The first sync backfills history, so the dashboard opens with something in it.

Start free

Agents: the same page as markdown at /integrations/google-ads.md.