Why does Google Ads say my conversions may be overcounted?
Short answer
As of October 2026, Google Ads shows "Your conversions may be overcounted" when fewer than 10% of transaction IDs from your Google tag match the IDs in an additional data source, such as an order upload through Data Manager, over the past 2 days. Google removes a duplicate only when both copies carry the same transaction ID in the same conversion action, so mismatched IDs can count one sale twice. Send the same order number, in the same format, from the tag and from the upload.
Google Ads can now warn you when it suspects it is counting your sales twice. The warning comes from Data Manager, Google's tool for connecting your own data, and points at one field: the transaction ID. This guide is part of the Google Ads conversions topic.
What does "Your conversions may be overcounted" mean in Google Ads?
"Your conversions may be overcounted" is a diagnostic in Google Ads Data Manager. According to Google's help page, it appears when fewer than 10% of transaction IDs matched between the Google tag and the additional data source in the past 2 days.
A transaction ID is a unique label for one conversion, usually the order number. The Google tag is the code on your site that reports the purchase from the shopper's browser. An additional data source is a second copy of the same purchases that you send from your own systems, such as a CRM or an order database, through Data Manager or the Data Manager API. Google calls this setup multi-source conversions and marks it as a beta.
Data Manager shows connections with problems as "Needs attention" or "Urgent"; hovering over the status opens a card with recommended actions. The diagnostics tool is rolling out gradually, so your account may not show it yet. Google announced these built-in diagnostics on September 10, 2026.
Why does a low transaction ID match mean double counting?
Google Ads removes a duplicate only when it can see that two records describe one sale. In a multi-source setup, the transaction ID is "the key used to deduplicate events and match updates from the additional data source against the Google tag within the same conversion action," and its format and values must match what the tag sends.
If the tag sends order-12345 and your upload sends 12345, Google sees two different conversions. Each one counts. Google says such discrepancies "will prevent Google Ads from deduplicating events and reporting your conversions accurately."
When the tag and the upload describe the same orders, most IDs should match. When almost none match, either the formats differ or one side is missing IDs. In both cases, the same sale can be reported once by the tag and again by the upload, and Smart Bidding, Google's automated bidding, learns from the inflated count. Google ties the fix directly to "accurate bidding and conversion reporting."
Which transaction ID mismatches does Google list?
Google's troubleshooting steps name five formatting errors and one coverage problem. Use them as a checklist when you compare a tag value with the same order in your upload.
| Mismatch | Google tag sends | Upload sends |
|---|---|---|
| Prefix or suffix | order-12345 | 12345 |
| Upper or lower case | abc-123 | ABC-123 |
| Data type | 12345 | 12345.0 |
| Leading zeros or length | 00123 | 123 |
| Placeholder | undefined, order_id | 12345 |
The coverage problem is a tag that collects transaction IDs only some of the time. Google says a common root cause is incorrect tagging logic on a subset of conversion pages, and that transaction_id should be sent on every tag ping.
Google's transaction ID page adds more examples of broken values: variables that never resolved, such as {{ order_number }} printed as text, fixed test values like "thank_you" or "1234", URLs, email addresses and prices. An email address is also personal data, which Google's terms do not allow in this field.
Can two conversion actions count the same sale twice?
Yes. Even perfectly matching IDs do not help across two conversion actions. Google says it "only removes duplicate data within a single conversion action (between the tag and the additional data source), not across two different conversion actions."
This happens when someone creates a new conversion action for the uploaded data and leaves the original tag-based action active. If both sit in the same campaign goals, Google warns that "a single transaction may be counted twice." Google's recommended practice is to add the data source to your existing conversion action.
Multi-source conversions also have a scope limit. The additional data source works only with website conversion actions set up manually with the Google tag or Google Tag Manager, not with imported Google Analytics conversions or URL-based conversion actions. If your purchase conversion is imported from GA4, this particular warning is not the problem to chase; any doubling there has a different source.
How do I check my transaction IDs in five minutes?
You need access to Google Ads and one test order. No code.
- Open Data manager in Google Ads and look for connections marked "Needs attention" or "Urgent". Hover over the status to read the issue.
- Open the multi-source card. Go to Goals, Summary, then the Diagnostics tab. If multi-source conversions are set up, a "Multi-source conversions" card shows their status; View Details lists the issues.
- Place a test order and open Google Tag Assistant. Select your Google Ads tag, open the Hits tab for the conversion and read the transaction_id parameter.
- Find the same order in your upload file or database export and compare the two values character by character, using the table above.
- Look for the GG_ prefix. An ID starting with GG_ is generated by Google when your tag sends none. Google says to treat it as a blank transaction ID.
How do I fix the transaction ID in Google Tag Manager?
In Google Tag Manager (GTM), the reliable path is the data layer, a JavaScript list on the page that GTM reads. Your developer pushes the order number on the confirmation page; GTM reads it with a Data Layer Variable and puts it in the Transaction ID field of the Google Ads Conversion Tracking tag.
// Order confirmation page only. Your backend prints the real order number.
// Use exactly the value your CRM or order export uses, as a string.
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
event: 'purchase', // trigger for the Google Ads conversion tag
transaction_id: '12345' // example only; same format as the upload
});In GTM, create a Data Layer Variable named transaction_id, select it in the tag's Transaction ID field and fire the tag on the purchase event. Then run GTM Preview, place a test order and confirm the tag shows a real ID, not "undefined". A second test order should show a new, different ID.
The value should be generated by your backend for each purchase. Google warns that a repeated or static ID makes Google Ads process only the first instance, which leads to significant undercounting, the opposite problem.
How do I fix the format on the upload side?
Sometimes the tag is right and the upload is wrong. Every row of an additional data source needs a Transaction ID and a conversion date and time, plus at least one attribution identifier, such as hashed customer data or a click ID like GCLID. The Transaction ID column has the same job as the tag's transaction_id, so it must carry the same value.
Decide which format is the master, usually the order number exactly as your store shows it, and make the other side follow. If your export adds a prefix, writes numbers as decimals or drops leading zeros, fix that in the export or with Data Manager's transformation actions before the data is imported.
Two related checks are worth doing at the same time. Google raises an urgent alert when conversion values from the tag and from the upload differ by more than 1000% (10x) over the last 2 days, often a currency or unit mix-up. And a connection that has not run for 48 hours, with data dropping to zero, is also marked urgent.
Does the 14-day trial protect my bidding?
Partly. When you connect an additional data source, its conversions enter a 14-day trial. During the trial, Google uses the uploaded data only for reporting and diagnostics, not for bidding, and your tag conversions keep working as before.
The protection ends on its own. Google says that at the end of the 14-day trial, multi-source conversions "will automatically become biddable, regardless of any diagnostic alerts." The trial starts when the first upload arrives for each conversion action.
So the trial is the cheapest moment to fix a mismatch. Fix the IDs before the trial ends, or Smart Bidding will start learning from whatever count Google reports.
What does overcounting do to bidding and budgets?
Overcounting makes campaigns look better than they are. When Google Ads reports two conversions for one order, cost per conversion looks lower and conversion value looks higher, so automated bidding may push more budget into the campaigns that benefit from the double count.
A made-up example: a campaign brings 50 real orders in a week. If half of them are counted twice because the upload IDs carry a prefix, Google Ads reports 75 conversions. Nothing in the store changed, but the campaign now looks half again as productive.
The first sign is usually a gap between Google Ads and your own order list. Compare purchases in Google Ads with orders in your store for the same days, as described in why Shopify, Meta and Google Ads report different numbers. The same mechanism, one sale sent twice without a shared key, is behind doubled purchases in Meta, explained in how to set up Meta Conversions API without double-counting. The loss calculator helps put your own gap into numbers.
When is the built-in setup enough?
If you do not send any additional data source to Google Ads, this warning does not apply: it compares the tag with an upload. Many stores have only the tag, and that is a valid setup.
If you use a platform with a deep Google integration, transaction IDs may already be handled. Google gives Shopify as an example: it automatically includes transaction IDs with conversions through the Google & YouTube app. Check again if you add a separate upload or a second tag.
Ask for help when the warning stays after you have compared a few orders, when GTM or custom code fills the Transaction ID field from a variable you cannot trace, or when two conversion actions count purchases in one campaign goal. Start with the free outside check: it needs only your store URL. The GA4 e-commerce and Google Ads fix costs $350.
FAQ
Does the overcounted warning mean my conversions are definitely doubled?
No. It means fewer than 10% of transaction IDs matched between the tag and the upload over the past 2 days. That can also happen when one side is missing IDs. Compare a few orders by hand before changing anything.
Should I create a new conversion action for uploaded orders?
Google recommends adding the data source to your existing conversion action. If you use a new one, do not include both in the same campaign goals, because Google does not deduplicate across conversion actions.
Will transaction IDs show up in my Google Ads reports?
No. Google says transaction IDs won't be reported in Google Ads. Check them in Tag Assistant or in your browser's network requests, where the parameter is usually called oid.
Sources (5)
- [1]
Google Ads Data Manager Help, Troubleshoot connection issues (accessed October 22, 2026)
- [2]
Google Ads Data Manager Help, Fix diagnostic alerts for multi-source conversions (beta) (accessed October 22, 2026)
- [3]
Google Ads Data Manager Help, Multi-source conversions in Google Ads (beta) (accessed October 22, 2026)
- [4]
Google Ads Help, Use a transaction ID to minimize duplicate conversions (accessed October 22, 2026)
- [5]
Google Ads & Commerce Blog, Drive profitable growth with new data and measurement tools (September 10, 2026)
Get the next change by email
A short email when a change can break your numbers: what changed, who it affects and what to check in 5 minutes.
