Google Ads Conversions Destination

Destination Info

The Google Ads Conversions destination enables you to upload offline conversions and conversion adjustments to Google Ads in a privacy safe way. With this server-side destination, you can upload conversions to the Google Ads API and tie them to a user’s online click or phone call. In addition, you can improve the accuracy of your conversion measurement by sending conversion enhancements, restatements, and retractions.

Consent mode

Google enforced consent on March 6, 2024 for European Economic Area (EEA) users. Learn more about consent mode and how to set it up.

Getting started

  1. From the Segment web app, click Catalog, then click Destinations.
  2. Search for “Google Ads Conversions” in the Destinations Catalog, and select the destination.
  3. Click Configure Google Ads Conversions in the top-right corner of the screen.
  4. Select the source that will send data to Google Ads Conversions and follow the steps to name your destination.
  5. On the Settings tab, enter your account-level Conversion ID and/or Customer ID and click Save.
  6. On the Settings tab, authenticate with Google using OAuth. Click Connect to Google Ads Conversions. Follow the prompts to authenticate using OAuth, with a Google account that is a member of your Google Ads account.
  7. Follow the steps in the Destinations Actions documentation on Customizing mappings.

Upload Enhanced Conversion (Legacy) Action Deprecation

Google plans to sunset the Google Enhanced Conversion Legacy API on June 30th 2024. After that, Google will no longer let data flow and will no longer maintain the API.

Segment recommends users to transition to the “Upload Click Conversion,” “Upload Call Conversion,” and “Upload Conversion Adjustment” actions, to send data through the new Google Ads API.

Use these steps to migrate your Upload Enhanced Conversion (Legacy) Action subscriptions.

Destination Settings

Setting Description
Conversion ID

You will find this information in the event snippet for your conversion action, for example send_to: AW-CONVERSION_ID/AW-CONVERSION_LABEL. In the sample snippet, AW-CONVERSION_ID stands for the conversion ID unique to your account. Enter the conversion ID, without the AW- prefix. Required if you are using a mapping that sends data to the legacy Google Enhanced Conversions API (i.e. Upload Enhanced Conversion (Legacy) Action).

Customer ID

ID of your Google Ads Account. This should be 10-digits and in XXX-XXX-XXXX format. Required if you are using a mapping that sends data to the Google Ads API.

Available Actions

Build your own Mappings. Combine supported triggers with the following Google Ads Conversions-supported actions:

Mapping limits per destination

Individual destination instances have support a maximum of 50 mappings.

Upload Enhanced Conversion (Legacy)

Upload a conversion enhancement to the legacy Google Enhanced Conversions API.

Upload Enhanced Conversion (Legacy) is a Cloud action.

Click to show / hide fields

Field Description
Conversion Label* Type: STRING

The Google Ads conversion label. You can find it in your Google Ads account using the instructions in the article Google Ads conversions.

Email* Type: STRING

Email address of the individual who triggered the conversion event.

Order ID* Type: STRING

Order ID or Transaction ID of the conversion event. Google requires an Order ID even if the event is not an ecommerce event. Learn more in the article Use a transaction ID to minimize duplicate conversions.

User Agent Type: STRING

User agent of the individual who triggered the conversion event. This should match the user agent of the request that sent the original conversion so the conversion and its enhancement are either both attributed as same-device or both attributed as cross-device. This field is optional but recommended.

Conversion Time* Type: DATETIME

Timestamp of the conversion event.

Value Type: NUMBER

The monetary value attributed to the conversion event.

Currency Code Type: STRING

Currency of the purchase or items associated with the conversion event, in 3-letter ISO 4217 format.

App Conversion for Incrementality Study Type: BOOLEAN

Set to true if this is an app conversion for an incrementality study.

PCC Game Flag Type: BOOLEAN

Alpha feature offered by Google for gaming industry. When set to true, Segment will send pcc_game = 1 to Google.

Phone Number Type: STRING

Phone number of the individual who triggered the conversion event, in E.164 standard format, e.g. +14150000000.

First Name Type: STRING

First name of the individual who triggered the conversion event.

Last Name Type: STRING

Last name of the individual who triggered the conversion event.

Street Address Type: STRING

Street address of the individual who triggered the conversion event.

City Type: STRING

City of the individual who triggered the conversion event.

Region Type: STRING

Region of the individual who triggered the conversion event.

Postal Code Type: STRING

Postal code of the individual who triggered the conversion event.

Country Type: STRING

Country of the individual who triggered the conversion event.

Upload Conversion Adjustment

Upload a conversion adjustment to the Google Ads API.

Upload Conversion Adjustment is a Cloud action.

Click to show / hide fields

Field Description
Conversion Action ID* Type: NUMBER

