Duplicate conversions in Google Ads: how to find, fix and date the cause
Duplicate conversions in Google Ads happen when one real action, such as a purchase or a form submission, is recorded two or more times. The usual causes are a tag that fires twice, two primary conversion actions tracking the same event, or a thank-you page reload. Fix them with transaction IDs, the right count setting and one primary action.
What are duplicate conversions in Google Ads?
Duplicate conversions are extra conversions recorded for an action that happened only once. One purchase becomes two purchases, one lead becomes three leads, and every metric built on conversions moves with them: conversion rate goes up, CPA goes down and ROAS looks better than it is.
The cost is bigger than a wrong report. Primary conversion actions are the ones reported in the "Conversions" column and used for bidding, according to Google's help page on primary and secondary conversion actions. If those numbers are inflated, Smart Bidding learns from conversions that never happened and can push budget toward the wrong campaigns, keywords or audiences.
The typical symptom is a sudden rise in conversions that your source of truth does not confirm. Example: Google Ads reports 84 purchases for last week while your store backend shows 46 orders, and the gap appeared on one specific day rather than growing slowly. Some gap is normal (attribution, conversion date versus order date, consent). A gap that jumps overnight usually means something in the tracking changed.
What causes Google Ads conversions to be counted twice?
Almost every case comes down to the same event reaching Google Ads through two paths, or one path firing twice. The table lists the causes you will see most often and how each one shows up.
| Cause | What happens | Typical sign |
|---|---|---|
| Tag fires twice in Google Tag Manager | The trigger matches two events (for example a form submit and the thank-you page view), or the tag is attached to two triggers | About two conversions per real order on one action |
| Tag installed twice | A hard-coded Google Ads tag plus the same tag in GTM, or a platform plugin plus your own setup | Two conversion hits for one test order |
| Thank-you page reloads | The visitor refreshes or returns to the confirmation page and the tag fires again | Duplicates on purchases without a transaction ID |
| Two primary actions for one event | A Google Ads tag action and a GA4-imported action both count the same purchase or lead | Conversions roughly double right after an import or goal change |
| Count set to "Every" for leads | A person who submits the same form twice is counted twice | More leads in Google Ads than unique contacts in the CRM |
| Event defined twice for GA4 | The same event is sent from GTM and also created again in GA4, then imported | GA4 key event count higher than real events |
Search Engine Land's guide to duplicate conversions adds a common e-commerce case: a store's built-in Google channel or a checkout app adds its own tracking on top of a custom GTM setup, so both fire on the same order.
Two of these causes are settings, not code. Google describes "Every" as counting every conversion after an ad interaction and "One" as counting only one conversion per ad click, and recommends "One" for leads, where one unique lead per click is what adds value (Google Ads Help).
How do I check whether my Google Ads conversions are duplicated?
Compare Google Ads with a source that counts each real action once, then trace the gap to one conversion action and one tag. Work in this order:
- Pick a source of truth. Orders in your store or payment system for purchases, contacts or deals in your CRM for leads. Export daily counts for the last 30 to 60 days.
- Compare by day. Put Google Ads conversions next to the backend count. Look for the day the ratio changed, not for a perfect match.
- Split by conversion action. Segment the Google Ads report by conversion action. If one action carries the whole jump, you know where to look.
- List your actions. Open Goals > Conversions > Summary and check which actions are Primary. Two primary actions that describe the same event, for example "Purchase" from the Google Ads tag and "purchase" imported from GA4, both feed the "Conversions" column.
- Check the count setting. Open each lead action and confirm whether "Count" is set to "One" or "Every".
- Watch the tag fire. Place a test order or submit a test form with Google Tag Assistant open and count the Google Ads conversion hits. In Chrome DevTools, filter the Network tab for
googleadservices.com/pagead/conversion; Google notes that the transaction ID appears in the payload asoid. - Reload the confirmation page. If a refresh sends a second hit, reloads are inflating your purchases.
Steps 1 to 3 tell you whether you have a problem and when it started. Steps 4 to 7 tell you which mechanism causes it. Keep the test order numbers so you can match them to hits later.
How do I fix duplicate conversions in Google Ads?
Remove the second path first, then add deduplication so a single path cannot count the same action twice. Match the fix to the cause you found.
Add a transaction ID to purchase conversions
When two conversions for the same conversion action carry the same transaction ID, Google Ads treats the second one as a duplicate and does not count it. Google's rules for the ID (source):
- Unique per transaction and generated dynamically by your backend or e-commerce platform, never hard-coded.
- Up to 64 characters, with no personally identifiable information, URLs, email addresses, prices or phone numbers.
- Deduplication works within one conversion action, so it will not stop two different actions from counting the same order.
- It does not remove duplicate view-through conversions, and transaction IDs are not shown in Google Ads reports.
In Google Tag Manager the usual setup is a data layer push with the order ID, a Data Layer Variable named transaction_id, and that variable mapped in the Google Ads conversion tag.
Keep one primary action per real event
If the Google Ads tag and a GA4 import track the same purchase, keep one as Primary and set the other to "Secondary (observe only)". Secondary actions stay visible in the "All conversions" column but are not used for bidding, unless you add them to a custom goal.
Use "One" for leads
Switch lead actions to "One" in Goals > Conversions > Summary > the action name > Edit settings > Count. Google states the change only applies to future conversion reporting; past data keeps the old count.
Clean up the tags
Remove hard-coded tags that duplicate GTM, turn off the extra tracking in platform plugins, and tighten triggers so they match one event. In GTM's Advanced Settings, "Once per event" is the default tag firing option. "Once per page" stops a tag from firing more than once per page load, but a reload creates a new page load, so it does not replace a transaction ID.
Correct past data if it matters
Conversion adjustments let you retract or restate conversions that were tracked with an order ID, or with the GCLID plus conversion time. Google says adjustments can be made within 54 days and recommends uploading them at least 24 hours after the conversion (source).
How do you find the change that started the duplicate conversions?
Duplicates almost always start on a specific date, and that date matches a change someone made. Find the first day the conversion-to-order ratio moved, then list every change from the days before it.
- Put everything on one timeline. GTM container versions published, website or theme releases, new plugins or checkout apps, conversion actions created or edited, GA4 imports, goal changes and changes made by platform automations.
- Rule out tracking first. If conversions rose while clicks, sessions and backend orders stayed flat, treat it as a tracking change before you credit a bid strategy or a new ad.
- Test one hypothesis at a time. Example: the jump started on 14 September, and GTM version 37, published on 13 September, added a second trigger to the purchase tag. Pause that trigger in a test, place an order and count the hits. If the duplicate disappears, you have the cause.
- Check what else changed that day. A sale, a new campaign or a budget increase can explain part of the rise, so separate the real lift from the tracking error.
Google Ads change history shows edits inside the account, such as new conversion actions or goal changes, but not GTM publishes, site releases or plugin installs. Those live in other tools or in someone's memory, which is why a shared marketing change log saves hours here. The opposite problem, a tracking change that hides real conversions, is covered in our post on the consent mode conversion drop.
What should you log after fixing duplicate conversions?
Log the fix as a tracking change with an exact date, because the fix itself will move your metrics. Once duplicates stop, reported conversions fall, CPA rises and ROAS drops, even though the business did not change.
- When the duplication started and when it was fixed (date and time).
- Which conversion actions were affected and roughly by how much (example: "Purchase" counted about 1.8 conversions per order).
- What changed: transaction ID added, action set to Secondary, count switched to "One", trigger removed.
- Who made the change and where (GTM version, Google Ads, website release).
- Whether past data was retracted with conversion adjustments or left as it was.
Add the same dates as annotations in GA4 and in your client report, so nobody reads the drop after the fix as a performance problem. If the client asks why results fell, our guide on how to explain a conversion drop to a client gives you a structure. If you later see a real fall in conversions, start from the method in why did my conversions drop.
Changeline keeps these entries on one to-scale timeline per client, next to Google Ads, Meta Ads, website and CRM changes, so the next person who sees the jump or the drop finds the reason quickly. You can start a change log for free while Changeline is in early access.
FAQ
Do duplicate conversions affect Smart Bidding?
Yes, when the duplicated action is primary. Google reports primary actions in the "Conversions" column and uses them for bidding, so inflated counts teach Smart Bidding that some clicks are worth more than they are. Secondary actions are observation only and do not affect bidding unless they are part of a custom goal.
Does changing the count setting fix past data?
No. Google states that switching between "One" and "Every" only applies to future conversion reporting. To remove duplicates already recorded, use conversion adjustments to retract them. That works for conversions tracked with an order ID, or with the GCLID plus conversion time, within the 54-day window Google documents.
Will a transaction ID stop a GA4 import and a Google Ads tag from double counting?
No. Google deduplicates transaction IDs within the same conversion action only. If a Google Ads tag action and a GA4-imported action both count the same purchase, keep one as Primary and set the other to "Secondary (observe only)" so only one feeds the "Conversions" column and bidding.
Should purchases use "One" or "Every"?
Google recommends "Every" for sales, because one ad click can lead to several real purchases, and "One" for leads. With "Every", add a unique transaction ID to each purchase so page reloads and repeated tag fires on the same order are not counted again.
How can I see if a Google Ads tag fires twice?
Place a test order with Google Tag Assistant open and count the Google Ads conversion hits. You can also filter the Chrome DevTools Network tab for googleadservices.com/pagead/conversion and check the oid parameter, which carries the transaction ID. Two hits for one order means a duplicate.
Is some difference between Google Ads and my CRM normal?
Yes. Attribution windows, conversions reported on the click date, consent choices and offline steps all create gaps. What points to duplicates is a sudden change in the ratio on a specific day, or Google Ads showing more conversions than real orders or unique leads.
Sources
- Use a transaction ID to minimize duplicate conversions (Google Ads Help)
- About conversion counting options (Google Ads Help)
- About primary and secondary conversion actions (Google Ads Help)
- How to adjust your conversions (Google Ads Help)
- PPC tracking: How to eliminate duplicate conversions (Search Engine Land)
- Fire Once per Page vs Once per Event vs Unlimited in Google Tag Manager (Analytics Mania)
Keep every change on one timeline
Changeline is a marketing change log for agencies and growth teams. Log a change in seconds and see it next to every other channel. Free while in early access.
Start now, free