missing conversions

The Google Tag Manager Audit

A Google Tag Manager audit that ships fixes, not homework.

A fixed-price teardown of your Google Tag Manager container, plus the GA4, ad pixel and consent layers it feeds. Every gap logged, the top 10 fixed and validated in your container. $900 flat. 5 business days.

5-day turnaround · top 10 issues fixed, not listed · 5+ gaps found or it's free

Why your numbers are low

Most accounts report 60 to 80 of every 100 real conversions.

The gap isn't one big break. It's four small leaks stacking up quietly, and the ad platforms optimize on whatever incomplete signal survives.

LEAK 01

Ad blockers & browsers

Client-side pixels blocked or throttled before they ever fire. Safari and Firefox cap cookies to days.

LEAK 02

iOS & signal loss

App Tracking Transparency and privacy features strip the identifiers Meta and Google match on.

LEAK 03

Consent banners

A misconfigured CMP or missing Consent Mode v2 silently drops every visitor who clicks reject.

LEAK 04

Broken tags

Duplicate purchases, dead triggers, stale dataLayer variables, redirects that strip UTMs. It accumulates.

What gets torn down

Four systems, one pass, every gap logged.

This is the stack the audit walks through, end to end, on any platform: Shopify, WooCommerce, BigCommerce, Magento, Webflow, WordPress or custom.

System 01 · GA4

Property & events

  • Property, stream and data settings against current best practice
  • Event and key-event design, counting method, dedupe
  • Ecommerce and funnel tracking accuracy, item-level data
  • Attribution settings, channel grouping, unwanted referrals

System 02 · Google Tag Manager

Container health

  • Every tag, trigger and variable mapped and tested live
  • Duplicate and dead weight removed, naming rationalized
  • dataLayer integrity across templates and checkout
  • Cross-domain, iframe and SPA tracking behavior

System 03 · Ad platform signals

Google Ads & Meta

  • Conversion actions vs GA4 vs backend truth, side by side
  • Meta pixel + Conversions API dedupe and event match quality
  • Enhanced conversions and offline import readiness
  • Server-side tagging setup reviewed, or scoped if absent

System 04 · Consent & compliance

Consent Mode v2 & CMP

  • Consent Mode v2 signals actually reaching Google tags
  • CMP behavior on accept, reject and no-choice states
  • What data is recoverable through modeled conversions
  • Region handling and obvious compliance red flags

In depth

What a maintained container looks like, and where yours differs

Most containers are not broken so much as accumulated. Tags outlive the campaigns that needed them, triggers overlap, and the dataLayer the whole thing depends on was never written down. The audit measures the container against what a maintained one looks like, then repairs what the top 10 findings call for.

01

The inventory, and what a healthy one looks like

Every tag, trigger and variable, listed with what fires it, what it reads, and whether it has fired at all in the window we review. A maintained container has one base tag per destination, no two tags sending the same event, triggers scoped to the pages and elements they belong to rather than to all pages with an exception bolted on afterwards, variables with defaults set, and consent settings on each tag that match what that tag actually does. What we usually find instead is accumulation: paused tags nobody deleted, tags for vendors no longer under contract still collecting, custom HTML doing what a template now does natively, and a handful of tags with no trigger attached at all. Each one is logged as a duplication risk, a vendor still receiving data you no longer buy, or simply weight on the page.

02

The dataLayer contract, and when it arrives late

The dataLayer is an interface between your site and the container, and in most builds nobody wrote it down. Two things go wrong with it. Shape: a key renamed in a release, a revenue value pushed as a formatted string so it arrives as zero, an items array missing the identifier the platform needs to match a product. Timing: a tag that reads a variable on page view when the push that sets it happens later, so the tag reads whatever the last push left behind. The second is the harder failure, because the tag fires, the request leaves, the debug panel looks green, and the payload is merely wrong. We test each push against the tag that consumes it and hand back a written contract: event names, required keys, the type of each value, and the point in the page lifecycle each push has to happen by.