The ID of the conversion action associated with this conversion.

Adjustment Type* Type: STRING

The adjustment type. See Google’s documentation for details on each type.

Adjustment Timestamp Type: STRING
The date time at which the adjustment occurred. Must be after the conversion timestamp. The timezone must be specified. The format is “yyyy-mm-dd hh:mm:ss+ -hh:mm”, e.g. “2019-01-01 12:32:45-08:00”. If no timestamp is provided, Segment will fall back on the current time.
Order ID Type: STRING

The order ID of the conversion to be adjusted. If the conversion was reported with an order ID specified, that order ID must be used as the identifier here.

GCLID Type: STRING

Google click ID associated with the original conversion for this adjustment. This is used for the GCLID Date Time Pair.

Conversion Timestamp Type: STRING
The date time at which the original conversion for this adjustment occurred. The timezone must be specified. The format is “yyyy-mm-dd hh:mm:ss+ -hh:mm”, e.g. “2019-01-01 12:32:45-08:00”. This is used for the GCLID Date Time Pair.
Restatement Value Type: NUMBER

The restated conversion value. This is the value of the conversion after restatement. For example, to change the value of a conversion from 100 to 70, an adjusted value of 70 should be reported. Required for RESTATEMENT adjustments.

Restatement Currency Code Type: STRING

The currency of the restated value. If not provided, then the default currency from the conversion action is used, and if that is not set then the account currency is used. This is the ISO 4217 3-character currency code, e.g. USD or EUR.

Email Address Type: STRING

Email address of the individual who triggered the conversion event. Segment will hash this value before sending to Google.

Phone Number Type: STRING

Phone number of the individual who triggered the conversion event, in E.164 standard format, e.g. +14150000000. Segment will hash this value before sending to Google.

First Name Type: STRING

First name of the user who performed the conversion. Segment will hash this value before sending to Google.

Last Name Type: STRING

Last name of the user who performed the conversion. Segment will hash this value before sending to Google.

City Type: STRING

City of the user who performed the conversion.

State Type: STRING

State of the user who performed the conversion.

Country Type: STRING

2-letter country code in ISO-3166-1 alpha-2 of the user who performed the conversion.

Postal Code Type: STRING

Postal code of the user who performed the conversion.

Street Address Type: STRING

Street address of the user who performed the conversion. Segment will hash this value before sending to Google.

User Agent Type: STRING

The user agent to enhance the original conversion. User agent can only be specified in enhancements with user identifiers. This should match the user agent of the request that sent the original conversion so the conversion and its enhancement are either both attributed as same-device or both attributed as cross-device.

Upload Click Conversion

Upload an offline click conversion to the Google Ads API.

Upload Click Conversion is a Cloud action.

Click to show / hide fields

Field Description
Conversion Action ID* Type: NUMBER

The ID of the conversion action associated with this conversion.

GCLID Type: STRING

The Google click ID (gclid) associated with this conversion.

GBRAID Type: STRING

The click identifier for clicks associated with app conversions and originating from iOS devices starting with iOS14.

WBRAID Type: STRING

The click identifier for clicks associated with web conversions and originating from iOS devices starting with iOS14.

Conversion Timestamp* Type: STRING
The date time at which the conversion occurred. Must be after the click time. The timezone must be specified. The format is “yyyy-mm-dd hh:mm:ss+ -hh:mm”, e.g. “2019-01-01 12:32:45-08:00”.
Email Address Type: STRING

Email address of the individual who triggered the conversion event. Segment will hash this value before sending to Google.

Phone Number Type: STRING

Phone number of the individual who triggered the conversion event, in E.164 standard format, e.g. +14150000000. Segment will hash this value before sending to Google.

Order ID Type: STRING

The order ID associated with the conversion. An order ID can only be used for one conversion per conversion action.

Value Type: NUMBER

The value of the conversion for the advertiser.

Currency Type: STRING

Currency associated with the conversion value. This is the ISO 4217 3-character currency code.

Conversion Environment Type: STRING

The environment this conversion was recorded on, e.g. APP or WEB. Sending the environment field requires an allowlist in your Google Ads account. Leave this field blank if your account has not been allowlisted.

Merchant Center ID Type: STRING

The ID of the Merchant Center account where the items are uploaded.

Merchant Center Feed Country Code Type: STRING

The ISO 3166 two-character region code of the Merchant Center feed where the items are uploaded.

Merchant Center Feed Language Code Type: STRING

The ISO 639-1 language code of the Merchant Center feed where the items are uploaded.

Local Transaction Cost Type: NUMBER

Sum of all transaction-level discounts, such as free shipping and coupon discounts for the whole cart.

Items Type: OBJECT

Data of the items purchased.

