Foundation Layer โ€” Fix This Before Campaign Changes

If your tracking is wrong, your entire account is guessing.

Smart Bidding optimises toward whatever data you give it. If your Google Ads conversion tag fires on page load instead of on purchase, if your purchase values are โ‚น3,200 when the real average order value is โ‚น1,800, or if GA4 is not passing e-commerce events correctly โ€” every bidding decision, every ROAS number, and every budget allocation in the account is built on fiction.

73%

Accounts I audit have tracking errors

15โ€“30%

Typical purchase value discrepancy

Day 1

Tracking verified before campaigns launch

3-way

Google Ads โ†” GA4 โ†” Payment gateway check

The measurement stack

Four layers of tracking. Each one checks the one below it.

E-commerce tracking is not one tag โ€” it is a stack. Each layer has a specific role, and each layer verifies the accuracy of the others. When I onboard a new e-commerce client, I audit and fix every layer before touching campaign settings.

01

Google Tag Manager

Tag deployment & management layer

GTM is the container that deploys all your tracking tags โ€” Google Ads conversion tag, GA4 configuration, remarketing pixels, enhanced conversions, and any third-party tags. Using GTM means nothing touches your site code directly, changes can be version-controlled and rolled back, and QA happens in preview mode before going live.

What I configure:

Google Ads conversion tag GA4 config + e-commerce events Remarketing tag Enhanced conversions Server-side container (when needed)
02

Google Analytics 4

Behavioural analytics & audience layer

GA4 is the analytics backbone. For e-commerce, it captures the full purchase funnel: product views, add-to-carts, checkout initiation, and purchases โ€” each with product-level detail (SKU, category, price, quantity). When linked to Google Ads, GA4 enables audience import (cart abandoners, high-value buyers) and cross-channel attribution reporting.

E-commerce events I verify:

view_item add_to_cart begin_checkout add_payment_info purchase (with value) refund
03

Google Ads Conversion Tag

Bid optimisation data layer

This is the conversion tag Smart Bidding actually uses to make bidding decisions. It fires on the order confirmation page and passes the purchase value, transaction ID, and currency. If this tag is broken, misconfigured, or passing incorrect values, every tROAS and tCPA decision in the account is wrong โ€” regardless of how good your GA4 setup is.

Critical checks:

Fires only on purchase Correct order value passed Transaction ID for dedup Currency code (INR) No double-counting
04

Enhanced Conversions

Privacy-resilient attribution layer

With cookie restrictions increasing and iOS users blocking tracking, enhanced conversions send hashed first-party data (email, phone, address) from the purchase event to Google Ads. Google matches this against signed-in user data to recover conversions that cookie-based tracking misses. For most e-commerce accounts, enabling enhanced conversions recovers 5โ€“15% of previously untracked purchases.

Data sent (SHA-256 hashed):

Email address Phone number First & last name Street address + city + postcode

The verification process

I do not trust any single data source. I cross-check three.

The most dangerous tracking error is one where numbers look plausible but are quietly wrong. A purchase value inflated by 20% still looks like a real number โ€” but it makes every tROAS decision in the account operate on false data. That is why I run a three-way verification before any campaign changes.

1

Google Ads conversion data

Pull the last 30 days of purchase conversions from Google Ads: total conversions, total conversion value, and average order value. This is what Smart Bidding sees and what it optimises toward.

Example output:

342 purchases ยท โ‚น18,47,600 value ยท โ‚น5,403 avg

2

GA4 e-commerce report

Pull the same date range from GA4's Monetisation report: total purchases, total revenue, and average purchase value. Compare against Google Ads โ€” any variance above 5% signals a tagging issue.

Example output:

358 purchases ยท โ‚น16,29,200 value ยท โ‚น4,551 avg

3

Payment gateway / backend

This is the source of truth โ€” actual orders received, actual revenue collected, after cancellations and failed payments. Razorpay, PayU, Shopify admin, or WooCommerce orders. This is the number the business actually deposits.

