Google Ads Offline Conversions

Send your event data from RudderStack to Google Ads Offline Conversions.

Google Ads Offline Conversions helps you track the offline sales which occur when your ads lead to a click or call to your business. It lets you measure your sale conversions in the offline mode after a user clicks your ad online but does not directly proceed to sale in the online mode.

Getting started

RudderStack supports sending event data to Google Ads Offline Conversions via the following connection modes:

Connection ModeWebMobileServer
Device mode---
Cloud modeSupportedSupportedSupported

Once you have confirmed that the source platform supports sending events to Google Ads Offline Conversions, follow these steps:

  1. From your RudderStack dashboard, add the source. Then, from the list of destinations, select Google Ads Offline Conversions.
  2. Assign a name to your destination and click Continue.

Connection settings

To successfully configure Google Ads Offline Conversions as a destination, first authenticate your account by following the below steps:

  1. Click Create Account in the Account Settings section.
  2. From the modal, click the Sign in with Google button.
  3. Choose the required account and grant RudderStack the required permissions.
  4. Click Save to use the specified account:
Google Account authentication
info

In case you have authenticated multiple accounts, you can click Edit Credentials to select or delete any other authenticated account:

Google Account authentication

RudderStack gives an error if you try to delete an account used by any other connection set up for the same destination.

Next, configure the following settings:

  • Customer ID: Enter the ID associated with your Google Ads account. See FAQ for more information on obtaining your customer ID.
  • Subaccount: Enable this setting if you are using a Google Ads subaccount. See Google Ads documentation for more information on subaccounts.
  • Map your events with Google Ads Offline Conversions: Enter the RudderStack event name you want to map to the Click, Call, or Store conversion type in Google Ads.
  • Map your Google Ads Conversions Names: Enter the RudderStack event name corresponding to the Google Ads Conversion name created in the Google Ads dashboard. See FAQ for more information on creating click and call conversions in Google Ads dashboard.
  • Map your variable names to custom Google Ads variables: Enter the track event property which you want to map to the Google Ads custom variable (defined in the Google dashboard). See FAQ for more information.
  • User Identifier Source: Select the type of user identifier source from the dropdown. See Google Ads API documentation for more information on the different source types.
  • Conversion Environment: Select the conversion environment of the uploaded conversion from the dropdown. See Google documentation for more information on the different conversion environments.
  • The user identifier for store and click conversions: Select the default user identifier from email or phone for store and click conversions.
  • Hash User Identifying Information (SHA-256): This setting is enabled by default and hashes the user identifying information like email and phone number using SHA-256.
  • Validate Only: Enable this setting to only validate the request and not execute it. See Google Ads documentation for more information.

This integration relies on the authorizing Google Ads user’s underlying permissions and must be at least Standard or Admin.

If you authorize the integration without the Standard or Admin permissions, the API calls will fail and a “RudderStack Admin” user will disable the integration. If you encounter an entry in your audit logs from a Rudder Admin/admin@rudderstack.com user, it means that RudderStack disabled the integration on account of insufficient user permissions.

To avoid this, ensure that the authorizing user has the Standard permissions, at minimum.

Track

RudderStack associates the track event with the event name defined in the Map your events with Google Ads Offline Conversions dashboard setting.

RudderStack supports the following conversion types:

Click conversion

You can create a conversion action to upload offline click conversions into Google Ads. The Google Ads Click Conversion API processes these click conversions.

A sample track call for a click conversion is shown below:

rudderanalytics.track('sign up completed', {
  gclid: "gclid_value",
  conversionDateTime: "2022-05-20 12:32:45-08:00"
});

The following table lists the property mappings between RudderStack and Google Ads Offline Conversions for the click conversion type:

RudderStack propertyGoogle Ads Offline Conversions propertyNotes
properties.conversionDateTime
timestamp
originalTimestamp
Required
conversionDateTimeDate and time at which the conversion occurred. It must be after the click time and must include the timezone offset.

The format for this field is yyyy-mm-dd hh:mm:ss +/- hh:mm.

For example, 2019-01-01 12:32:45-08:00.
traits.email
context.traits.email
hashedEmailIf User Identifier Source is set in the dashboard, either email or phone must be passed.
traits.phone
context.traits.phone
hashedPhoneNumberIf User Identifier Source is set in the dashboard, either email or phone must be passed.
properties.gclidgclid-
properties.gbraidgbraid-
properties.wbraidwbraid-
properties.externalAttributionCreditexternalAttributionCredit-
properties.externalAttributionModelexternalAttributionModel-
properties.merchantIdmerchantId-
properties.feedCountryCodefeedCountryCode-
properties.feedLanguageCodefeedLanguageCode-
properties.localTransactionCostlocalTransactionCost-
properties.product_id
properties.sku
productId-
properties.quantityquantity-
properties.priceunitPrice-
properties.userIdentifierSourceuserIdentifierSource-
properties.conversionEnvironmentconversionEnvironment-
properties.conversionValue
properties.total
properties.value
properties.revenue
conversionValue-
properties.currencyCode
properties.currency
currencyCode-
properties.orderId
properties.order_id
orderId-

See ID parameters section for detailed guidelines on passing the combinations of wbraid, gbraid, and gclid parameters.

Call conversion

You can create a conversion action to upload offline call conversions into Google Ads. The Google Ads Call Conversion API processes these call conversions.

A sample track call for a call conversion is shown below:

rudderanalytics.track('login', {
  callerId: "callerId_value",
  callStartDateTime: "2022-08-12 15:01:30+05:30",
  conversionDateTime: "2022-09-24 12:32:45-08:00"
});

The following table lists the property mappings between RudderStack and Google Ads Offline Conversions for the call conversion type:

