Skip to content

Server-side events · Platform reference

Google Ads enhanced conversions for web checker

Enhanced conversions for web attach first-party user data (email, phone, name and address) to an existing Google Ads conversion. You send it either from the Google tag with gtag('set', 'user_data', ...) on the conversion page, or afterwards from your server as ConversionAdjustment ENHANCEMENT uploads keyed on order_id. Conversions still record without it but match less often when the data isn't on the page at conversion time, the page isn't HTTPS, the address is incomplete, or the API order_id doesn't match the tag's transaction ID.

Read from the official documentation on 9 November 2026. Sources are listed at the end.

Check your own setup

Paste your gtag/GTM thank-you-page snippet and the checker confirms the AW- conversion ID and send_to label, value, currency, transaction_id, the Consent Mode order, and whether enhanced conversions user_data is set (it also flags a Meta Pixel Purchase on the same page). It doesn't validate API ConversionAdjustment uploads and can't tell whether the user data is actually filled at runtime. Use the em parameter check in DevTools for that.

Open the Google Ads Conversion Tag Checker

Endpoint and authentication

Google tag: gtag('set', 'user_data', {...}) plus gtag('event', 'conversion', {send_to: 'AW-CONVERSION_ID/CONVERSION_LABEL', ...}). API: ConversionAdjustmentUploadService.UploadConversionAdjustments

Tag: the 'Allow user-provided data capabilities' setting in Google tag settings. API: Google Ads API credentials with access to the conversion customer

Calls and objects

Google Ads has no standard event list: every conversion action is one you create. These are the tag calls and API objects enhanced conversions works through.

NameWhat it is
conversiongtag event name for a Google Ads conversion; send_to = 'AW-CONVERSION_ID/CONVERSION_LABEL'
user_data (gtag 'set')attaches user-provided data to the conversion fired on the same page
ENHANCEMENTConversionAdjustment adjustment_type that adds user data to a tag conversion after the fact
RESTATEMENTseparate adjustment type for changing a conversion's value; restatement_value is ignored on ENHANCEMENT

Required and recommended fields

FieldWhat it needs
send_to'AW-CONVERSION_ID/CONVERSION_LABEL' in the conversion event snippet
value + currencyconversion value and currency in the event snippet
transaction_idUnique per transaction, up to 64 characters, no customer-identifying data; must exactly match the ID used for any server-side upload
user_dataemail preferred. Provide at least one of: email, a full address, or a phone number together with email or full name and address. Remove fields you don't collect rather than sending them blank
order_id (API)Required on every ENHANCEMENT adjustment; must match the order ID your tag sent
user_identifiers (API)Up to five identifiers per adjustment, one per UserIdentifier object
user_agent (API)Should match the user agent of the request that sent the original conversion
gclid (API)Recommended but optional on ENHANCEMENT adjustments
partial_failure (API)Must be true so valid adjustments are processed; row errors come back in partial_failure_error

Match keys and hashing

KeyNormalise and hash
email / sha256_email_addressTrim whitespace and lowercase. For gmail.com and googlemail.com, remove periods before the @ (and, for API uploads, the first '+' and everything after it up to the @). SHA-256 as a lowercase hex string. The tag takes unhashed 'email' (Google hashes it) or pre-hashed sha256_email_address
phone_number / sha256_phone_numberE.164: 11 to 15 digits with a + prefix and country code, no dashes, parentheses or spaces; then SHA-256 hex if pre-hashing
address.first_name / address.sha256_first_nameTrim and lowercase, then SHA-256 hex if pre-hashing
address.last_name / address.sha256_last_nameTrim and lowercase, then SHA-256 hex if pre-hashing
address.streetSHA-256 in API uploads
address.city / region / postal_code / countryDo not hash

Click ids

Click idWhere it comes from
gclidRecommended but optional on API ENHANCEMENT adjustments; the order_id is what links the enhancement to the tag conversion

Deduplication

Time limits and batch sizes

How to test before you trust it

Why events arrive but don't attribute

Sources

Platforms change these rules without notice. If a source says something different from this page, the source wins.

Other platforms

All platforms