A GA4 audit for a business whose sales close offline starts in Google Ads, with one question: does Google Ads bid on a GA4 key event? The checks after it test whether GA4 counts each accepted lead once, keeps its ad click and files it under the right channel.
Start here
Is Google Ads bidding on GA4?
Check 1: Is a GA4 key event primary for bidding?
Check 2: Does a custom goal still bid on it?
Does GA4 hold anything it must not?
Check 3: Does any URL or parameter carry an email, phone or name?
@, for phone-shaped digits and for field names such as email.Does GA4 count each accepted lead once?
Check 4: Does only an accepted lead fire the lead event, once?
Check 5: Is form_submit marked as a key event?
form_submit. Enhanced measurement sends it "when the user submits a form", any form, with no word about your server accepting it. Read your lead event's own row, never the total: once ads personalization is on for a linked Google Ads account, GA4 also marks session_start and six other events as key events.form_submit.Does each lead keep the click that paid for it?
Check 6: Does the visitor keep one session across your domains?
_gl in the address bar on arrival. Without cross-domain measurement, one visitor becomes two users and two sessions._gl vanishes on arrival, a redirect may be dropping it.Check 7: Does an embedded booking widget report through your page?
page_view.Check 8: Does the gclid survive your redirects?
_gcl_* cookies such as _gcl_aw.Check 9: Is Google Ads linked, with auto-tagging on?
Do the clocks and the consent state agree?
Check 10: Do GA4 and Google Ads share a time zone?
Check 11: Does the consent state match your banner?
analytics_storage (consent debugging). With regional defaults, repeat from a simulated US location.update; a second default in its place loses the session_start event and leaves (not set) sessions. If your consent tool denies analytics on Global Privacy Control, record that rule; measuring leads when visitors decline tracking covers the gap. Setup is in consent mode v2 in Google Tag Manager.Can the channel reports be trusted?
Check 12: Is the internal traffic filter active?
Check 13: Do your leads land in a named channel?
client_id of the visitor's GA4 tag.Check 14: Is the BigQuery export on, and are its tables kept?
What the checks decide
A fail in check 1 or 2 retires GA4 from bidding. A fail in check 3 stops the audit until the identifiers are gone. After that, checks 4 to 11 decide whether GA4 lead counts can sit beside Google Ads and the CRM, and checks 6 to 9 plus 12 to 14 whether its channel reports hold.
Either way, GA4 counts form fills, not customers. Sending back which leads paid is the closed-loop attribution I build, for medical practices as patient conversion tracking.
Tags
Frequently asked questions
How long does a GA4 audit take?
About 90 minutes for one property, with Editor access to GA4, access to Google Ads and a way to send test leads the business knows to ignore. Most of that time goes to the live tests: rejected and accepted test leads, one test booking and the consent check.
How often should I audit GA4?
Rerun checks 1, 2, 4, 7 and 11 whenever someone changes the lead form, the booking widget, the consent banner or the Google Ads goals. Those are the changes that turn a pass into a fail. The reporting checks can wait for a quarterly pass.
Can a free GA4 audit tool run this checklist for me?
Partly. Tools that read GA4 settings or crawl your tags handle settings such as the time zone, filters and links. They cannot submit a lead your server rejects, and they see your Google Ads goals only if you give them Ads access, so checks 1, 2 and 4 still need a person.
Does a GA4 audit cover my Google Ads conversion tracking?
Only where the two systems touch: the link and auto-tagging, which actions bid, whether the click id survives the landing page, and the time zones. The Google Ads tags and any click-id upload need their own audit.