Example output:

331 orders ยท โ‚น15,08,550 value ยท โ‚น4,557 avg

In this example, the Google Ads tag is over-reporting by โ‚น852 per order.

Smart Bidding thinks each purchase is worth โ‚น5,403 when the actual value is โ‚น4,557 โ€” an 18.6% inflation. A tROAS target of 4ร— is actually 3.4ร— in reality. The account appears to be exceeding targets when it is under-performing. This is the exact scenario I find in the majority of e-commerce audits, and it is the first thing I fix.

Platform-specific setup

Tracking setup differs by platform. Here is what I fix on each.

Every e-commerce platform has its own way of implementing the dataLayer, its own quirks with conversion tags, and its own common failure points. I have set up and audited tracking on all of these โ€” the implementation is different, but the verification standard is the same.

Shopify

Most common platform I work with

GTM installed via Shopify's Custom Pixels (not theme code injection โ€” which breaks on checkout)

Shopify checkout extensibility for accurate purchase dataLayer on thank-you page

Fix double-counting from Shopify's native Google channel + GTM running simultaneously

Purchase value verified to exclude shipping and tax (unless your ROAS targets include them)

WooCommerce

Flexible but prone to plugin conflicts

GTM4WP plugin configured for full e-commerce dataLayer (not just pageviews)

Remove conflicting plugins: "Google Listings and Ads" often duplicates conversion tracking

Order value mapped correctly from WooCommerce order total (checking coupon and refund handling)

Caching plugin exclusions โ€” page caching can serve stale dataLayer values to the conversion tag

Custom / Laravel / Magento

Full control, requires manual dataLayer

Custom dataLayer push on order confirmation page with all required e-commerce fields

Provide developer spec document: exact JSON schema, variable names, and trigger conditions

QA in GTM preview mode with real test orders before going live

Server-side GTM for improved data accuracy when client-side blockers are common

What goes wrong

8 Tracking Mistakes That Silently Destroy E-commerce ROAS

01

Conversion tag fires on page load

The tag should fire on the purchase event, not when the thank-you page loads. If someone refreshes the page, revisits from browser history, or a bot crawls it โ€” each visit counts as a conversion. I have seen accounts with 3ร— more conversions than actual orders because of this single error.

02

Purchase value includes shipping and tax

If your ROAS target is set against product revenue but your conversion tag passes order total (product + shipping + GST), every ROAS number is inflated. The business thinks ROAS is 5ร— but product-level ROAS is actually 3.8ร—. This needs to match however your finance team defines revenue.

03

Double-counting from multiple tags

Shopify Google channel + GTM conversion tag both firing = every purchase counted twice. Google Ads shows 200 conversions when there were 100 orders. Smart Bidding gets trained on false data and overbids on low-quality traffic.

04

GA4 not linked to Google Ads

Without the link, you cannot import GA4 audiences into Google Ads for remarketing, cannot use GA4 conversions as a cross-check, and lose cross-channel attribution data. It takes 5 minutes to set up and most accounts I audit have not done it.

05

No transaction ID for deduplication

Without a unique transaction ID passed with each conversion, Google cannot deduplicate repeat pageviews on the thank-you page. If a buyer bookmarks the confirmation page and visits it three times over a week, that is three conversions in the report instead of one.

06

Enhanced conversions not enabled

Without enhanced conversions, you are losing 5โ€“15% of conversion data to cookie blockers, iOS privacy changes, and cross-device journeys. That missing data makes Smart Bidding undercount conversions and bid more conservatively than it should โ€” reducing the volume of profitable traffic.

07

Using GA4 import instead of native tag

Some accounts import GA4 purchase conversions into Google Ads instead of using the native Google Ads conversion tag. The problem: GA4 import has a 24โ€“48 hour data lag, which means Smart Bidding cannot react to real-time performance. Native tags report in near-real-time.

