The two-click fix hiding in your Google tag

Last week I ran a measurement audit on a Shopify client with a $300+ average order value. The account passed every check you'd normally run. Consent mode green. Purchases recording. Enhanced conversions enabled. By every dashboard signal, tracking was healthy.

Then I opened the Google tag's cross-domain configuration and found it empty. Not misconfigured. Empty. The domains Google had detected were sitting there as suggestions, and nobody had ever clicked accept. The fix took two clicks. The leak had been running since the tag was installed.

This is worth writing up because the failure mode is invisible by design. Nothing errors. Nothing flags red. Conversions keep arriving in reporting. They just arrive as worse data than you think you have.

Why Shopify springs this leak

A Shopify session doesn't always stay on one domain. Depending on the store's setup, a buyer can hop between the primary domain and Shopify infrastructure: myshopify.com surfaces, checkout domains. Each hop is a domain boundary.

Google's measurement survives a domain boundary one way: the tag appends a linker parameter (_gl) to the outbound URL, and the tag on the destination domain reads it and restores the first-party measurement cookie, click ID included. Google's cross-domain documentation is explicit that this is what carries Google Ads conversion measurement across related domains. But the tag only appends the linker to domains it knows about. If the configured domain list is empty, the click ID can drop at the hop.

Here's the part that keeps this invisible: the conversion doesn't disappear. Google's systems fill gaps with modeling. A measured conversion quietly becomes a modeled one. Your totals look continuous while the share of them you can actually trace to a click erodes, and modeled conversions are estimates, not observations. You lose resolution exactly where an ecommerce account needs it most: which click, which keyword, which campaign.

Where the setting hides, and the two clicks

In Google Ads: Tools, then Data manager, then your Google tag, then Configure your domains. Google's documentation confirms how domains get here: when the same tag fires across domains, they're automatically detected and appear in a Recommendations section, waiting for you to click Add.

That's the trap. Detection is automatic; acceptance is not. The list ships empty, Google does the detection work for you, and the whole system then waits for a human to confirm suggestions on a settings screen nobody visits. Accept the legitimate domains, save, done.

Verify it worked the same way Google recommends: click from your storefront toward checkout and look for _gl in the destination URL. If it's there, the cookie is riding along.

Long consideration cycles make it worse

If your product sells in one session, one hop is one chance to leak. My client's buyers don't work that way. At a $300+ order value, the ad-involved purchase journeys in that account averaged around 7 days and around 3 touchpoints. More sessions and more touches mean more domain boundaries crossed per purchase, so the probability that at least one hop drops the click ID compounds with journey length.

Which means the accounts most exposed to this are precisely the considered-purchase accounts that can least afford attribution loss. A store with long, multi-touch journeys is already fighting attribution windows and lag (more on that in the rest of this series). An empty cross-domain list stacks a silent leak on top of a structural challenge.

Diagnose at the tag, not the conversion action

The other lesson from this audit: Google Ads surfaces problems on conversion actions, but many of those problems live a level down, on the tag itself. A "needs attention" flag on a conversion action often rolls up tag-level issues that the conversion action screen can't explain. When something looks off, go to Data manager and inspect the tag directly.

Same discipline for tag coverage warnings. Google will flag "untagged pages," and some of that is real, but in this audit most of it was crawler noise: dead URLs and session-token checkout pages that no live buyer sees untagged. Before reacting to a coverage warning, open the flagged page and view source. If the tag is there on a live render, the warning is noise.

What a full measurement pass covers

The empty cross-domain list was one finding from a longer diagnostic I run on ecommerce accounts. The same pass checks the conversion window against the account's actual measured lag, what enhanced conversions is really capturing beyond an email address, which tag coverage warnings are real gaps versus crawler noise, consent mode status, and whether the primary-versus-secondary conversion inventory matches what bidding should actually train on.

None of it requires new tooling or a migration. It's configuration review, which is the cheapest performance lever most accounts never touch, and every item on it can quietly cost you money for months without a single dashboard turning red. If you run Google Ads on Shopify, I've written before about getting the campaign side right; this is the measurement side of the same coin, and it's where I start every ecommerce engagement. If you'd rather know in 30 minutes than wonder for another quarter, get in touch.

About the author

I'm Mark Henderson, a paid media specialist who does the analytics work to back it up. I've spent 20+ years running paid media and measurement for ecommerce and multi-location service businesses, including growing one ecommerce operation from $500K to $4.8M in annual revenue. I'm based in Charlotte, work with clients nationally, and you can find more of my background on the About page or on LinkedIn.