Custom Variables Type: OBJECT

The custom variables associated with this conversion. On the left-hand side, input the name of the custom variable as it appears in your Google Ads account. On the right-hand side, map the Segment field that contains the corresponding value See Google’s documentation on how to create custom conversion variables.

Ad User Data Consent State Type: STRING

This represents consent for ad user data.For more information on consent, refer to Google Ads API Consent.

Ad Personalization Consent State Type: STRING

This represents consent for ad personalization. This can only be set for OfflineUserDataJobService and UserDataService.For more information on consent, refer to Google Ads API Consent.

Upload Call Conversion

Upload an offline call conversion to the Google Ads API.

Upload Call Conversion is a Cloud action.

Click to show / hide fields

Field Description
Conversion Action ID* Type: NUMBER

The ID of the conversion action associated with this conversion.

Caller ID* Type: STRING

The caller ID from which this call was placed. Caller ID is expected to be in E.164 format with preceding + sign, e.g. “+16502531234”.

Call Timestamp* Type: STRING
The date time at which the call occurred. The timezone must be specified. The format is “yyyy-mm-dd hh:mm:ss+ -hh:mm”, e.g. “2019-01-01 12:32:45-08:00”.
Conversion Timestamp* Type: STRING
The date time at which the conversion occurred. Must be after the click time. The timezone must be specified. The format is “yyyy-mm-dd hh:mm:ss+ -hh:mm”, e.g. “2019-01-01 12:32:45-08:00”.
Value Type: NUMBER

The value of the conversion for the advertiser.

Currency Type: STRING

Currency associated with the conversion value. This is the ISO 4217 3-character currency code.

Custom Variables Type: OBJECT

The custom variables associated with this conversion. On the left-hand side, input the name of the custom variable as it appears in your Google Ads account. On the right-hand side, map the Segment field that contains the corresponding value See Google’s documentation on how to create custom conversion variables.

Ad User Data Consent State Type: STRING

This represents consent for ad user data. For more information on consent, refer to Google Ads API Consent.

Ad Personalization Consent State Type: STRING

This represents consent for ad personalization. This can only be set for OfflineUserDataJobService and UserDataService.For more information on consent, refer to Google Ads API Consent.

Migrate your Upload Enhanced Conversion (Legacy) Action

To migrate from Upload Enhanced Conversion (Legacy) Action to the Upload Conversion Adjustment Action:

  1. Fill out your Conversion ID and Customer ID settings.
  2. Fill out the required fields for the Upload Conversion Adjustment Action:
    • Conversion Action ID
    • Adjustment Type
  3. Replicate as many fields from your original mapping as possible using the table below for reference. Look at the Upload Conversion Adjustment Action for more details about each field.
Upload Enhanced Conversion (Legacy) Upload Conversion Adjustment Default Mapping
conversion_label NOT AVAILABLE $.properties.conversion_label
email email_address $.properties.email or $.traits.email or $.context.traits.email
transaction_id order_id $.properties.orderId
user_agent user_agent $.context.userAgent
conversion_time conversion_timestamp $.timestamp
value NOT AVAILABLE ` $.properties.total `
currency_code NOT AVAILABLE $.properties.currency
is_app_incrementality NOT AVAILABLE ` false `
pcc_game NOT AVAILABLE false
phone_number phone_number $.properties.phone or $.traits.phone
first_name first_name $.properties.firstName or $.traits.firstName
last_name last_name $.properties.lastName or $.traits.lastName
street_address street_address $.properties.address.street or $.traits.address.street
city city $.properties.address.city or ​​$.traits.address.city
region state $.properties.address.state or $.traits.address.state
post_code postal_code $.properties.address.postalCode or $.traits.address.postalCode
country country $.properties.address.country or $.traits.address.country
  gclid Default Not Available
  adjustment_timestamp Default Not Available
  restatement_value Default Not Available
  restatement_currency_code Default Not Available

Consent mode is a feature provided by Google in the context of its products, particularly the Gtag library and Google Analytics. As of March 6, 2024, Google announced that consent mode must function for European Economic Area (EEA) users, otherwise data from EEA users won’t process.

Consent mode in the Gtag library and Google Analytics is designed to help website owners comply with privacy regulations, such as the General Data Protection Regulation (GDPR) in the European Union. It allows website owners to adjust how these tools use and collect data based on user consent.

With consent mode, you can configure your website to dynamically adjust the tracking behavior of the Gtag library and Google Analytics based on the user’s consent status. If a user provides consent to data processing, both the Gtag library and Google Analytics can collect and use that data for analysis. If a user doesn’t provide consent, both tools limit data collection to essential functions, helping businesses respect user privacy preferences.

Consent mode may involve updates to your sources outside of Segment, such as incorporating a consent management system for consent functionality.

