67 checks across six layers.
This is the checklist we run on every audit. It is public on purpose: if you want to run it yourself, go ahead. If you would rather we do it against your live data and hand you the findings, that is what the free audit is.
Meta Pixel + CAPI
Browser pixel and Conversions API, judged together.
Meta's algorithm is only as good as the events it receives. We check that every event arrives, arrives once, and arrives with enough identity attached to be matched to a real person.
The pixel and the Conversions API both send the purchase without a shared event_id, so Events Manager counts every sale twice and the algorithm optimizes on a ROAS that does not exist.
Coverage 4
- 01Base pixel present on every page template, including checkout and thank-you pagesHigh
- 02Standard events (ViewContent, AddToCart, InitiateCheckout, Purchase, Lead) fire on the right action, onceCritical
- 03Purchase value and currency populated and matching the order totalCritical
- 04Conversions API live and covering the same events as the pixelHigh
Deduplication and identity 3
- 05Shared event_id between pixel and CAPI so Events Manager deduplicates instead of double-countingCritical
- 06Event match quality per event, and which parameters are missing (email, phone, fbp, fbc, external_id, IP, user agent)High
- 07Customer information parameters hashed correctly (SHA-256, normalized)High
Configuration and consent 5
- 08Domain verified and Aggregated Event Measurement priorities configuredMedium
- 09Test Events tool shows both browser and server hits with matching idsMedium
- 10No stray or legacy pixels from old agencies or apps still firingHigh
- 11Advanced matching and automatic events enabled or disabled deliberatelyMedium
- 12Consent state honoured: nothing fires before the visitor agrees where the law requires itHigh
Severity is what a failed check carries in your report. Critical findings are ranked first in the fix roadmap.
Audit my Meta setupGoogle Ads
Conversion actions, click ids and Enhanced Conversions.
Smart Bidding needs a clean conversion signal with the right value. We check what Google Ads counts, whether it counts it once, and whether it can still match conversions after cookies expire.
The same purchase is imported from GA4 and fired by a Google Ads tag, so every conversion is counted twice and tROAS targets are set against doubled data.
Conversion actions 4
- 01Conversion actions mapped to real business outcomes, with primary and secondary set correctlyCritical
- 02No conversion counted twice via both a Google Ads tag and a GA4 importCritical
- 03Counting settings (one vs every) match the conversion typeHigh
- 04Conversion window and attribution model set deliberatelyMedium
Click ids and Enhanced Conversions 4
- 05gclid, wbraid and gbraid captured and stored across the session and into the CRMCritical
- 06Enhanced Conversions for web enabled with hashed first-party dataHigh
- 07Enhanced Conversions for leads configured for offline conversion uploadsHigh
- 08Auto-tagging on, and no manual UTMs overriding gclid-based attributionMedium
Values and consent 4
- 09Conversion value and currency passed dynamically, not hard-codedHigh
- 10Transaction id passed so duplicate orders and refresh reloads are deduplicatedHigh
- 11Consent Mode signals reaching Google Ads, with modeled conversions active where relevantMedium
- 12Google Ads and GA4 linked, with the right property and audiences sharedMedium
Severity is what a failed check carries in your report. Critical findings are ranked first in the fix roadmap.
Audit my Google Ads setupGA4 + Tag Manager
Property setup, events, ecommerce schema and container hygiene.
GA4 is the source everything else reads from. We check whether the numbers in it can be trusted, and whether the dataLayer underneath is structured so tags stay correct when the site changes.
The purchase event fires again when the confirmation page is refreshed, so GA4 revenue runs well above the store's and every report built on it inherits the error.
Property setup 4
- 01Data streams, time zone, currency and data retention set correctlyMedium
- 02Key events (conversions) marked, and only the ones that matterHigh
- 03Session and user attribution settings, plus Google Signals, set deliberatelyMedium
- 04BigQuery export enabled where raw data or attribution modeling is neededMedium
Events and ecommerce 5
- 05Ecommerce events use the recommended schema with items arrays, value, currency and transaction_idCritical
- 06Purchase fires once per order, and does not fire again on thank-you page refreshCritical
- 07Cross-domain measurement configured for checkout, payment gateway and subdomainsHigh
- 08Referral exclusions for payment gateways (Razorpay, Stripe, PayPal, PayU) so sessions are not brokenHigh
- 09Internal traffic and developer traffic filteredMedium
Tag Manager hygiene 5
- 10GTM container: no unused tags, no duplicate triggers, versions named and published cleanlyMedium
- 11dataLayer pushes are consistent, typed correctly and available before the tag firesHigh
- 12Server-side GTM present where needed, with correct client and transport URLMedium
- 13Consent Mode defaults and updates wired into GTM, with tags gated correctlyHigh
- 14No PII (emails, phone numbers) leaking into page URLs or event parametersHigh
Severity is what a failed check carries in your report. Critical findings are ranked first in the fix roadmap.
Audit my GA4 setupCRM + offline conversions
The feedback loop from lead to revenue.
For lead-gen businesses the sale happens in the CRM, so the ad platforms never see it unless you send it. We check whether the loop is closed, and how much attribution is lost along the way.
Leads reach the CRM without a gclid or fbclid on the record, so Won deals can never be sent back and the platforms keep optimizing for the cheapest lead instead of the ones that pay.
Capture 4
- 01Every lead record stores the click ids and UTMs it came in with (gclid, fbclid, fbp, fbc, session id)Critical
- 02Form submissions reach the CRM with a stable lead id shared with the website eventHigh
- 03Meta Lead Ads and other native lead forms synced into the CRM with source intactHigh
- 04Phone and WhatsApp leads captured, not just web formsMedium
Feedback loop 4
- 05Pipeline stages (Lead, MQL, SQL, Won) exist and are populated consistentlyHigh
- 06Stage changes are sent back to Meta CAPI, Google Ads offline conversions and GA4 with original attributionCritical
- 07Deal value and currency sent with the Won event so the platforms optimize for revenueHigh
- 08Offline uploads scheduled and healthy, with match rates reviewedMedium
Reconciliation 2
- 09Duplicate leads merged rather than double-counted as conversionsMedium
- 10Reporting reconciles: leads in the ads platforms vs leads in the CRM vs revenue in the bankHigh
Severity is what a failed check carries in your report. Critical findings are ranked first in the fix roadmap.
Audit my CRM setupConsent Mode v2 + CMP
Compliant, and still measurable.
Done wrong, consent either blinds your measurement or exposes you to compliance risk. We check the configuration against the regions you sell in and confirm modeled conversions are actually being recovered.
Consent defaults are set after the tags have already fired, so the banner is cosmetic: data is collected before the choice, and the modeled conversions that should fill the gap never arrive.
CMP and defaults 4
- 01A consent management platform is installed (Usercentrics, Cookiebot, CookieYes, Didomi, Termly, Shopify consent) and loads firstHigh
- 02Consent Mode v2 default state set before any tag fires, including ad_user_data and ad_personalizationCritical
- 03Update command fires on user choice and tags react to itHigh
- 04Regional rules: EEA and UK defaults denied, other regions configured deliberatelyHigh
Behaviour 3
- 05Nothing sets cookies or sends data before consent where requiredCritical
- 06Google Ads and GA4 show consent signals present and modeling activeMedium
- 07Meta pixel respects consent via the CMP integration or the consent APIHigh
Experience and policy 2
- 08Consent banner does not block essential functionality or break checkoutMedium
- 09Privacy policy and cookie policy reflect the tags actually in useMedium
Severity is what a failed check carries in your report. Critical findings are ranked first in the fix roadmap.
Audit my Consent setupEcommerce platform layer
Shopify, WooCommerce, Magento and custom builds.
Every platform has its own way of breaking tracking. We check the events at the platform level, where most agencies never look, and follow the order from cart to confirmation.
Shopify's native Google and Meta channel apps fire the purchase alongside a GTM tag, so every order is reported twice and nobody notices because both numbers look healthy.
Shopify 3
- 01Custom Pixels on Checkout Extensibility replace anything that relied on checkout.liquidCritical
- 02Native Google and Meta channel apps do not duplicate GTM or pixel eventsCritical
- 03Cart attributes carry UTMs and click ids onto the orderHigh
Other platforms and checkouts 3
- 04WooCommerce and Magento: purchase fires on the real order confirmation, not on a cached templateCritical
- 05Payment gateway redirects (Razorpay, Stripe, PayU, PayPal) do not break the session or lose the click idHigh
- 06Headless and app-based checkouts (GoKwik, Shiprocket Checkout) send events with the right idsHigh
Catalog and revenue 4
- 07Product, category and cart events include item ids that match the catalog feedsMedium
- 08Refunds and cancellations handled so reported revenue matches the booksMedium
- 09Subscription renewals and upsells attributed correctly or excluded deliberatelyMedium
- 10Mobile app events (if any) reconciled with web eventsMedium
Severity is what a failed check carries in your report. Critical findings are ranked first in the fix roadmap.
Audit my store setupTested against your data, not a screenshot of your settings.
A settings review tells you what is configured. Only real sessions and real orders tell you what actually happens.
01
Live session tests
We walk the funnel as a visitor with debug tooling open: Tag Assistant, GA4 DebugView, Meta Test Events, network logs.
02
Real order reconciliation
Orders or deals from a recent period, compared line by line against GA4, Google Ads, Meta and the CRM.
03
Configuration review
Every container, property, pixel and conversion action inspected for settings that silently distort the numbers.
04
Severity and spend impact
Each finding scored by how many conversions it touches and how much of your budget is being optimized on it.
Want us to run all 67 checks for you?
Free, personal, and done by the senior team. You get the findings, the score and the roadmap in 3 to 5 business days.
Free. No obligation. You keep the report either way.