Broken conversion tracking isn’t a reporting problem. Smart Bidding uses your conversion data as its primary signal — if the data is wrong, your bids are wrong. This guide covers every common cause, from basic installation issues to the architecture mistakes that silently degrade bidding performance.
Why this matters more than people realise
When Smart Bidding decides how much to bid for an auction, it draws on your historical conversion data. Every strategy — Target CPA, Target ROAS, Maximise Conversions — works from that same signal. If the data feeding it is incomplete, duplicated, or miscategorised, the algorithm optimises toward the wrong thing.
You can have excellent ad copy, tight keyword lists, and a competitive budget, and still get bad results because the conversion data is broken. Most tracking failures are invisible: the account looks like it is working, conversions are being recorded, but the signal going into Smart Bidding is off.
Fix conversion tracking first. Every other optimisation sits on top of it.
Symptoms — find your issue fast
SymptomLikely causeFirst check
Conversions show zero or status is inactiveTag not firing, wrong Conversion ID or LabelTag Assistant on the conversion page
Conversions doubled or inflatedGA4 import and Google Ads tag both set as primaryGoals › Conversions › Summary
Conversion rate is 20% or higherTag firing on page load, not on form submissionGTM Preview Mode
Leads in CRM but not in Google AdsConsent blocking, missing GCLID, EC mismatchTag Assistant + Diagnostics
Sudden drop after a site updateGTM container not republished or trigger brokenGTM › Versions history
Status shows “Needs attention”Enhanced Conversions error or consent conflictGoals › Conversions › Diagnostics
The 7 most common conversion tracking issues
Each of these has a different root cause and a different fix. Identify which applies before making changes — working through them randomly wastes time and makes it harder to know what actually resolved the problem.
Conversion action is inactive or shows ‘Needs attention’
Usually the first warning you see. Inactive means the conversion tag has not fired within the conversion window (typically 30 days). Needs attention flags a configuration issue, often Enhanced Conversions failing or a consent mode conflict.
Fix: Run Tag Assistant on the conversion page to confirm whether the tag fires at all. If the tag fires but status remains inactive, check that the Conversion ID and Label in the tag exactly match the values in your Google Ads conversion action — a single character difference causes a silent mismatch. For Needs attention errors, go to Goals › Conversions › Diagnostics and Google will flag the specific field. Common causes: a phone number not in E.164 format (+44xxxxxxxxxx), or user_data being passed before the consent tag fires.
02
Duplicate conversion counting
The most widespread misconfiguration in Google Ads accounts. It happens when two sources are both tracking the same conversion and both are set as primary. The common version: a GTM-deployed Google Ads Conversion Tag and a GA4-imported conversion action both set to Include in Conversions = On for the same event. Every conversion gets counted twice.
Impact goes beyond inflated reporting. Smart Bidding receives a corrupted signal — thinks conversions are happening more frequently than they are, at a lower CPA than is real. Performance looks better than it is until you compare against actual revenue or CRM data.
Fix: Open every conversion action and identify any pairs tracking the same event from different sources. Set the GA4-imported version to secondary (Include in Conversions = Off). The GTM-deployed Google Ads Conversion Tag stays primary. Re-run this check every time you add a new conversion source.
03
GA4 conversions imported as primary
A subtle issue that most guides don’t cover. Importing GA4 conversions into Google Ads is useful — it gives you GA4’s attribution model as a reference point. For most lead-generation accounts, though, a native Google Ads conversion tag belongs in the primary slot, with GA4 imports kept secondary for reporting and validation.
Two reasons. First, GA4 and Google Ads can attribute the same conversion differently because they use different reporting models, lookback settings and event processing paths. Bidding against a GA4-attributed metric means Smart Bidding works from data that doesn’t always match how Google Ads measures performance. Second, GA4 import latency means conversions can appear in reports with a delay, so the algorithm operates on incomplete recent data.
What good looks like
Two parallel pipelines, one primary signal
Source
GTM
→
Tag / import
Google Ads Conversion Tag
→
Primary · feeds bids
Smart Bidding
Source
GA4
→
Tag / import
GA4 import (generate_lead)
→
Secondary · observed
Reporting only
Primary actions feed Smart Bidding. Secondary actions are recorded for reporting but don’t influence bid decisions. Never run two primary sources for the same event.
Fix: For every conversion action imported from GA4, set Include in Conversions = Off. Keep the import for reference and reporting; let your GTM-deployed Google Ads Conversion Tag carry the bidding weight. The rule isn’t “never import GA4” — it’s “never let two sources track the same event as primary”.
04
Conversion tag firing on page load instead of the actual conversion
Happens most often when an account is set up quickly. A conversion tag gets attached to a Page View trigger on the thank-you URL, which sounds correct, but Page View triggers fire on every visit to that page — direct navigation, link previews, page refreshes all trigger it. Conversion rates of 20–40% in Search campaigns are usually the symptom.
✕Page View trigger
1
Page View on /thank-you
2
Fires on every visit — direct nav, refreshes, link previews
3
Inflated conversions — Smart Bidding trains on bad data
Conversion rate of 20–40%? This is why.
✓Form Submit trigger
1
Form Submission / dataLayer event
2
Fires only on real submission — one event, one conversion
3
Accurate signal — Smart Bidding trains on real leads
Use GTM Preview Mode to confirm exactly once on submit.
Fix: In GTM, use a Form Submission trigger on the specific form, or a Custom Event trigger firing on a dataLayer event pushed by your form confirmation logic. For Shopify, check the current checkout setup before relying on GTM — the Google & YouTube app or Customer Events approach is usually safer than legacy GTM snippets on checkout pages. Test in Preview Mode: submit once, confirm the trigger fires exactly once on submission.
05
Enhanced Conversions not enabled or misconfigured
Standard browser-side conversion tracking misses a growing share of conversions to ad blockers, iOS ITP, and cookie consent restrictions. Enhanced Conversions recovers a portion by sending hashed customer data alongside the conversion signal, which Google matches to signed-in Google accounts.
The common misconfiguration: the Google Ads Conversion Tag is set to Automatic user data collection, which scrapes email addresses from the DOM. It’s unreliable — misses users who type slowly, fails on single-page apps, doesn’t capture phone numbers. The correct approach is Code mode: push a structured user_data object to the dataLayer at the point of conversion, and read it via a Data Layer Variable.
dataLayer.push({
'event': 'conversion_form_submit',
'user_data': {
'email': formEmail, // raw — Google hashes it
'phone_number': formPhone // E.164: +447911123456
}
});
Fix: Capture email and phone from the form at submission and push a structured user_data object to the dataLayer. Phone numbers must be E.164 (UK numbers starting with 07 become +447). After 7 days, check the Enhanced Conversions Diagnostics in Google Ads to confirm user-provided data is being received and match quality is healthy.
06
Consent Mode v2 silently blocking conversions
The hardest issue to diagnose because there’s no error. For advertisers in EEA/UK, Consent Mode v2 is now core to Google Ads measurement. Configured correctly, it signals consent state to Google tags so they can behave appropriately for each user. Configured incorrectly, remarketing and attribution signals can be restricted, conversion modelling degraded, and data blocked silently for users who haven’t consented.
The failure mode: the Consent Mode default state tag is missing, fires too late, or sets the wrong consent types. Tags that require ad_storage fire before consent is granted on page load, then the consent signal never updates to granted even after the user accepts. Google tags interpret this as a permanently denied state and suppress the conversion.
Correct firing order
Consent Mode v2 — what should happen on every page load
1
Consent Init tag
Fires first, before all other tags
2
Default state set
ad_storage = denied
ad_user_data = denied
3
Banner appears
User sees the cookie consent prompt
4
User accepts
CMP pushes consent update to dataLayer
5
State updated
ad_storage = granted
ad_user_data = granted
6
Conversion tag fires
Data flows to Google Ads ✓
If steps 1–2 happen after step 3, the consent signal is permanently denied for that page load — even if the user accepts.
Fix: Your Consent Mode default state tag must fire before any other Google tag on every page. Set it to fire on Consent Initialization, with ad_storage and ad_user_data denied by default. Your CMP must push a consent update to the dataLayer when the user accepts. Verify in Tag Assistant that consent state shows granted before the conversion tag fires.
07
Auto-tagging disabled
Without auto-tagging, Google Ads doesn’t append a GCLID parameter to landing page URLs. GCLID is how Google Ads connects an ad click to a subsequent conversion. Disable it and click-based attribution stops working entirely. Most often turned off accidentally after a URL rewrite, or by a developer who thought the parameters were tracking spam.
Fix: Google Ads: Admin › Account settings › Auto-tagging. Toggle it on. If your website strips URL parameters (some CMSs do this), whitelist GCLID in your URL parameter handling, or move to server-side auto-tagging.
What correct setup looks like in 2026
A clean account has one primary conversion action per conversion type, fired directly by a GTM-deployed Google Ads Conversion Tag. GA4-imported equivalents sit alongside it as secondary actions. Here’s what that looks like for a typical lead-generation account:
Conversion eventSourceInclude in ConversionsBidding role
Lead form submissionGTM — Google Ads Conversion Tag
On · primary
Smart Bidding signal
Lead form submission (GA4)GA4 import — generate_lead
Off · secondary
Reporting only
PurchaseShopify / server-side app
Off · secondary
Observed
How to verify it’s working
Making a change and waiting for data is slow and unreliable. Use these three methods to confirm tracking is working immediately after any fix.
TA
Google Tag Assistant
Use when
Installing or changing a tag
Shows
Every Google tag firing in real time, in sequence
Look for
Conversion Tag present + Conversion ID and Label match your Google Ads action exactly
GTM
GTM Preview Mode
Use when
Diagnosing trigger timing issues
Shows
Every tag and trigger fired at each step of the user journey
Look for
Conversion tag fires once on form submit — not on the subsequent page load
Dx
Conversion Diagnostics
Use when
Checking account-level health after a fix
Shows
Automated Google checks: tag presence, auto-tagging, EC match rate, consent status
Look for
No flags. Updates within 24 hours of any change
2026 Update
Enhanced Conversions for web and leads are merging into a single on/off setting.
Google Ads now accepts user-provided data simultaneously from website tags, Data Manager, and API connections. Previously these operated more separately.
In practice: if you have EC enabled for web and are also sending data through Data Manager or an API integration, Google will now combine those signals. Check your Diagnostics report to confirm data is arriving correctly from each source and match quality is healthy.
FAQ
The most common reasons: the tag is not installed or not firing on the right event, auto-tagging is disabled, duplicate conversion actions are both set as primary, Consent Mode v2 is blocking ad_storage for non-consenting users, or Enhanced Conversions is misconfigured. Start at Goals › Conversions › Summary and check status, then run Tag Assistant on the conversion page.
Inactive means Google Ads has not received a signal from that conversion action within the conversion window (typically 30 days). The tag may not be installed, the trigger may not be firing, or the Conversion ID and Label may not match. It doesn’t necessarily mean conversions are not happening — it means Google can’t see them.
Yes, but in most lead-generation accounts, GA4-imported conversions work best as secondary (Include in Conversions = Off). Your primary Smart Bidding signal should be a GTM-deployed Google Ads Conversion Tag. GA4 imports are useful for cross-referencing and reporting — the important rule is never to let two sources track the same event as primary.
Install Google Tag Assistant (free Chrome extension) and navigate to or trigger the conversion event. Tag Assistant shows every Google tag that fires in real time. For GTM-deployed tags, use GTM Preview Mode to walk through the full user journey and confirm the trigger fires at the right point.
Primary conversions (Include in Conversions = On) feed directly into Smart Bidding as the optimisation target. Secondary conversions are recorded in reports but don’t influence bid decisions. If primary conversions are duplicated, miscategorised, or include low-quality signals, Smart Bidding optimises toward the wrong thing.
Lewis PhillipsPerformance marketer · 11 years
I’ve built conversion tracking architectures for Shopify and custom-stack accounts — GTM pipelines, Enhanced Conversions, Consent Mode v2, server-side implementations. This guide draws on that, not generic documentation summaries.