How to Fix Duplicate Conversions in GA4 and Google Ads visual workflow

Short answer: Duplicate conversions come from one action being recorded twice: by two tags, by two primary conversion actions, by a reloaded thank-you page, or by a "count every" setting on a lead. In Google Ads, keep one primary action per real outcome, set lead actions to count "One", and pass a unique transaction ID; in GA4, fire the key event from one source only. If you met this as a certification question, "what configuration setting eliminates duplicate conversions between advertisers?", the answer is sharing advertisers in a Campaign Manager 360 Floodlight configuration.

On this pageDuplicates between advertisersCauses of duplicate conversionsHow to diagnoseGA4 import plus Ads tagCount "One" vs "Every"Transaction ID dedupeFixes inside GA4After the fixSources

Need this done for you? GrowthSparx offers a fixed-scope lead tracking and attribution setup: GA4, Google Ads, Meta, WhatsApp, calls and CRM wired into one dashboard, usually live in 2–3 weeks.

What configuration setting eliminates duplicate conversions between advertisers?

In Campaign Manager 360, it is sharing the Floodlight configuration between advertisers (the "Share advertiser" option on the Floodlight configuration screen). Google's Floodlight configuration help says "Sharing advertisers also prevents duplicate conversions": when a user clicks ads from several shared advertisers before converting, "only the most recent click is associated with the conversion", and the site needs a single Floodlight tag instead of one per advertiser.

The Google Ads equivalent, for businesses running several Google Ads accounts under one manager account, is cross-account conversion tracking: one conversion action created in the manager account and one tag on the site. Google's stated benefit is fewer tags, which makes it "less likely to accidentally count the same conversion more than once". It does not de-duplicate between separate tags, so remove the old per-account tags when you switch.

Most Indian advertisers asking about duplicates have a simpler problem: one Google Ads account, one GA4 property, and lead or purchase numbers that are higher than the CRM. The rest of this guide covers that.

What causes duplicate conversions in GA4 and Google Ads?

CauseWhere it showsSymptomFix
GA4 key event imported into Google Ads and a Google Ads conversion tag for the same action, both primaryGoogle AdsConversions roughly double the CRM's leads; Smart Bidding over-values campaignsOne primary, the other secondary
Lead action set to count "Every"Google AdsVisitors who submit twice (or re-submit after an error) count twiceCount "One" for leads
Thank-you page can be reloaded or bookmarkedGA4 and Google AdsSpikes at odd hours; conversions with no matching CRM recordFire on a one-time data layer event, or guard with sessionStorage
Hard-coded gtag snippet plus GTM tag (or two GTM containers, or a plugin plus GTM)BothEvery event appears twice in DebugView with identical timestampsRemove one implementation
Enhanced measurement form_submit and a custom generate_lead both marked as key eventsGA4Key events about twice the form countMark only generate_lead as a key event
A GA4 "Create event" rule that copies an event the site already sendsGA4Two events with different names per submission, both key eventsDelete the rule or stop the site event
Purchase or lead tag without a transaction IDBothPayment-gateway returns and page refreshes repeat the conversionSend a unique transaction_id
Website tag and an offline/CRM import both primary for the same stageGoogle AdsEach lead counted once from the tag and again from the uploadTag = form lead; import = qualified/won stages only
Meta Pixel and Conversions API without a shared event_idMetaLead count jumps the day CAPI goes liveSame event name and ID on both sides

The Meta case is covered in our Conversions API guide; everything else is below.

