All posts
5 min readdebugging, monitoring, gtm

Your conversions just dropped 40%: a 15-minute debugging runbook

Conversions cratered overnight and nobody deployed "anything." Before you blame the ad platform, run this ordered runbook — it finds the tracking cause in about 15 minutes, most of the time.


When conversions fall off a cliff, the instinct is to open the analytics interface and start slicing. Do not. Start by establishing whether real conversions dropped or only measured ones — those are two entirely different incidents, and the check takes two minutes. This runbook works through the most likely causes in the order that finds them fastest, and it is designed to be finished in about fifteen minutes.

Minute 0-2: Real drop, or measurement drop?

Open the system of record — your payment processor, CRM, or order database — and compare the same period.

Orders also down? This is a business incident, not a tracking one. Check site availability, checkout errors, payment provider status, inventory, and whether a campaign was paused. Stop reading this runbook.

Orders flat, tracking down? It is a measurement failure. Continue.

This single comparison eliminates half of all "conversions dropped" investigations, and skipping it is how teams spend a day debugging tags while a payment gateway is down.

Minute 2-4: When exactly did it start?

Get the drop to an hour, not a day. Plot the affected event hourly and find the first low hour.

Then line that timestamp up against a change log:

  • Site deploys
  • GTM container publishes — check the version history, it is timestamped
  • CMS, theme, or plugin updates
  • Consent banner or platform changes
  • DNS, CDN, or CSP changes
  • Ad platform or analytics account changes

A sharp step at a specific hour is nearly always a change. A gradual decline over days is more likely consent, traffic mix, or a seasonal effect. Sharp edges have causes you can find; slopes usually do not.

Minute 4-7: Is the tag still on the page?

Load the conversion page in a clean browser profile — no extensions, no ad blocker.

  1. View source and count IDs. Is the GA4 measurement ID present? The Google Ads conversion ID? The Meta pixel? A tag that vanished in a deploy is the single most common cause of a step-change drop.
  2. Check the container loads. GTM present and returning a real configuration, not a 404.
  3. Check for duplicates while you are there. Two measurement IDs is a different bug that often appears at the same time.
  4. Open the console. A JavaScript error thrown before your tracking code runs will take the whole tracking stack down, and it is often unrelated to tracking — a broken third-party widget is a classic.

A page-level audit does the first three in seconds against any URL, which is faster than doing it by hand.

Minute 7-10: Is the trigger still matching?

If the tag is present but not firing, the trigger's condition stopped becoming true. This is what a redesign does to tracking.

In GTM Preview, walk the actual conversion path and watch:

  • Does the dataLayer event still fire with the same name?
  • Do the variables still resolve, or are they undefined?
  • Did a CSS class, button ID, or URL pattern the trigger depends on change?
  • For form tracking: did the form move to a different submission mechanism?

Undefined variables are the tell. The event fires, the tag fires, and the payload is empty — so conversions with values become conversions with zeros, or get rejected entirely.

Minute 10-12: Consent

Consent changes cause drops that look exactly like tag failures, with one distinguishing fingerprint: the drop is concentrated geographically.

Segment the drop by country. If EEA and UK traffic collapsed and the rest is flat, look at:

  • A consent banner update or platform migration
  • Consent Mode defaults that now deny and never update
  • New tags added without consent configuration, which the CMP then blocks
  • A banner change that shifted the accept rate

Both failure directions matter — tags never firing, and tags firing without consent. Verifying Consent Mode covers the checks.

Minute 12-15: Platform-side causes

If the site is clean, look at the destination:

SymptomLikely cause
One ad platform down, others fineConversion action paused, or its tag removed
GA4 fine, Ads downImport broken, or conversion action edited
All platforms down equallySite-side: container, consent, or a JS error
Gradual decline over weeksTraffic mix, consent rate, or seasonality
Drop with a data-processing lagReporting delay — wait 24-48h before concluding

Also check the obvious account-level things: did someone change attribution settings, edit the conversion action, adjust the attribution window, or apply a new data filter? GA4 property filters that exclude internal traffic have been known to exclude rather more than intended.

The five most common causes, ranked

From experience, in order:

  1. A deploy removed the tag. Theme update, template change, refactor. The tag was in a file someone rewrote.
  2. A trigger stopped matching. Redesign changed the markup the trigger depended on.
  3. Consent misconfiguration. New banner, new defaults, EU data gone.
  4. Duplicate tracking removed — the drop is real but the previous number was inflated. Reconcile against the payment processor before celebrating or panicking.
  5. A platform-side change. Conversion action paused, import broken, attribution window edited.

After the fix: make the next one shorter

  • Annotate the incident in your reporting with the cause and the fix.
  • Add monitoring that watches for absence. Reports show what fired; almost nothing alerts on what stopped. Synthetic journeys walk the funnel on a schedule and flag missing events.
  • Require version descriptions on container publishes so the next timeline reconstruction takes seconds.
  • Re-verify tracking after every theme, plugin, or platform change, which is where most of these originate.

FAQ

How do I know if a conversion drop is real or a tracking problem?

Compare against your payment processor or CRM for the same period. If orders held steady and tracking fell, it is a measurement failure. This should always be the first check.

My conversions dropped exactly 40% — what does that suggest?

A partial drop usually points at one segment failing: one browser, one country, one device type, or one traffic source. Segment by each and find the one that went to zero, rather than treating it as a uniform 40% loss.

Can a GTM publish break tracking without an error?

Yes, routinely. Publishing a paused tag, a changed trigger condition, or a renamed variable produces no error — the tag simply stops firing. Check the container's version history against the drop timestamp.

How long should I wait before investigating a drop?

Check for processing lag first — GA4 and ad platforms can take 24-48 hours to finalise. A drop visible in real-time reports is real; a drop only in yesterday's aggregate may just be incomplete.

Why did conversions drop only in Europe?

Almost always consent. A banner change, a new consent platform, or Consent Mode defaults that deny and never update will remove EEA data specifically while everything else looks healthy.

Rule out the fastest causes first: the free tracking audit checks tag presence, duplicate properties, and consent signals on any URL in seconds.


See where your tracking stands

Run the same 13-check audit referenced in this post against any URL. No signup, results in seconds.

Run a free audit