To enable consent mode for your Google Ads Conversions destination, you must update the Ad User Data Consent State and Ad Personalization Consent State for all of your Upload Call Conversion and Upload Click Conversion actions. You can do this in 1 of 2 ways:

  • Option 1:
    1. Navigate to Connections > Destinations and select your Google Ads Conversion destination.
    2. Go to the Mappings tab of the destination.
    3. Select the mapping you want to edit.
    4. In the Select mappings section, select GRANTED from the dropdown menu for Ad User Data Consent State and Ad Personalization Consent State.
  • Option 2:
    1. Navigate to Connections > Destinations and select your Google Ads Conversion destination.
    2. Go to the Mappings tab of the destination.
    3. Select the mapping you want to edit.
    4. In the Select mappings section, for Ad User Data Consent State and Ad Personalization Consent State, select the Event Variables tab and create an event variable to directly grab the value from the payload. Ensure it translates to GRANTED, DENIED, or UNSPECIFIED. You can use an insert or replace function to translate other values to GRANTED, DENIED, or UNSPECIFIED.

If you send DENIED for any of the two consent states, it results in an error and the data won’t send to Google. For more information, see FAQ about the EU user consent policy for Customer Match upload partners.

If you have any questions setting up consent mode, reach out to friends@segment.com.

FAQ and troubleshooting

Conversion ID, Customer ID, and Conversion Action ID should always be different values

Conversion ID and Customer ID are global settings because it’s an account-level ID that’s the same for all conversion actions in your Google Ads account.

The Conversion Action ID is unique to each conversion action and is configured per mapping. The Conversion Action ID can only be found in the browser URL of your given conversion action under the ctId parameter. For example, if the URL is https://ads.google.com/aw/conversions/detail?ocid=00000000&ctId=576882000, your Conversion Action ID is 576882000.

Enhanced conversions

Enhanced conversions is a feature that can improve the accuracy of your conversion measurement and unlock more powerful bidding. It supplements your existing conversion tags by sending hashed, first-party conversion data from your website to Google in a privacy safe way. You can use the “Upload Conversion Adjustment” action to send enhancements to the Google Ads API. In order to send enhanced conversions, you must record first conversions using the standard Google Ads Conversion tag (Gtag). Segment offers a Google Ads (Gtag) destination so you can use your existing Segment implementation to activate Gtag. Enhancements can be sent to web conversion actions that have Turn on enhanced conversions by API enabled.

Conversions tracked by other means, such as importing goals from Google Analytics, are not eligible for enhancement.

To send enhancements for conversions that are initially tracked with Gtag, an Order ID (Transaction ID) must be implemented in the Gtag and the same Order IDs must be sent with the corresponding enhancement data. This is required for Google to successfully process your enhancement data.

Enhanced conversions for leads

Enhanced conversions for leads allows you to use hashed, first-party user-provided data from your website lead forms for offline lead measurement. When you upload your leads, the provided hashed information is used to attribute back to the Google Ad campaign. In order to send enhanced conversions for leads, you can use the “Upload Click Conversion” action. According to Goggle, if you do not have GCLID at your source payload, you have to pass user identifiers, at least email or phone number in your mappings, for Google to make the match. A conversion must be addressed to an existing profile. If there’s not a match, Google responds with a failure.

Refreshing access tokens

When you use OAuth to authenticate into the Google Ads Conversions destination, Segment stores an access token and refresh token. Access tokens for Google Ads Conversions expire after one hour. Once expired, Segment receives an error and then uses the refresh token to fetch a new access token. This results in two API requests to Google Ads Conversions, one failure and one success.

Because of the duplicate API requests, you may see a warning in Google for unprocessed conversions due to incorrect or missing OAuth credentials. This warning is expected and does not indicate data loss. Google has confirmed that conversions are being processed, and OAuth retry behavior will not cause any issues for your web conversions. Whenever possible, Segment caches access tokens to reduce the total number of requests made to Google Ads Conversions.

Resolving an invalid_conversion_action_type error

This error indicates that the conversion action specified in the upload request has not been set up for conversion uploads, as outlined in Google’s Ads documentation.

To resolve this, ensure that the ConversionActionType value in Google Ads is correctly configured.

The required field was not present., at conversions[0].gclid Error

Events going to Google for this integration require a GCLID field, an email, or a phone_number. If one of those identifiers isn’t being sent properly, then you may see the The required field was not present., at conversions[0].gclid error. To fix this, double check that at least one of those fields is being passed to Google on each payload.

This page was last modified: 16 May 2024



Get started with Segment

Segment is the easiest way to integrate your websites & mobile apps data to over 300 analytics and growth tools.
or
Create free account