Google Ads Conversions API — Data Manager
Send offline conversions and web enhanced conversions through Google's Data Manager API. This destination supports both conversion contracts while keeping the original Google Ads destination separate. Start with Data Manager authorization and migration.
Setup
- Create Google Ads Conversions API — Data Manager, connect your Google account, and enter the Google Ads customer ID for the account that owns the conversion actions.
- Create a connection and select Offline Conversions or Enhanced Conversions for each stream.
- Under Conversion Action Assignment, select Single conversion for all events and choose a Google Conversion, or select Map by event name and map each source event name to its conversion action. For event-name routing, also map
event_nameto the source event-name field. - Map the fields described below and run the connection when ready to upload.
Create conversion actions in Google Ads before configuring the connection. Google's required action types differ:
| Contract | Google Ads conversion source | API action type |
|---|---|---|
| Offline Conversions | Website (Import from clicks) | UPLOAD_CLICKS |
| Enhanced Conversions | Website | WEBPAGE |
An action appearing in a selector does not guarantee eligibility for the selected stream. Google returns eligibility errors such as INVALID_CONVERSION_ACTION_TYPE for incompatible actions. See Google's offline and online requirements.
Hashing and normalization
- Enable Apply hashing (SHA256) when mapping raw email to
hashed_emailor raw phone tohashed_phone_number. - Emails are lowercased and all whitespace is removed. For
gmail.comandgooglemail.com, dots and plus suffixes before@are removed; other domains retain dots and plus tags. - Phones require an international country code and are normalized to E.164 before hashing.
- First and last names are trimmed, lowercased, and stripped of punctuation before hashing; letters, numbers, and whitespace are retained.
- If hashing upstream, apply these normalization rules first and supply a 64-character SHA256 hexadecimal hash. Do not hash an already-hashed value again.
- Country codes are uppercased; postal codes, mobile advertising IDs, and third-party user IDs are not hashed.
For more background, see Identifier Hashing and Normalization.
Offline Conversions contract
Use Offline Conversions for click imports and enhanced conversions for leads.
| Field | Mapping |
|---|---|
conversion_date_time | Required conversion timestamp with timezone, such as 2026-10-05T13:00:00Z |
gclid, gbraid, wbraid | Applicable Google click identifier; do not hash |
hashed_email, hashed_phone_number | First-party contact identifiers; enable hashing for raw input |
conversion_environment | Required WEB or APP |
ad_user_data_consent, ad_personalization_consent | Required GRANTED or DENIED, reflecting the user's consent |
conversion_value, currency_code | Optional numeric value and currency such as USD |
order_id | Optional stable transaction ID |
event_name | Required when using event-name conversion-action mappings |
mobile_id, third_party_user_id | Optional unhashed identifiers; these alone do not satisfy conversion matching requirements |
Provide a supported click identifier or first-party user data. A mobile ID or third-party user ID alone is insufficient. Address identifiers are also supported as described below.
Enhanced Conversions contract
Use Enhanced Conversions to supplement web conversions with first-party user data.
Map conversion_date_time, order_id, and user_agent. Provide first-party user data through hashed_email, hashed_phone_number, or a complete address. gclid and event_name are available where applicable; event_name is required for event-name routing.
order_id becomes Google's transaction ID. Use the same ID recorded by the original Google tag conversion, rather than generating a new upload ID.
If the transaction ID does not match an existing conversion, Google can create a new conversion. This flow has no adjustment-only setting. Follow Google's conversion-adjustment behavior before enabling uploads.
Address mappings and legacy field changes
When mapping an address, supply all four fields:
address_info.hashed_first_nameaddress_info.hashed_last_nameaddress_info.country_codeaddress_info.postal_code
Enable hashing for raw first and last names. Legacy city, state, street, and external-attribution fields have no supported equivalent in these contracts. Remove those mappings when migrating. Populated unsupported fields cause mapping errors rather than being silently discarded.
Upload results
Extract batches at most 2,000 events and 10 distinct conversion actions per request and preserves each event's selected conversion action. Successful uploads are accepted for processing. See Data Manager diagnostics for request IDs, warnings, and delayed results.