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.
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?
| Cause | Where it shows | Symptom | Fix |
|---|---|---|---|
| GA4 key event imported into Google Ads and a Google Ads conversion tag for the same action, both primary | Google Ads | Conversions roughly double the CRM's leads; Smart Bidding over-values campaigns | One primary, the other secondary |
| Lead action set to count "Every" | Google Ads | Visitors who submit twice (or re-submit after an error) count twice | Count "One" for leads |
| Thank-you page can be reloaded or bookmarked | GA4 and Google Ads | Spikes at odd hours; conversions with no matching CRM record | Fire 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) | Both | Every event appears twice in DebugView with identical timestamps | Remove one implementation |
Enhanced measurement form_submit and a custom generate_lead both marked as key events | GA4 | Key events about twice the form count | Mark only generate_lead as a key event |
| A GA4 "Create event" rule that copies an event the site already sends | GA4 | Two events with different names per submission, both key events | Delete the rule or stop the site event |
| Purchase or lead tag without a transaction ID | Both | Payment-gateway returns and page refreshes repeat the conversion | Send a unique transaction_id |
| Website tag and an offline/CRM import both primary for the same stage | Google Ads | Each lead counted once from the tag and again from the upload | Tag = form lead; import = qualified/won stages only |
Meta Pixel and Conversions API without a shared event_id | Meta | Lead count jumps the day CAPI goes live | Same 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?
- 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.
- 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.
- 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.
- 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.
- 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.
- View page source and search for
gtag(,GTM-andG-. 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:
| Outcome | Primary | Secondary (observe only) |
|---|---|---|
| Form lead | Google Ads conversion tag (with enhanced conversions for leads) | GA4 generate_lead import |
| Qualified lead / booking | CRM import (see offline conversion tracking) | Form lead tag, once qualified volume is enough to bid on |
| Ecommerce purchase | Google Ads purchase tag with transaction ID | GA4 purchase import |
| Calls from ads | Google Ads call conversion with a minimum duration | GA4 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 IDvar 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_leadis your lead event, unmarkform_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_leadfrompage_viewof the thank-you URL, plus a GTM tag that sendsgenerate_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?
- 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.
- 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.
- Do not delete historical conversions. Use a secondary status or a new action, so past reports stay explainable.
- 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.
- 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
- Campaign Manager 360 Help: Configure Floodlight for advertisers (sharing advertisers prevents duplicate conversions)
- Google Ads Help: Cross-account conversion tracking (one tag across accounts)
- Google Ads Help: Primary and secondary conversion actions
- Google Ads Help: Conversions based on Google Analytics key events (secondary by default to prevent double counting)
- Google Ads Help: Count setting (One vs Every)
- Google Ads Help: Use a transaction ID to minimise duplicate conversions
- Google Analytics Help: Minimise duplicate key events with transaction IDs
- Google Analytics Help: Key event counting method