RudderStack propertyGoogle Ads Offline Conversions property
properties.callerId
Required
callerId
properties.callStartDateTime
Required
callStartDateTime
properties.conversionDateTime
originalTimestamp
Required
conversionDateTime
properties.conversionValue
properties.total
properties.value
properties.revenue
conversionValue
properties.currencyCode
properties.currency
currencyCode

Store conversion

You can create a conversion action to upload store sales conversions into Google Ads. The Google Ads Store Conversion API creates an offline user data job.

A sample track call for a store sales conversion is shown below:

rudderanalytics.track("Product Reviewed",{
    "loyaltyFraction": 1,
    "order_id": "order id",
    "currency": "USD",
    "revenue": "100",
    "store_code": "store code",
    "email": "alex@example.com",
    "gclid": "gclid",
    "conversionDateTime": "2022-01-01 12:32:45-08:00",
    "product_id": "123445",
    "custom_key": "CUSTOM_KEY",
    "CUSTOM_KEY": "CUSTOM_VALUE",
    "quantity": 123
  })

The below fields are required to send the store conversions successfully:

  • event
  • Any one of the properties.total, properties.value, properties.revenue, or properties.currency

See job creation, address info, and conversion mapping parameter mappings for more information on the optional fields you can send in the payload.

If you specify a user identifier in The user identifier for store and click conversions setting but don’t include it in the payload, RudderStack looks for the following fields as user identifiers (in the same priority order):

  1. Address
  2. Email
  3. Phone

If none of the above are present, RudderStack sends an empty user identifier.

You can specify user consent for leveraging their data for advertisements and personalization in case of click and call conversions. To do so, use the integrations object in your track event as follows:

rudderanalytics.track('Signup Completed', {
  prop1: 'val1',
  gclid: "gclid_value",
  conversionDateTime: "2022-05-20 12:32:45-08:00"
}, {
  "integrations": {
    "google_adwords_offline_conversion": {
      "consents": {
        "adUserdata": "GRANTED",
        "adPersonalization": "GRANTED"
      }
    }
  }
});

Note the following:

  • The permissible values for the adUserdata and adPersonalization fields are:
    • UNSPECIFIED
    • UNKNOWN
    • GRANTED
  • If you set these fields to any other value, RudderStack automatically changes them to UNKNOWN.
  • If you do not set the consents field in the event payload, RudderStack sets the adUserdata and adPersonalization fields to UNSPECIFIED by default.

FAQ

Where can I find my Google Ads customer ID?

To get the customer ID associated with your Google Ads account, click the Help option in your Google Ads dashboard. You will find the customer ID in the resulting pop-up:

Google Adwords Offline Conversions connection settings

How do I create custom variables in Google Ads dashboard? Which event properties can I map with these variables?

To create custom variables in Google Ads dashboard, follow these steps:

  1. Log in to your Google Ads account.
  2. Click TOOLS AND SETTINGS from the top navigation bar and select Conversions under Measurement.
  3. In Custom Variables section, click the + sign to create a new conversion custom variable:
Google Adwords Offline Conversions

You can map a track event property with a Google Ads custom variable. Suppose you send the following track payload to Google Ads via RudderStack:

{
  "type": "track",
  ...
  "properties": {
    "gclid": "Cj0KCQjw6cKiBhD5ARIsAKXUdybqN7DV7ZFBelg7XMLZO-L1gCEXebkKQ7M73tQOdVNsxI_74J2grtIaAlRLEALw_wcB",
    "gbraid": null,
    "wbraid": null,
    "orderId": 1108829,
    "planName": "rudderstackTestingPlan",
    "orderUUID": "deaf39a0-c1ff-4e0d-aa6e-770deee66e85",
    "planPeriod": 0,
    "currencyCode": "USD",
    "conversionName": "annualized_revenue",
    "conversionValue": 70,
    "conversionDateTime": "2023-05-08 23:07:34+00:00"
  },
  "anonymousId": "deaf39a0-c1ff-4e0d-aa6e-770deee66e85"
}

To send planName as a custom variable to Google Ads, create a custom variable in Google Ads dashboard, for example, Plan Name:

Google Adwords Offline Conversions

Then, enter the following mapping in the Map your variable names to custom Google Ads variables RudderStack dashboard setting: planNamePlan Name

How to create the click and call conversions in Google Ads dashboard?

To create the click and call conversions, follow these steps:

  1. Log in to your Google Ads account.
  2. Click TOOLS AND SETTINGS from the top navigation bar and select Conversions under Measurement.
  3. Click New conversion action > Import > Other data sources or CRMs.
  4. Select Track conversions from clicks or Track conversions from calls and click Continue as shown:
Google Adwords Offline Conversions

How to check the upload conversions in the Google Ads dashboard?

To check the upload conversions, follow these steps:

  1. Log in to your Google Ads account.
  2. Click TOOLS AND SETTINGS from the top navigation bar and select Conversions under Measurement.
  3. Click Uploads to view the uploaded conversions:
Google Adwords Offline Conversions

Why am I not seeing the enhanced conversions for my offline events?

Verify if you have accepted the customer data terms in the conversion settings page. To do so, follow these steps:

  1. Log in to your Google Ads account.
  2. Click TOOLS AND SETTINGS from the top navigation bar and select Conversions under Measurement.
  3. In the page menu on the left, click Settings.
  4. Click Customer data terms.
  5. Review and accept the terms, and click Save.

For more information, see Google Ads documentation.

I am getting a 400 Bad Request error message. What should I do?

If you get a 400 Bad Request error while configuring the destination, make sure your customer account is allowlisted and configured to have Standard or Administrative access levels in Google Ads. Refer to the above FAQ for steps on setting the access level permissions for the account.


Questions? Contact us by email or on Slack