The EARNST Tracking Audit: 15 Checkpoints That Show Whether Your Setup Is Burning Money
In 8 out of 10 audits we find errors that distort reported revenue by 20-200%. Here are the 15 checkpoints — self-assessable in 30 minutes.
Key Takeaways
- In 8 out of 10 audits we find errors that distort reported revenue by 20-200%
- 15 checkpoints in 4 blocks: Consent, Data Quality, Tracking Coverage, Attribution
- Half of them you can check this afternoon — free, without granting access
- Fewer than 8 green points means: your tracking is fundamentally broken
Your GA4 shows numbers. Your Google Ads dashboard shows ROAS. But are the numbers correct? In 8 out of 10 audits we find errors that distort reported revenue by 20–200%. Not because someone did a bad job, but because "working" and "working correctly" are two different things.
A tracking setup that fires events is not automatically a tracking setup that delivers correct data. And campaigns that optimise on incorrect data burn money — systematically and invisibly.
This article is a complete audit guide. 15 checkpoints. Each assessable in 2–3 minutes. At the end, you will know whether your setup is making money or burning it.
Before you start — Tools and preparation
Audit toolkit (all free)
- [ ] Chrome DevTools (Console, Network, Application tabs)
- [ ] Google Tag Assistant (Chrome extension)
- [ ] GA4 DebugView (GA4 → Admin → DebugView)
- [ ] GTM Preview Mode
- [ ] Shopify Theme Customizer (for checkout settings)
- [ ] An incognito window (for consent tests)
- [ ] Optional: Tag Assistant Companion extension
Preparation
Open in parallel: GA4 property, GTM container, your shop in a normal and an incognito window. Have a test product ready that you can click through — from product list to thank-you page.
Block 1: Consent and Compliance (Checkpoints 1–4)
Checkpoint 1: Do consent defaults load before GTM?
What: The very first script on the page must be gtag('consent', 'default', ...) — before the GTM container loads.
How to check: DevTools → Elements → <head> → inspect the first <script> tag. The consent default block must appear before the GTM snippet.
What you will find: In 60% of shops, consent defaults load after GTM or not at all.
Impact: Without defaults, GA4 sends the first hits without a consent signal. GA4 cannot apply Behavioural Modelling. That means: 30% less data recovery from users who decline. Over a year, this adds up to thousands of missing data points.
Rating: ✅ Defaults before GTM | ⚠️ Defaults after GTM | ❌ No defaults
Checkpoint 2: Does Consent Mode v2 work correctly?
What: After clicking "Decline," GA4 should send pings (Behavioural Modelling) but not set cookies.
How to check: Incognito → open shop → click "Decline" → Network tab → filter for "collect?" → pings with gcs=G100 (= denied) should be visible.
What you will find: Either no pings (Consent Mode missing entirely) or pings with gcs=G111 (= granted despite declining — GDPR violation).
Impact: Without Behavioural Modelling you lose approximately 70% of recoverable data. With incorrect consent status you risk fines.
Rating: ✅ Correct denied pings | ⚠️ No pings | ❌ Granted pings despite declining
Checkpoint 3: What is your consent rate?
What: Percentage of visitors who click "Accept."
How to check: GA4 → Reports → Tech → Consent Mode (if available). Alternatively: own calculation from cookie analytics or CMP dashboard.
Benchmark: 50–65% = standard CMP, 70–80% = good, 80–90% = optimised, above 90% = suspicious (check whether consent is captured correctly).
Impact: Every percentage point of consent = 1% more tracking coverage = directly better data for Smart Bidding. The knowledge article on cookie consent banners shows how to go from 55% to 85%.
Rating: ✅ above 75% | ⚠️ 55–75% | ❌ below 55%
Checkpoint 4: Is consent revocation possible?
What: GDPR requires that consent is as easy to withdraw as it is to give.
How to check: After clicking "Accept" — is there a "Cookie settings" link in the footer or on the privacy page?
What you will find: In 40% of shops there is no way to revoke consent.
Impact: Legal risk (cease-and-desist). But also: users who cannot change their consent lose trust. And consent that cannot be revoked is, under current case law, not valid consent.
Rating: ✅ Easily accessible | ⚠️ Only by deleting cookies | ❌ Not possible
Block 2: Data Quality (Checkpoints 5–8)
Checkpoint 5: Are the prices correct?
What: Shopify delivers prices in cents (4990 instead of 49.90). GA4 needs euros.
How to check: DevTools → Console → search dataLayer → check ecommerce.value on a purchase or view_item event. Alternatively: GTM Preview Mode → any e-commerce event → inspect ecommerce.value.
What you will find: In 25% of shops, revenue in GA4 is a factor of 100 too high.
Impact: Every report, every ROAS, every audience definition based on value is wrong. A shop with 50,000 EUR monthly revenue shows 5 million EUR in GA4. Smart Bidding receives completely distorted conversion values.
Rating: ✅ Prices in euros (49.90) | ❌ Prices in cents (4990)
Checkpoint 6: Ecommerce clear before every push?
What: Before every e-commerce event, dataLayer.push({ ecommerce: null }) must be present.
How to check: GTM Preview Mode → view a product → then add to cart → inspect the add_to_cart event → does it contain items from the previous view_item?
What you will find: The most common Enhanced E-Commerce bug. Items "bleed" into subsequent events because the ecommerce object is not reset.
Impact: GA4 attribution is wrong. An add_to_cart event suddenly contains 5 products instead of 1. Reports become unusable.
Rating: ✅ Ecommerce null before every push | ❌ Items from previous events visible
Checkpoint 7: Does purchase fire exactly once?
What: The purchase event must fire only once per order — regardless of how many times the thank-you page is loaded.
How to check: Test order → thank-you page → reload the page 3 times → GA4 DebugView: how many purchase events?
What you will find: In 15% of shops, purchase fires on every reload. A customer who refreshes the page triples their revenue in GA4.
Impact: Double or triple revenue in GA4. ROAS calculation becomes fantasy. Smart Bidding receives false signals and overvalues campaigns that lead to the thank-you page.
Rating: ✅ Exactly once regardless of reloads | ❌ Multiple on reload
Checkpoint 8: Is the GA4 item schema correct?
What: Every e-commerce item needs at minimum item_id, item_name, price, quantity. Fields like item_brand and item_category are not mandatory but without them most GA4 reports do not work.
How to check: GTM Preview → view_item event → inspect ecommerce.items[0]. Check all fields: are they present? Are the types correct (price as Number, not String)?
What you will find: Missing fields (item_brand and item_category often empty), wrong types (price as String instead of Number), missing item_category hierarchies.
Impact: GA4 Enhanced E-Commerce reports are incomplete. Product performance report does not work. Cross-sell analyses are impossible.
Rating: ✅ All mandatory fields + item_brand + item_category | ⚠️ Only mandatory fields | ❌ Fields missing or wrong
Block 3: Tracking Coverage (Checkpoints 9–12)
Checkpoint 9: Which events are tracked?
What: A complete e-commerce funnel needs at least 6 events. Most shops have 3–5.
How to check: GA4 → Reports → Engagement → Events → list of all events from the last 7 days.
Minimum: page_view, view_item, add_to_cart, begin_checkout, purchase.
Good: Plus view_item_list, select_item, remove_from_cart, search, view_cart.
Excellent: Plus scroll_depth, time_on_page, engagement_score, cart_abandonment_signal.
Impact: Every missing event is a gap in funnel analysis and a missing signal for retargeting. Without view_item_list and select_item you do not know which category pages and product lists work. Without begin_checkout you do not know where in the checkout users drop off.
Rating: ✅ 12+ events | ⚠️ 6–11 events | ❌ below 6 events
Checkpoint 10: Does server-side tagging work?
What: Tracking via own subdomain instead of googletagmanager.com.
How to check: DevTools → Network → filter for "gtm.js" → from which domain is it loaded? If googletagmanager.com: no SST.
Additional check: Network → filter for "/g/collect" → does the request go to your domain or to google-analytics.com?
What you will find: 85% of shops load GTM from googletagmanager.com (no SST).
Impact: Without SST you lose 15–30% of users (ad blockers) and have 7-day cookies instead of 13 months. The knowledge article on tracking infrastructure shows the complete investment case.
Rating: ✅ Own domain | ⚠️ Google domain without fallback | ❌ No GTM or blocked
Checkpoint 11: How long do your cookies live?
What: First-party cookies should live 13 months, not 7 days.
How to check: DevTools → Application → Cookies → your domain → _ga cookie → check expiry date.
Additional check: Is there a custom visitor-ID cookie (HttpOnly, server-set)?
What you will find: _ga cookie with 7-day expiry for Safari users. In the DACH region this affects approximately 25% of all visitors (iPhone share).
Impact: Users who return after 8 days are "new visitors." Attribution collapses. Cross-session analyses are impossible. The entire purchase cycle is cut short — and for most e-commerce shops, the purchase cycle is longer than 7 days.
Rating: ✅ Server-side cookie with 13 months | ⚠️ JS cookie with 2 years (Chrome) / 7 days (Safari) | ❌ No cookie or third-party
Checkpoint 12: Does the GTM fallback work?
What: When SST is down or the user has an ad blocker, a fallback should engage.
How to check: Activate ad blocker → load shop → DevTools Console: errors? → Does any tracking get through?
What you will find: In 95% of shops: zero tracking with an active ad blocker.
Impact: 15–30% of your users do not exist in your data. No conversion attribution, no retargeting, no Smart Bidding signal.
Rating: ✅ Fallback active, tracking works | ⚠️ Partially | ❌ Completely blocked
Block 4: Attribution and Conversion Quality (Checkpoints 13–15)
Checkpoint 13: Enhanced Conversions active?
What: Google Ads receives hashed user data (email, phone, name, address) for better attribution.
How to check: Google Ads → Conversions → select the purchase conversion → Diagnostics → Enhanced Conversions Status.
What you will find: "Not set up" or "Tag not detected."
Impact: 5–15% fewer attributed conversions. Smart Bidding has fewer signals. CPA rises because the algorithm receives fewer conversion data points.
Rating: ✅ Active, coverage above 80% | ⚠️ Active, coverage below 50% | ❌ Not set up
Checkpoint 14: Meta Conversions API active?
What: Meta receives conversion data server-side, independent of the browser.
How to check: Meta Events Manager → Data Sources → your pixel → Overview → are "Server" events visible alongside "Browser" events?
What you will find: Only browser events, no server events.
Additional check: Event Match Quality score — should be above 6 (out of 10).
Impact: Without CAPI, Meta cannot do cross-device attribution and loses attribution with Safari and ad blockers completely. Your Meta campaigns optimise on a subset of actual conversions.
Rating: ✅ Server + Browser, EMQ above 6 | ⚠️ Browser only | ❌ No pixel or not active
Checkpoint 15: Do GA4 and Google Ads match?
What: Purchase count in GA4 and conversion count in Google Ads should be close together.
How to check: GA4 → Reports → Monetization → Purchases (last 7 days). Google Ads → Conversions → Purchase (same period). Calculate the difference.
Benchmark: Below 10% difference = good. 10–25% = action needed. Above 25% = serious problem.
Most common causes for discrepancy: Different attribution windows (GA4: 30 days, Google Ads: potentially 90 days), missing Consent Mode integration, duplicate purchases (checkpoint 7), missing Enhanced Conversions.
Rating: ✅ below 10% difference | ⚠️ 10–25% | ❌ above 25%
The audit scorecard — Your result at a glance
Fill in your results:
| No. | Checkpoint | Score | Priority |
|---|---|---|---|
| 1 | Consent defaults before GTM | ✅ ⚠️ ❌ | Critical |
| 2 | Consent Mode v2 correct | ✅ ⚠️ ❌ | Critical |
| 3 | Consent rate | ✅ ⚠️ ❌ | High |
| 4 | Consent revocation | ✅ ⚠️ ❌ | High |
| 5 | Prices correct | ✅ ⚠️ ❌ | Critical |
| 6 | Ecommerce clear | ✅ ⚠️ ❌ | High |
| 7 | Purchase exactly once | ✅ ⚠️ ❌ | Critical |
| 8 | Item schema correct | ✅ ⚠️ ❌ | Medium |
| 9 | Event coverage | ✅ ⚠️ ❌ | High |
| 10 | Server-side tagging | ✅ ⚠️ ❌ | High |
| 11 | Cookie lifetime | ✅ ⚠️ ❌ | High |
| 12 | GTM fallback | ✅ ⚠️ ❌ | Medium |
| 13 | Enhanced Conversions | ✅ ⚠️ ❌ | High |
| 14 | Meta CAPI | ✅ ⚠️ ❌ | High |
| 15 | GA4 vs. Ads match | ✅ ⚠️ ❌ | High |
Interpretation
12–15 green points: Your setup is solid. Optimisation potential in details — but the fundamentals are right. Focus on the yellow points.
8–11 green points: Action needed. The gaps are costing you measurable money. Prioritise the red points, then the yellow ones.
Below 8 green points: Your tracking is fundamentally broken. Any campaign optimisation is cosmetic. Fix the tracking first, then touch the campaigns.
What you can do now — Prioritisation guide
Immediately (today)
Checkpoints 1–3 (Consent) and checkpoint 5 (Prices) and checkpoint 7 (Purchase once). These are the points that cause the greatest financial damage and are quickest to check. If prices are off by a factor of 100 or purchase fires multiple times, every number in your dashboard is wrong.
This week
Checkpoints 6 and 8 (Data Quality) and checkpoint 9 (Event Coverage). These points require slightly more time to check, but the fixes are usually simple: an ecommerce-null push, adding missing fields, retrofitting events.
This month
Checkpoints 10–12 (SST, Cookies, Fallback) and checkpoints 13–14 (Enhanced Conversions, CAPI). These require technical implementation. The knowledge article on tracking infrastructure shows the complete investment case for SST.
Conclusion
You now have 15 concrete checkpoints with instructions. Half of them you can check this afternoon. The other half this week.
If you have fewer than 8 green points, you are probably losing 20–40% of your conversion data. That means: your campaigns are optimising on a distorted basis, your ROAS is lower than it should be, and Smart Bidding is working with data that has more gaps than substance.
You can fix everything yourself. The checklists in this article and in the linked knowledge articles give you everything you need. Or you let us do a complete audit in 48 hours — including the things not in this checklist: privacy policy cross-check, accessibility assessment, and a prioritised action plan with ICE scoring.
You might also like
The Hidden ROI: How Tracking Infrastructure Lifts Your Google Ads ROAS by 20–40%
Tracking infrastructure is not an IT expense — it is the most profitable investment in your ad performance. Four layers, one calculation.
Read article → Tracking & ComplianceThe Underrated Conversion Tool: Why a Custom Cookie Consent Banner Pays Off
Cookie banners are not a compliance checkbox — they are the first conversion on every page. 25 percentage points more consent changes your entire ad performance.
Read article →Our service
GDPR & Compliance Audit
We analyze your tracking infrastructure. GDPR score, accessibility check, actionable recommendations.