# Google Ads (Gtag) Destination

## About this integration

The Google global site tag (gtag.js) is a JavaScript-based tagging framework and API designed to send web conversions to Google Ads. With this destination, we load gtag.js automatically so you can make more efficient use of your existing tracking implementations and map events to page load and click conversions.

[Mode How we forward source data to the destination: through Customer.io's servers or directly from our JavaScript client.](/cdp/destinations/getting-started/#connection-mode)

[Web sources Indicates whether or not this integration supports our the JavaScript client.](/cdp/sources/getting-started/#types-of-sources)

[API sources Indicates whether or not this integration supports our server libraries (Go, NodeJS, Python), API, Mobile SDK, and other data sources.](/cdp/sources/getting-started/#types-of-sources)

[Supported calls The API methods this integration supports.](/cdp/sources/source-spec/source-events/)

[Integration name The name of this integration if you want to enable or disable it in the `integrations` object.](/cdp/sources/source-spec/common-fields/#the-integrations-object)

Web

[track](/api/cdp/#operation/track) and [page](/api/cdp/#operation/page)

google-ads

 Don’t use this destination if you use Google Tag Manager

You should only use this destination if your Google Ads account is using Gtag. If you’re using Google Tag Manager, don’t add the global site tag (gtag.js) in your GTM containers, otherwise you’ll end up duplicating Gtag on your site—once through your Customer.io integration and again through Google Tag Manager.

## Getting started[](#getting-started)

This destination maps `.page()` and `.track()` calls from your website or app to *Page Load Conversions* and *Click Conversions* respectively.

 Migrating from Segment?

If you’re moving your integration from Segment, you won’t see as many settings when you set up this destination. We’ve pushed many of the settings you set in Segment down to the [individual actions](#actions) that they affect. This makes it easier to use our defaults, and gives you granular control of settings at the action level.

1.  Go to **[Data & Integrations > Integrations](https://fly.customer.io/workspaces/last/journeys/integrations/all/directory)** and select the **Google Ads (Gtag)** entry in the *Directory* tab.
    
2.  (Optional) Select the data sources that you want to connect to your outbound integration. You can always connect data sources later. We’ll only show you data sources that work with your integration.
    
3.  Configure your integration.
    
    1.  **Account ID**: Enter your GOOGLE-CONVERSION-ID. You can get this value from your global site tag snippet. It should look something like `AW-901243031`
        
    2.  **Floodlight Account ID**: Enter your DoubleClick Floodlight Advertiser ID to have it passed to Gtag's 'config' parameter. This ensures tags are loaded by first-party cookies. This value should look like DC-1234567. For more information, see [Google's documentation](https://support.google.com/campaignmanager/answer/7554821?hl=en).
        
    3.  **Disable Ad Personalization**: Disable ad personalization. For more information, see [Google's documentation](https://support.google.com/google-ads/answer/9606827?hl=en).
        
4.  Click **Enable Destination**.
    

After you set up your integration, you should check the **Actions** tab and map [conversion labels](#conversion-labels) if you track different kinds of conversions.

## Actions[](#actions)

When you’re done setting things up, you can go to the *Actions* tab to see how we map incoming data to your integration.

You may need to add actions for this integration

While we often have default triggers for actions, we don't always add those actions as defaults. You may need to add actions to make sure that you're sending all the data that you want to send to your integration. See our [actions](/integrations/data-out/actions/) page for help setting up actions.

Action

Default Trigger

Description

Track Custom Event

`type = “track”` and  
`event != “Order Completed”`

Track an event for a user

Track Order Completed

`type = “track”` and  
`event = “Order Completed”`

Track an event for a user

Track Page View

`type = “page”`

Track the current page

### Conversion Labels[](#conversion-labels)

Actions for this destination include fields for **Page Load Conversion Label** and **Click Event Conversion Label** for `page` and `track` events respectively.

If you use the same conversion for all page or all click events, you can set a static value. Otherwise, you might want to pass the label as a property in your events, so you can measure conversions against the appropriate labels in Google Ads.

For example, I might pass a conversion label in an event as follows and then use it in my page conversion action as `$.properties.conversion_label`.

```javascript
cioanalytics.page({
    conversion_label: "AbC-D_efG-h12_34-567"
})
```

### Page load conversions[](#page-load-conversions)

If you want to map all your unnamed `.page()` calls to a default *Page Load Conversion*, you can enter the conversion ID as a static value for your **Page Load Conversion Label** in the default *Page* action.

But, if you created specific *Page Load Conversions* in Google Ads you can pass that value as an event property and pass it as a variable and set the variable (e.g. `$.properties.conversion_id`) as the **Page Load Conversion Label**.

We forward all the `properties` in the page, like the `path`, `title` and `url`, so that they’re available in Google Ads (Gtag) for your remarketing campaigns.

You can also send semantic properties, like `value`, `currency`, or `order_id`, as options in the integrations object of your API calls. In general, we recommend that you use the **Click Conversion** action for these kinds of properties instead, and map them to `.track()` calls. But, if you want to send them as a part of page events, you’d pass them like this:

```javascript
cioanalytics.page({}, {
  'google-ads': {
    value: 25,
    currency: 'USD',
    order_id: 'order123'
  }
});
```

### Track calls and click conversions[](#track-calls-and-click-conversions)

You can map your custom `.track()` events to **Click Conversions** that you created inside Google Ads. We pass event `properties` from your source calls to Google Ads so you can use them in remarketing campaigns.

If you pass `properties.value`, `properties.currency`, or `properties.order_id`, Segment maps them to Google’s semantic `value`, `currency`, or `transaction_id` properties respectively.

The only exception is that for `Order Completed` events, we map Google’s semantic `value` field to your `properties.revenue` or `properties.total`. If you pass both as properties, `properties.revenue` takes precedence.

## Multiple Google Ads Accounts[](#multiple-google-ads-accounts)

If you have multiple Google Ads Gtag accounts (usually managed by various third party agencies) simply pass the conversion ID as a variable in your `page` and `track` events and map it to the **Conversion Account ID** fields in your actions.

This field lets you override the default *Account Id* that you set when you configure your destination.

[![set a different account ID to send to multiple accounts](https://docs.customer.io/images/cdp-google-ads-account-id.png)](#cc1d006471e84d1c53555092d29f6217-lightbox)

## Troubleshooting Conversions[](#troubleshooting-conversions)

If you don’t see the correct events in Google Ads, you can take the following steps to trace incoming events to their destination and make sure that everything’s set up properly.

1.  Confirm that the events mapped to a Google Ads conversion are actually sent from Analytics.js:
    
    1.  Go to **Data & Integrations > Integrations** in your workspace and click your integration.
    2.  Go to the **Data In** tab.
    3.  Click an event and make sure that the library name is `analytics.js`. Your events should include a snippet that looks like this:
    
    ```js
      "library": {
        "name": "analytics.js",
      }
    ```
    
2.  Verify that the **Google Conversion ID** in your Google Ads destination settings is correct.
    
3.  Find your ad online and click on it. This redirects you to your website.
    
4.  Open the Network tab in your browser and select the setting to preserve logs. In Chrome, this is a simple checkbox called **Preserve log**; in Firefox, you’ll click the settings icon and select **Persist Logs**. Keep this Network tab and webpage open.
    
5.  In a new browser tab, go to the **Actions** tab for your Google Ads destination and open settings for the **Click Conversions** action. Make sure the events are mapped to the correct **Conversion Label**.
    
    [![chcek your conversion label](https://docs.customer.io/images/cdp-google-ads-conversion-id.png)](#85d908af0ada59a36b0d35863b8503ed-lightbox)
    
6.  Go back to your website and trigger the event that’s mapped to the click conversion action.
    
7.  Go to the Network tab in your browser and enter the **Conversion Label** linked to the event you triggered in the **Filter** field.
    
8.  See if the value for the `ct_cookie_present` changed to `true`. If `true`, it means that Google Ads counted the event as a conversion.