Webclat / GTM Practice

Conversion tracking and troubleshooting in Google Tag Manager

Most "GTM is broken" tickets are not GTM problems - they are data layer problems, consent-gating problems, or attribution-model mismatches that look like tracking bugs. Here is how to tell the difference and fix the one that is actually yours.

Common failure patterns

SymptomUsual causeWhere to look
GA4 not tracking an eventTrigger condition never matches, or tag is unpublishedGTM Preview mode on the live page
GA4 data discrepancy vs. AdsDifferent attribution models and session definitionsCompare methodology before assuming a bug
Duplicate conversionsTag fires on page refresh or back-button navigationDeduplication logic in the data layer push
Tag works in Preview, not productionVersion never published, or consent/caching differsContainer publish history; CMP consent state
Ecommerce values look wrongCurrency, price, or quantity mismatched in the data layerLive dataLayer object via browser console

Setting up ecommerce conversion tracking

Reliable ecommerce tracking starts before GTM is involved: a standardized purchase (or equivalent) event pushed to the data layer with a transaction ID, value, and currency at minimum, fired exactly once per transaction. GTM's job is then to read that event and route it to GA4, Google Ads, and any other destination - not to reconstruct the transaction from page content.

Using debug mode properly

GTM's Preview mode shows every tag that fired or did not fire on a given page load, plus the data layer and variable state at that moment. GA4's DebugView shows the same story from the analytics side. Used together, they usually answer "why didn't this fire" in minutes rather than hours of guessing.

Google Ads conversion setup (goals, attribution windows, bid strategy) lives in the ad account, not the tracking layer. We verify that conversion tags fire correctly; we do not manage the ad account itself.

When troubleshooting turns into a rebuild

If the same class of discrepancy keeps recurring across campaigns and pages, that is usually a sign the underlying data layer needs a proper specification rather than another one-off fix - see Google Tag Manager implementation or start with a runtime audit to scope it.

Common questions

  • Why does GA4 show a different conversion count than Google Ads?
    They measure differently by design - GA4 uses its own attribution model and session definition, Google Ads uses click-based attribution with its own lookback window. Some gap is expected; a large or growing gap usually means one side is double-counting or the other is missing events, which a tag audit can isolate.
  • My GTM tag fires in Preview mode but not in production - why?
    Preview mode runs the current workspace; production runs the last published version. If the tag was never published, or a load rule behaves differently under real consent/cache conditions than in preview, it will pass one and fail the other. Confirm the version is published, then check for consent gating and caching differences.
  • How do I set up ecommerce conversion tracking in GTM?
    Start from a data layer that pushes a standardized purchase (or equivalent) event with transaction ID, value, and currency at minimum, deduplicated so a page refresh cannot fire it twice. The GTM tag then reads that event rather than parsing the page - the data layer is the part worth getting right first.
  • What is GTM's debug/preview mode and how do I use it?
    Preview mode opens a side panel showing every tag that fired or did not fire on a page load, along with the data layer values and variable values at that moment - it is the fastest way to see why a tag did or did not fire before assuming the container is broken.

Stop guessing at tracking discrepancies.

We reconcile what fires against what your reports show, and tell you which side is wrong.

Get a Free Google Tag Manager Audit