FunnelKeeper + Google Tag Manager
Spend running while the GA4 tag is missing or paused is the most expensive silent failure in marketing measurement. FunnelKeeper audits the live container and raises a card when the two disagree.
What FunnelKeeper reads from Google Tag Manager
- The live container version — is the expected GA4 tag present and unpaused
- Measurement IDs found, compared against the property you connected
- Paused-tag status, which becomes a Keeper alert when spend is running
What it never does
- No silent edits. The container is only written when you explicitly confirm a snippet deploy
- No changes to tags FunnelKeeper did not create
- No publishing as a side effect of connecting or syncing
How to connect Google Tag Manager
Integrations → Google → Connect with Google, or Grant access instead (service-account email) connect_service_account (zero-click if you have GTM admin) or connect_source_start with kinds: ["gtm"]; deploy_tracking_gtm to publish fk connect google-sa --product <slug> or fk connect gtm --product <slug> POST /connect/google/service-account/start or POST /connect/google/start Daily tag audit.
Google Tag Manager questions
Why does the grant ask for container edit and publish scopes?
So FunnelKeeper can offer to install the first-party tracking snippet as a Custom HTML tag for you. It only fires on an explicit confirm. If you would rather not grant it, connect with the older read-only grant and paste the snippet yourself.
What does the tag audit actually catch?
The case where spend is live and the GA4 tag is missing, paused, or pointing at a different measurement ID than the property you connected. That combination makes every downstream number wrong, so it becomes a card rather than a footnote.
Usually connected alongside
Google Analytics 4
Sessions, channels and landing pages — the traffic half of the payback join.
Read what it pulls →First-party event tracking
No database to connect? Send funnel events straight from your site or backend.
Read what it pulls →Google Ads
Spend at campaign, ad group, keyword and ad grain — so each row gets a real ROAS.
Read what it pulls →Connect Google Tag Manager on the free tier. The first sync backfills history, so the dashboard opens with something in it.
Start freeAgents: the same page as markdown at /integrations/google-tag-manager.md.