08

Conversion window set to default 30 days

The default 30-day click-through conversion window may not match your buying cycle. Fashion e-commerce might convert in 7 days. High-value electronics might take 60. I set the conversion window based on your actual time-to-purchase data from GA4 path analysis.

What is included

Measurement setup is included in every management engagement.

Week 1

Audit & Fix

โ†’ 3-way value verification

โ†’ GTM container audit

โ†’ GA4 e-commerce event check

โ†’ Conversion tag fix/rebuild

โ†’ Enhanced conversions setup

โ†’ Transaction ID implementation

Week 2

Verify & Connect

โ†’ Test order verification

โ†’ GA4 โ†” Google Ads link

โ†’ Audience creation in GA4

โ†’ Looker Studio dashboard

โ†’ Conversion action settings

โ†’ Attribution model selection

Monthly

Monitor & Maintain

โ†’ Value accuracy spot-check

โ†’ GA4 vs Google Ads variance

โ†’ Tag health monitoring

โ†’ New product tracking

โ†’ Conversion anomaly alerts

โ†’ Quarterly full re-audit

You Receive

Deliverables

โ†’ Tracking audit document

โ†’ GTM container backup

โ†’ Looker Studio dashboard

โ†’ Developer spec (if custom)

โ†’ Monthly accuracy report

โ†’ Anomaly alert notifications

Measurement setup is part of every management plan. Standalone tracking audits available as a consulting engagement โ€” see consulting packages.

Common questions

Measurement & Tracking FAQ

Do I need to fix tracking before you start managing my campaigns?

Yes โ€” tracking is the first thing I fix, before any campaign changes. If Smart Bidding is optimising toward wrong data, changing bids, budgets, or campaign structure will not help. I typically resolve tracking issues in the first 3โ€“5 days of onboarding. It delays campaign changes by a few days, but the alternative โ€” optimising campaigns on false data โ€” wastes far more time and money.

My Shopify store already tracks conversions. What could be wrong?

The most common Shopify issues: double-counting from Shopify's Google channel running alongside a GTM conversion tag, purchase values including shipping and GST (which inflates ROAS if your targets are product-revenue-based), no enhanced conversions (losing 5โ€“15% of data to cookie blockers), and no transaction ID for deduplication. A tracking audit typically finds 2โ€“3 of these on a standard Shopify store.

What is enhanced conversions and do I need it?

Enhanced conversions sends hashed (SHA-256) customer data โ€” email, phone, name, address โ€” from the purchase event to Google Ads. Google matches this against signed-in user data to recover conversions that cookie-based tracking cannot see. With iOS privacy changes and browser ad blockers increasing, this is no longer optional โ€” it is essential. Most accounts I set it up on see a 5โ€“15% increase in reported conversions, which means Smart Bidding gets more accurate data to optimise from.

Should I use Google Ads native conversion tag or import from GA4?

Use the native Google Ads conversion tag as your primary conversion action for Smart Bidding. It reports in near-real-time, which gives Smart Bidding the fastest signal to adjust bids. GA4 import has a 24โ€“48 hour data lag. I set up both โ€” native tag for bidding, GA4 for cross-channel analysis and audience building โ€” but the primary conversion action Smart Bidding optimises toward should always be the native tag.

Can you audit my tracking without managing my campaigns?

Yes โ€” standalone tracking audits are available as part of my consulting service. I do the full 3-way value verification, GTM container audit, GA4 event check, and deliver a written report with specific fix instructions. If you have an in-house developer, they can implement the fixes from my spec document. If you need implementation done, I can handle that too for an additional fee.

Free for e-commerce stores

Is Your Tracking Telling the Truth?

I will cross-check your Google Ads conversion data against GA4 and your payment gateway. If the numbers do not match โ€” and they usually do not โ€” I will tell you exactly where the error is and how to fix it.