Google Ads

Duplicate Google Ads conversions on Shopify

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.

What duplication actually looks like

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.

Multiple "Primary" conversion actions counted together

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.

The Google & YouTube app and a separate GTM setup, both live

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.

Don't "fix" duplication by switching Purchase to "One"

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.

Missing or non-unique transaction IDs

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.

What this isn't: ordinary attribution difference

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.

Common questions

How do I know if it's duplication versus just a reporting difference?
Check whether the gap holds a stable multiple (roughly 2x, consistently, tied to a specific setting like two primary actions both live) versus a gap that fluctuates with refunds, dates or attribution windows. A stable multiple points at duplication. A fluctuating one points at ordinary mismatch.
Should I mark a duplicate conversion action as Secondary instead of deleting it?
Usually yes, at least initially. Secondary actions still collect data and don't affect bidding or the headline Conversions total, so you keep the history without it double-counting. Deleting an action outright can also break historical reporting for that action.
Does duplication affect conversion value as well as count?
Yes: if the count is inflated, the aggregate value is too, even when each individual order's value is correct. Worth checking both together rather than assuming a correct-looking value means the count is also fine.
Can Performance Max make duplication worse?
Not directly, but because PMax's automated bidding optimizes hard against whatever conversion value and count it's given, an inflated conversion signal from duplication has a bigger downstream effect on PMax's spend decisions than it would on a manually managed campaign.

When the settings check out and the gap stays

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.