Google Ads Conversions Destination
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
- From the Segment web app, click Catalog, then click Destinations.
- Search for “Google Ads Conversions” in the Destinations Catalog, and select the destination.
- Click Configure Google Ads Conversions in the top-right corner of the screen.
- Select the source that will send data to Google Ads Conversions and follow the steps to name your destination.
- On the Settings tab, enter your account-level Conversion ID and/or Customer ID and click Save.
- 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.
- 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 |
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.
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.
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
|
||
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
|
||
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.
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
|
||
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.
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
|
||
Conversion Timestamp* | Type: STRING
|
||
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:
- Fill out your Conversion ID and Customer ID settings.
- Fill out the required fields for the Upload Conversion Adjustment Action:
- Conversion Action ID
- Adjustment Type
- 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_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.countr y |
gclid | Default Not Available | |
adjustment_timestamp | Default Not Available | |
restatement_value | Default Not Available | |
restatement_currency_code | Default Not Available |
Consent mode
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.
Set up consent mode
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:
- Navigate to Connections > Destinations and select your Google Ads Conversion destination.
- Go to the Mappings tab of the destination.
- Select the mapping you want to edit.
- In the Select mappings section, select
GRANTED
from the dropdown menu for Ad User Data Consent State and Ad Personalization Consent State.
- Option 2:
- Navigate to Connections > Destinations and select your Google Ads Conversion destination.
- Go to the Mappings tab of the destination.
- Select the mapping you want to edit.
- 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
, orUNSPECIFIED
. You can use an insert or replace function to translate other values toGRANTED
,DENIED
, orUNSPECIFIED
.
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
Need support?
Questions? Problems? Need more info? Contact Segment Support for assistance!