How do you find where the duplicate comes from?

  1. Start with a count you trust. Take last week's form leads from the CRM (or the form tool's own entries), deduplicated by phone number. That is your baseline.
  2. Compare three numbers for the same dates: CRM leads, GA4 key events for the lead event, and Google Ads "Conversions" and "All conv." for each lead action. If GA4 matches the CRM but Google Ads is double, the problem is in Google Ads setup. If GA4 is double too, the problem is on the site.
  3. List every conversion action in Google Ads (Goals, Summary) with its source (Website, Google Analytics, Import), primary/secondary status and count setting. Two primary actions describing one form is the commonest finding.
  4. Submit one test lead with Tag Assistant connected and GA4 DebugView open. Count how many times the lead event fires and how many Google Ads conversion tags fire. Anything above one per tag is a site problem.
  5. Reload the confirmation page or state, press back and forward, and submit the same form again with the same details. Each of these should produce zero new conversions for leads.
  6. View page source and search for gtag(, GTM- and G-. Two GTM containers, or a GTM container plus a hard-coded Google tag, explain identical twin events.

How do you stop GA4 imports and the Google Ads tag double counting?

When GA4 is linked to Google Ads, you can create Google Ads conversions from GA4 key events. Google's help on conversions based on Analytics key events says these are set to secondary when the account already has goals from an Analytics property, "to prevent counting the same event twice for bidding". The problem starts when someone switches them to primary while the Google Ads tag for the same form is also primary.

Google's definitions from primary and secondary conversion actions: primary actions are "reported in the 'Conversions' column in your reports and used for bidding"; secondary actions are "used for reporting in the 'All conversions' column... but not for bidding". One exception: actions inside a custom goal are used for bidding whether primary or secondary.

Pick one source per outcome:

OutcomePrimarySecondary (observe only)
Form leadGoogle Ads conversion tag (with enhanced conversions for leads)GA4 generate_lead import
Qualified lead / bookingCRM import (see offline conversion tracking)Form lead tag, once qualified volume is enough to bid on
Ecommerce purchaseGoogle Ads purchase tag with transaction IDGA4 purchase import
Calls from adsGoogle Ads call conversion with a minimum durationGA4 click_to_call

We prefer the Google Ads tag as primary because it supports enhanced conversions and the click ID directly, and keep GA4 for cross-channel reporting. Either choice works if only one is primary. Also check the goal level: a campaign set to "Use account-level goals" bids on every primary action in those goal categories, so an old "Submit lead form" action left primary next to a new "Qualified lead" import still double counts.

Should conversions count "One" or "Every"?

Google's count setting help is direct: "Every" counts every conversion after an ad interaction; "One" counts "only one conversion per ad click". It recommends One for leads, because "usually only one, unique lead per ad click likely adds value", and Every for purchases.

  • Leads, calls, sign-ups, brochure downloads: One.
  • Purchases and paid bookings: Every, with a transaction ID so refreshes don't repeat.
  • Imported actions default to Every; check them after creation.
  • If a GA4-based action uses the "Paid and organic channels" attribution setting, Google says the count setting "must be managed in Google Analytics".
  • Changes apply to future conversions only, so annotate the date.

Worked example (illustrative): an education advertiser gets 400 form submissions in a month from 340 distinct people, because 60 parents re-submitted for a second course or after a slow page load. With "Every", Google Ads reports 400 conversions and a cost per lead 15% lower than reality; with "One", it reports at most one per click, close to the 340 real leads the counsellors actually call.

How does a transaction ID remove duplicates?

Per Google's transaction ID help, if there are "2 conversions for the same conversion action with the same transaction ID", Google Ads counts only the first. It works within one conversion action, not across actions, so it does not fix the two-primary-actions problem above. In GA4, Google's duplicate key events page says Analytics "deduplicates purchase events with the same transaction ID", and that one ID should not be reused across users.

For ecommerce, the order ID is the transaction ID. For leads, use the lead or submission ID your form or CRM generates. A data layer push that also blocks a repeat in the same browser tab:

// in the form's success handler, after the server returns the saved lead ID
var leadId = response.lead_id; // e.g. "L-2026-48213"
var key = 'lead_sent_' + leadId;
if (!sessionStorage.getItem(key)) {
  window.dataLayer = window.dataLayer || [];
  dataLayer.push({
    event: 'generate_lead',
    transaction_id: leadId,
    form_name: 'site_visit_request',
    value: 1500,
    currency: 'INR'
  });
  sessionStorage.setItem(key, '1');
}

In GTM, read transaction_id with a Data Layer Variable and map it to the Transaction ID field of the Google Ads conversion tag. Google warns to enter it "as a variable, not a static string"; a hard-coded value would make every conversion after the first a duplicate. For GA4 lead events, transaction ID deduplication is documented for purchases, so the sessionStorage guard and firing on a one-time success event are what protect generate_lead. The full trigger setup is in our GA4 form tracking guide.

How do you fix duplicate key events inside GA4?

  • Mark one event per outcome as a key event. If generate_lead is your lead event, unmark form_submit (enhanced measurement) as a key event; keep it as an ordinary event for form diagnostics. Our GA4 lead tracking setup lists which events should be key events.
  • Check the counting method. Per Google's key event counting help, "Once per event" (recommended, the default for new key events) counts every trigger, while "Once per session" counts one per session; key events migrated from Universal Analytics goals default to once per session. Changing the method hides a symptom; fix the double fire first.
  • Audit Admin, Events, Create event and Modify event rules. A rule that creates generate_lead from page_view of the thank-you URL, plus a GTM tag that sends generate_lead, doubles the count.
  • Remove duplicate Google tags. If the same measurement ID loads from both a hard-coded snippet and GTM, every event doubles, including page views.

What should you do after fixing duplicates?

  1. Annotate the change date in your reporting sheet and in GA4. Conversion counts and CPA will step change; nobody should read it as a performance drop.
  2. Expect Smart Bidding to recalibrate. Target CPA campaigns were bidding against inflated conversions. If you halve the reported conversions overnight, raise the target CPA to the true figure rather than letting the system starve; a value-based strategy needs the same attention.
  3. Do not delete historical conversions. Use a secondary status or a new action, so past reports stay explainable.
  4. Re-run the three-number comparison (CRM, GA4, Google Ads) weekly for a month. A gap of a few per cent is normal because of consent choices and attribution windows; a steady 2x is not.
  5. Add it to the audit. Duplicate tags creep back in with site redesigns and new plugins. Our lead tracking audit checklist includes the checks above.

Sources

FAQ

Common questions

What configuration setting eliminates duplicate conversions between advertisers?

Sharing advertisers in a Campaign Manager 360 Floodlight configuration. Google's Floodlight help says sharing advertisers prevents duplicate conversions: when a user clicks ads from several shared advertisers before converting, only the most recent click gets the conversion, and the site needs a single Floodlight tag. In Google Ads, the closest equivalent is cross-account conversion tracking from a manager account with one tag.

Why does Google Ads show more conversions than GA4?

Usually because two primary conversion actions measure the same thing, typically a Google Ads tag and an imported GA4 key event, or because a lead action counts Every instead of One. Attribution also differs: Google Ads credits its own clicks and can count conversions by click date, while GA4 credits across channels. Fix duplicate primaries first, then compare like for like.

Should leads be counted as One or Every in Google Ads?

One. Google recommends One for leads because usually only one unique lead per ad click adds value, so repeat submissions from the same person do not inflate results. Use Every for purchases, where each sale has value, and pair it with a unique transaction ID so page reloads and payment-gateway returns are not counted again.

Does a transaction ID prevent duplicates across different conversion actions?

No. Google Ads removes a duplicate only when two conversions for the same conversion action carry the same transaction ID. If a Google Ads tag and a GA4 import both record one purchase as separate primary actions, both are counted. Make one of them secondary. In GA4, Google documents transaction ID deduplication for purchase events.

How do I stop a thank-you page reload counting as a new conversion?

Fire the conversion from a one-time event in the form's success handler instead of a page view of the thank-you URL, pass the lead or order ID as the transaction ID, and store a sessionStorage flag so the push runs only once per lead in that browser tab. Then test by reloading, pressing back and forward, and re-submitting.

Why did my conversions drop after fixing duplicates?

Because the old numbers were inflated. When a duplicate tag or primary action is removed, reported conversions fall to the true level and CPA rises on paper, though real leads are unchanged. Annotate the date, compare against CRM leads, and adjust Target CPA bids to the corrected figure so Smart Bidding does not throttle spend.

Need a practical growth system?

Book a review of your current acquisition, content and conversion workflow.

Book a Strategy Call
RS
Founder & Performance Marketing Lead, GrowthSparx

Rinku works across SEO, lead generation, paid acquisition and conversion systems for Indian and global businesses. This article uses practical operating frameworks, identifies limitations and links changing platform facts to primary sources.

Have a question? Message us directly on WhatsApp—usually a reply within a few hours.

Chat on WhatsApp