How-to · Updated October 11, 2026
Add a transaction ID to your Google Ads conversion tag
Updated October 11, 2026
30 minutes, plus a developer change
Have the site push each order or form entry's own ID with the conversion event, map it to your Google Ads tag's Transaction ID field, and store the same ID with the lead. Google finds a website conversion to correct only by that ID, and refuses value corrections on actions using one fixed value.
Before you start
- A Google Ads conversion tag already on the site, in Tag Manager or as a gtag event snippet.
- A unique ID for every conversion, made by the site or form system when the order or submission is saved, such as an order or entry number. Google allows up to 64 characters and no details that identify the customer.
- Somewhere the lead is kept that can hold the same ID: your CRM, form database or order system.
- Publish access in Tag Manager and access to edit the conversion action in Google Ads.
Get one ID per conversion from the site
The ID has to come from the system that saves the order or form entry, because that is the only place it can be stored with the lead as well.
- Use the ID your system already gives each order or entry. Google says it must be unique per transaction and generated by the site's backend; the same ID on two conversions can make Google process only the first, so conversions may go missing.
- Rule out values Google lists as wrong: email addresses, phone numbers, URLs, prices, product paths, fixed words such as thank_you or 1234, and hashed or UUID strings.
- Have the developer push the ID to the data layer with the conversion event, for example an event named purchase or generate_lead carrying transaction_id.
- Have the same ID saved with the lead record, for example posted with the form submission into your CRM. A common failure is a tag that sends an ID nothing kept: the tag looks right, but when a lead turns out to be junk there is nothing to look it up by.
Map the ID into the conversion tag
In Tag Manager this is one new variable and two fields on the existing tag, Transaction ID and Conversion Value, with no change needed in Google Ads for the ID itself.
- Click Variables, then New under User-Defined Variables, choose Data Layer Variable, enter transaction_id exactly as the developer pushes it in Data Layer Variable Name, and click Save.
- Click Tags and open your Google Ads Conversion Tracking tag.
- Click the button next to Transaction ID and select the variable you made.
- Under Triggering, make sure the tag fires on the event that carries the ID, such as a Custom Event trigger named for it. A tag that fires on a page view or click before the push can send the field empty.
- Fill Conversion Value with the value the action used before, or a variable carrying each conversion's value. Google says Tag Manager sends 0 when the field is empty, and Google Ads uses the action's default only when no value is provided.
- Click Save. Without Tag Manager, add 'transaction_id' to the gtag event snippet beside 'send_to', filled from the same ID, and keep 'value' in the snippet.
Let the action take its own value, then publish
This part changes the one Google Ads setting that otherwise blocks a later correction to the conversion's value, then puts the tag live.
- In Google Ads, open Summary in the Goals menu, click the conversion action, and click Edit settings.
- Click Value, select Use different values for each conversion, enter a default value and click Save, then Done. Google's adjustment service refuses to restate a conversion on an action that uses its default value every time.
- In Tag Manager, click Preview, make a test conversion, and open the tag under Tags Fired. Transaction ID should show the real ID, not undefined or a fixed word, and Conversion Value should not be 0.
- Make a second test conversion and confirm the ID changed.
- Click Submit, then Publish.
Check it worked
Google Ads does not report transaction IDs, so check the request instead. On the confirmation step in Chrome, open Inspect, then Network, search for googleadservices.com/pagead/conversion and open Payload. Google says the transaction ID is usually the oid parameter. An ID starting GG_ means your own ID did not arrive and Google made a temporary one, which cannot be used for corrections.
Then find the test lead in your CRM or form database and confirm it holds the same ID. If Google Ads shows a Google tag is missing transaction ID alert, Google says its own GG_ IDs never clear it; only IDs your tag sends do.
Transaction ID or the Count setting
They do different jobs. A transaction ID stops one order or form entry counting twice, for example when the confirmation page reloads. Count set to One records one conversion per ad click however many conversions follow. Google says to set Count to One if you want one lead per ad click, and recommends a transaction ID for purchases. A lead form can use both.
What the ID makes possible later
Google's adjustment page says you should already be tracking conversions with an order ID, and its API reference says an adjustment to a website conversion requires one. With it, a junk lead can be retracted or a sale's value restated within 54 days, and within 7 days for bidding to take it into account. A retracted website conversion cannot be added back.
Uploading the same conversions from a CRM too
When a CRM or Data Manager sends the same conversions the tag records, Google says the ID must match the tag's exactly. A different prefix, suffix or an extra space stops Google pairing the two.