More than 60% of the accounts I audit have broken or partially-broken conversion tracking. Smart Bidding amplifies bad data - so a tracking issue compounds into thousands of rupees of misallocated spend every week. This article fixes that.
The 4-layer tracking stack
- Layer 1 - GTM (Google Tag Manager): The container for all your tags.
- Layer 2 - GA4: Cross-channel reporting and analysis.
- Layer 3 - Google Ads conversions: Bid optimisation signal.
- Layer 4 - Offline conversion imports: Real revenue feedback to Google Ads.
Each layer has a job. Most accounts only have Layers 1-3 - and that is why their Smart Bidding underperforms. Layer 4 is where ROI tracking actually starts mattering.
Layer 1: GTM setup that scales
Use one GTM container per website. Inside it:
- 1 GA4 Configuration tag (fires on All Pages).
- 1 Google Ads Conversion Linker (fires on All Pages - captures GCLID).
- 1 GA4 Event tag per conversion event (form_submit, purchase, lead, etc.).
- 1 Google Ads Conversion tag per Google Ads conversion action.
Common mistake: hardcoding the GA4 measurement ID in multiple tags instead of using a constant variable. Always use GTM variables for IDs.
Layer 2: GA4 setup for ad performance
GA4 is your analysis tool, not your optimisation signal. Set it up like this:
- Mark all key events as conversions (lead, purchase, demo_booked).
- Link GA4 ↔ Google Ads (so you can import audiences and conversions).
- Enable enhanced measurement.
- Set up custom dimensions for campaign type, lead quality, and source detail.
- Build a Looker Studio dashboard that surfaces channel performance, CPA, ROAS, and CVR.
Layer 3: Google Ads conversions - what to count, what not to
Smart Bidding optimises against whatever you tell it to count. Choose carefully.
Count as primary conversions
- Form submissions (with quality filtering).
- Phone calls >60 seconds.
- Purchases / signups.
- Qualified leads (from offline import).
Count as secondary (observe but not optimise)
- Page views of high-intent pages (pricing, demo).
- Newsletter signups.
- PDF downloads.
- Video views >75%.
Do NOT count as conversions
- Time on site / scroll depth (engagement, not intent).
- Click on phone number (the call itself is the signal, not the click).
- Multiple events from one user (de-duplicate or use unique conversions).
Layer 4: Offline conversion imports (the game-changer)
This is what separates serious advertisers from amateurs. Here is the flow:
- User clicks an ad → Google sets a GCLID parameter on the URL.
- Capture the GCLID in your form / CRM as a hidden field.
- Sales team works the lead. Lead becomes Qualified, then Closed-Won.
- At each stage transition, push an event back to Google Ads via the API or upload, tagged with the original GCLID and the actual revenue value.
- Google Ads now sees real revenue per click - and Smart Bidding optimises to maximise revenue, not form fills.
Implementation options: native Google Ads > Tools > Conversions > Offline Conversions upload (CSV), Zapier integration with HubSpot/Salesforce, or custom server-to-server via the Google Ads API.
Enhanced conversions - turn it on
Enhanced conversions sends hashed (SHA-256) first-party data - email, phone, name - to Google. Google matches it against signed-in users to recover conversions lost to cookie restrictions. Setup:
- In Google Ads → Conversions → Settings → enable Enhanced Conversions for Web.
- In GTM, configure the conversion tag to read user data from the form.
- Verify in the Diagnostics tab that data is matching.
Typical lift: 5-15% recovered conversions. Effort: 30-60 minutes.
Attribution model - pick the right one
- Data-Driven Attribution (DDA): Default. Best for 300+ conversions/month. Algorithm assigns credit based on actual contribution.
- Position-Based: 40% to first click, 40% to last click, 20% spread between. Good for awareness + closing analysis.
- Time Decay: More credit to recent touchpoints. Good for short sales cycles.
- Last Click: Simple, but underweights upper funnel. Use if you have no other choice.
- First Click: Almost never appropriate for performance optimisation. Use for awareness analysis only.
The tracking debug checklist (fix 90% of issues)
- Use GTM Preview mode on your live site. Trigger a test conversion. Confirm both GA4 and Google Ads tags fire.
- Check Tag Assistant. Look for double-firing, missing tags, or wrong values.
- Compare GA4 vs Google Ads conversion counts for the same event over 7 days. >20% gap = problem.
- Check the conversion window settings. Default is 30 days for clicks, 1 day for view-through. Match this to your sales cycle.
- Verify cross-domain tracking if you use a separate domain for forms or checkout.
- Check for duplicate conversion actions in Google Ads. Often legacy + new tags fire simultaneously, doubling counts.
- Verify GCLID capture by inspecting form submissions - the gclid hidden field should populate when arriving from a Google Ads click.
- Run a $100 test campaign after every major tracking change. Confirm conversions + values flow correctly before scaling spend.
The reporting framework
Build one Looker Studio dashboard with three tabs:
- Performance overview: Spend, conversions, CPA, ROAS by campaign and channel.
- Funnel: Impressions → clicks → leads → qualified → closed-won, with drop-off rates.
- Profitability: Revenue, COGS, ad spend, contribution margin per campaign.
The bottom line
Tracking is unsexy. It is also the single highest-ROI investment you can make in your Google Ads stack. Without it, you are flying blind. With it, every other optimisation compounds.
Want me to audit your tracking and find the gaps? Book a free 30-minute audit - I will run the full debug checklist on your account.