Google Ads
Duplication happens when more than one tracking path counts the same Shopify order as a separate conversion: two conversion actions both marked primary, two implementations both firing, or a counting setting that logs every page load instead of one per order. The orders themselves are real. Google Ads is just recording each of them more than once, which inflates conversion count and revenue together even though nothing shipped that didn't actually sell.
The tell is a stable multiple, not a fuzzy gap. If Google Ads reports conversions running at roughly twice (or three times) Shopify's order count for the same channel and date range, consistently, that's a strong signal something is structurally counting each order more than once. A gap that moves around depending on the week, or that shrinks and grows with refund activity, is a different problem: ordinary attribution and reporting mismatch, not duplication. More on that distinction below.
Every conversion action set to Primary status contributes to the headline Conversions column and to automated bidding: Google Ads sums them. If a native Purchase conversion action and a separately imported GA4 purchase event are both marked Primary, and both are logging the same orders, Google Ads is literally adding two records of one sale. This is the single most common cause of duplication on Shopify accounts, because it's easy to enable GA4 import without checking whether the existing native action is still Primary too.
Shopify's built-in Google & YouTube channel integration deploys its own conversion tag automatically. If a store also has a manually configured Google Tag Manager container in the theme (often left over from before the app was installed, or added later without checking what was already there), both fire independently on the same order. Neither implementation knows the other exists, so neither suppresses the duplicate. This usually traces back to an incomplete migration: someone installed the app but never removed the old manual snippet, or vice versa.
A conversion action can be configured to count every conversion or one conversion per click/interaction. For a Purchase action, Google's own guidance is to use Every: each real sale adds business value, so each one should count. Switching a Purchase action to "One" is a common but incorrect reaction to seeing duplicate conversions. It doesn't fix the underlying duplication; it just suppresses genuinely separate purchases from the same customer, which quietly undercounts real revenue instead.
"One" exists for a different job: lead-generation actions, where several form fills from the same ad click often represent one prospect rather than additional business value. That's not the Shopify purchase problem this article is about.
This is the actual fix for the re-render/refresh/retry problem, not the Count setting above. Google Ads relies on the transaction ID passed with a purchase event to recognize a repeat firing as the same order rather than a new one. If that ID is missing, or a static placeholder value gets reused across every order instead of the actual Shopify order ID, Google loses the ability to deduplicate: a page reload or retry that would otherwise be recognized and ignored instead counts as a fresh conversion. A correct, unique transaction ID per order is what keeps Count set to Every safe: real sales still all count, while the same order firing twice doesn't.
Attribix sends Shopify order data to Google Ads with a consistent transaction ID per order and shows that alongside what Google Ads actually recorded, which makes a stable 2x-type gap visible immediately instead of surfacing weeks later in a spend review. See the mechanics on the Google Ads conversion tracking for Shopify page.
A Google Ads conversion count that's close to but not identical to Shopify's order count, and moves around week to week, is a different topic entirely. Conversion-date-vs-order-date timing, attribution windows, refunds, and cross-channel overlap with Meta all produce that kind of variance without any technical duplication happening. That mismatch pattern is covered in why Google Ads and Shopify revenue don't match. The quickest way to tell the two apart: duplication produces a consistent multiple tied to a specific setting; ordinary mismatch produces a variable gap tied to timing and refund activity.
Last reviewed August 12, 2026 by the Attribix team, for platform accuracy against current Meta, Google and Shopify documentation.
This covers the settings worth checking yourself. When duplication persists after checking them, or the cause turns out to be layered across multiple tools, that's account-level investigation: send us the details and we'll dig in.