03

Cross-domain, iframes and single page apps

Three places where a container behaves differently than a preview session suggests. Cross-domain: the linker parameter has to be written onto a decorated link or form and read by a tag on the other side that lists the same domains, so a server redirect, a window.open or a URL assembled in JavaScript loses it, the session splits, and the second domain files the visit as a referral from the first. Iframes: a container in the parent page does not run inside a frame it did not load, so an embedded checkout, booking widget or payment field is a hole in the measurement, and a click into that frame registers as one click on a rectangle. Single page apps: there is no second document load, so a route change has to raise its own event, and the usual faults are a pageview sent before the route's data exists and a second one sent when the router replaces state. We reproduce all three on your own site rather than assuming the default configuration holds.

04

Versions, workspaces and rollback

Version history answers a question no report can: the date the number changed and the change that changed it. We read the published versions against the shape of your data, which usually locates a break to a single publish. It also shows how the container is run. Concurrent workspaces where two people edit the same tag and the second publish quietly reverts the first. Drafts left open for months. Versions published with no name and no note, so the history is a list of numbers nobody can read backwards. Our own work goes into a separate workspace, gets published as one named version with the findings referenced in the notes, and can be reverted in a single action if you want it gone.

What you get

Most audits hand you homework. This one ships fixes.

  • The Missing Conversions Report. Every gap found, severity, what it's costing you, and the exact fix.
  • Top 10 issues fixed and validated in a GTM workspace during the audit, published only with your approval.
  • Before / after proof so you can see reported numbers move against reality.
  • A recorded walkthrough of the report in plain language, made for the person who owns the budget.
  • A prioritized backlog for whatever falls outside the top 10, sized so any dev or ourselves can take it on.
  • Two weeks of follow-up questions included after delivery.

Sample report rows

MC-AUDIT · p.4/18

  • HIGHPurchase event fires twice on order-confirmation refreshinflates ROAS, corrupts bid optimizationFIXED
  • HIGHMeta CAPI events sent without user parameters, EMQ 4.1 of 10weak matching, undercounted paid socialFIXED
  • HIGHConsent Mode v2 not passing ad_user_data or ad_personalizationno modeled recovery for rejected visitorsFIXED
  • MEDLead key event set to count every submission, not once per userduplicate form fires inflate lead countsFIXED
  • MEDEmail links routed through a redirect that strips UTM parametersrevenue misattributed to direct / noneFIX PLAN

How it runs

Booked to delivered in five business days.

  1. Day 0

    Access

    You get a 10-minute checklist: viewer access to GA4 and Ads, read access to GTM and Events Manager.

  2. Days 1 to 3

    Teardown

    Full pass across the four systems. Every finding logged with severity and cost.

  3. Days 4 to 5

    Fixes

    Top 10 issues repaired in a GTM workspace, tested and validated. Nothing publishes without your sign-off.

  4. Day 5

    Report

    The Missing Conversions Report, before/after proof and the recorded walkthrough land in your inbox.

Pricing

One price. No retainer required.

$900

flat · once

  • Full four-system teardown, any platform
  • Top 10 issues fixed and validated, not just listed
  • The Missing Conversions Report + recorded walkthrough
  • Prioritized backlog and two weeks of follow-up
  • Fee credited in full toward any follow-on project.
Book a 15-min call

The guarantee

Fewer than 5 fixable gaps found? The audit is free.

If your tracking is genuinely clean, you don't pay, and you keep the report as proof your numbers hold. If it isn't, you'll know exactly what it's costing you and the worst of it will already be fixed.

Fit

Built for accounts where the numbers steer real money.

Right fit

  • You're spending on Google or Meta and decisions ride on reported conversions
  • Ecommerce or lead gen with meaningful traffic
  • Platform numbers, GA4 and your backend all disagree
  • Agencies welcome: white-label audits for your clients, your brand on the report

