Every engagement I start begins the same way: I refuse to believe the data until it earns it. Here’s the exact checklist I run on every GA4 property before I’ll make a single recommendation from it.

  1. Timezone & currency match the business. (You’d be amazed.)
  2. Internal traffic filtered, and the filter is actually active, not “testing” forever.
  3. Session timeout & engaged-session settings are defaults unless someone had a reason. If they’re changed, find out why.
  4. Key events are real conversions, not page_view marked as a key event to make a report look healthy.
  5. Purchase/lead events match the source of truth. Compare GA4 purchases to the platform’s orders over 30 days. More than ~5% drift means something’s broken (usually consent, sometimes double-firing).
  6. No duplicate tags. One GA4 config per page, one purchase event per purchase. DebugView will tell you in five minutes.
  7. Cross-domain tracking configured if checkout or booking lives on another domain.
  8. UTM hygiene. One convention, enforced. Facebook, facebook, and fb are three different planets to GA4.
  9. Consent Mode status. Is it implemented, is it v2, and are you modeling or losing declined users entirely?
  10. Data retention bumped from the stingy default (2 months!) to 14.
  11. Unwanted referrals. Payment processors stealing attribution credit.
  12. BigQuery link on, even if you don’t use it yet. It’s free retroactive insurance you can’t buy later.

Score under 9/12? Your dashboards are creative writing. Fix the foundation first. Then we can talk optimization.