Not yet

  • Pre-launch, or too little traffic for the data to matter yet
  • You need a site or app built first
  • You want someone to run the ads themselves. We fix what the ads learn from

Who does the work

"The person auditing your setup is the person who has spent ten years building them. No juniors, no handoffs."

Missing Conversions is run by Syed Anns, after a decade of GA4, Google Tag Manager and Conversions API implementations for businesses and the agencies that serve them. This audit is that decade, productized: a fixed scope, a fixed price and a report you can act on the same day.

Syed Anns · founder, missingconversions.com

Questions

Asked before booking.

Preview mode shows every tag firing. Why do the reports still disagree?

Because Preview tells you what happened in one session, on your machine, with your consent choice, your extensions and your connection. It does not tell you what happens for a first-time visitor on a throttled connection who has not answered the banner yet. It cannot show you a request that a blocker stopped, because your browser is not the one blocking it. And it says nothing about whether the payload was right: a tag can fire exactly on schedule and send a revenue value of zero. We test across consent states, at throttled speed, and we check what arrived at the destination rather than what left the container.

How much developer time does fixing the dataLayer take?

Less than most teams expect, because the expensive part is the decision, not the code. What each event is called, which keys it carries, the type of each value, and the point in the page lifecycle it has to be pushed by: that specification comes with the report. Where a value is already exposed on the page, we build the push inside the container and no developer time is needed at all. Where it exists only in your application state or on your server, a developer has to send it, and the report names those events specifically so the work can be scoped before anyone opens an editor.

Will you delete tags from our container?

Not without your approval, and mostly not inside the five days. A tag that fires nothing is still evidence of what was once collected and who was once receiving it, so the default is to log it with what it was for and whether anything still depends on it, then put the removal in the backlog as one batch you can approve in a single pass. The exception is a tag causing a top 10 finding, such as a second purchase tag double counting orders, which is dealt with during the audit. Everything we change ships as one named version, so undoing the set is one action.

What access do you need, and how long does granting it take?

Viewer or Analyst on GA4, read access to the GTM container, and read-only on Google Ads and Meta Events Manager. You get an exact checklist after booking; most teams grant everything in about 10 minutes. Publish access to GTM is only needed if you want us to deploy the fixes, and you can keep that gated behind your own approval.

Will anything break while you work?

No. All fixes are built in a separate GTM workspace, tested against live behavior, and validated before publishing. Nothing goes live without your explicit sign-off, and every change is documented so it can be rolled back in minutes.

Which platforms and stacks do you cover?

Any site running GA4 and Google Tag Manager: Shopify, WooCommerce, BigCommerce, Magento, Webflow, WordPress and custom builds, for both ecommerce and lead generation. Server-side GTM and Meta Conversions API setups are part of the review, and if you don't have them yet the report scopes exactly what they would recover.

What if my tracking turns out to be fine?

Then the guarantee applies: fewer than five fixable gaps and the audit costs nothing. You keep the report either way, which is useful proof for your team, your agency or your investors that the numbers hold.

I run an agency. Can you do this for our clients?

Yes, and quietly. White-label audits with your brand on the report and our delivery underneath, at partner pricing for volume. Mention it on the call and we'll walk through how the handoff works.

What happens after the five days?

The report ends with a prioritized backlog. Take it to your own developers, have us quote it as a fixed project with your $900 credited in full, or put the account on a monthly maintenance plan so tracking stays verified release after release. No obligation on any path.

Next step

15 minutes. You'll leave knowing if there's money in the gap.

A short call to look at your setup from the outside, confirm the audit fits, and book your slot. If it's not a fit, you'll hear that in the first five minutes.

A 15 minute call

  • We look at your setup from the outside and say what we can already see.
  • You get a straight answer on whether the audit is worth it for your account.
  • If it fits, we book the slot and send the access checklist.
Open the booking calendar

Opens the calendar here. Nothing loads from Calendly until you do.

Prefer email? hello@missingconversions.com