> For the complete documentation index, see [llms.txt](https://docs.chord.co/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.chord.co/activate/event-streaming/destinations/advertising/google-ads/google-ads-gtag.md).

# Google Ads Gtag

Google Ads is a pay-per-click advertising platform that lets businesses create ads shown on Google Search, YouTube, and across the web. It supports keyword targeting, audience segmentation, and campaign optimization to drive traffic and conversions.

## Getting started

You need your Conversion ID, which you can find in your global site tag snippet. It looks like `AW-901243031`.

To also send conversions from Chord's servers, add the [Google Ads Conversions](/activate/event-streaming/destinations/advertising/google-ads/google-ads-conversions.md) destination. See [Google Ads](/activate/event-streaming/destinations/advertising/google-ads.md) for how the two run together.

## Settings

* **Destination Name** (required): a name to tell this destination apart.
* **Conversion ID** (required): your Google Ads Conversion ID, for example `AW-901243031`.
* **Click Conversions** (optional): one row per event. Enter the Chord track event name as **Event Name**, the **Conversion Label** from your event snippet (the part after the `/` in `send_to`), and optionally an **Account ID (optional)** to send that conversion to a different Google Ads account.
* **Page Load Conversions** (optional): one row per page name. Enter the page name as **Event Name**, the **Conversion Label**, and optionally an **Account ID (optional)** to send that conversion to a different Google Ads account.
* **Default Page Conversion** (optional): the **Conversion Label** to use for page calls that have no name. Chord sends it to your **Conversion ID**.
* **Send Page View** (optional): lets the Google tag send a remarketing hit when a page is viewed. On by default. Turn it off to stop that.
* **Enable Conversion Linker** (optional): lets the Google tag set first-party cookies on your domain. On by default. Google does not recommend turning it off, because conversion measurement gets less accurate.
* **Disable Ad Personalization** (optional): stops collecting remarketing data for visitors who don't want personalized ads. Off by default.
* **Floodlight Account ID** (optional): your Floodlight Advertiser ID, for example `DC-1234567`. It is passed to the Google tag so tags load with first-party cookies.
* **Ad Consent Category** (optional): the consent category from your consent tool that controls advertising consent. Chord passes it to Google as the `ad_storage`, `ad_user_data` and `ad_personalization` signals (Consent Mode v2). Choose "None" to turn Consent Mode v2 off for this destination.
* **Analytics Consent Category** (optional): the consent category that controls analytics consent. Chord passes it to Google as the `analytics_storage` signal. Choose "None" to leave that signal out.
* **Send Dynamic Remarketing Events** (optional): sends Product List Viewed, Products Searched, Product Viewed, Product Added and Order Completed to Google Ads as dynamic remarketing events. Off by default. See [Dynamic remarketing](#dynamic-remarketing).
* **Remarketing Product ID Format** (optional): which product ID to send so it matches your Merchant Center feed: `product_id`, `sku`, `variant_id` or `shopify`. Defaults to `product_id`. Shown only when dynamic remarketing is on.
* **Remarketing Feed Country** (optional): the two-letter country code used in your Shopify feed IDs. Defaults to `US`. Shown only when the format is `shopify`.
* **Consent Requirements** (optional): the consent categories a visitor must accept before Chord sends data to this destination. See [Consent](/activate/event-streaming/consent.md).

## Connect

Add **Google Ads (Gtag)** from the destination catalog, using the settings above. See [Connect a destination](/activate/event-streaming/connect-a-destination.md) for the full steps.

## Event mapping

Chord sends a conversion when an event matches a row you added to the destination settings. Matching is not case-sensitive.

| Chord event                                                                                                                                                                                                                                                                                      | Google Ads event                                                                                                             | Notes |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------- | ----- |
| A track event whose name matches an **Event Name** under **Click Conversions**                                                                                                                                                                                                                   | A `conversion` event for that row                                                                                            |       |
| A page event whose name matches an **Event Name** under **Page Load Conversions**                                                                                                                                                                                                                | A `conversion` event for that row                                                                                            |       |
| A page event with no name                                                                                                                                                                                                                                                                        | A `conversion` event for **Default Page Conversion**, if you set one                                                         |       |
| [Order Completed](/collect-data/tracking-plan/order-completed.md), [Product Viewed](/collect-data/tracking-plan/product-viewed.md), [Product Added](/collect-data/tracking-plan/product-added.md), [Products Searched](/collect-data/tracking-plan/products-searched.md) and Product List Viewed | A dynamic remarketing event, when **Send Dynamic Remarketing Events** is on. See [Dynamic remarketing](#dynamic-remarketing) |       |
| Any other track event                                                                                                                                                                                                                                                                            | Skipped, with a console warning                                                                                              |       |
| `identify`                                                                                                                                                                                                                                                                                       | Not sent                                                                                                                     |       |

A typical setup maps `Order Completed` under **Click Conversions** and a thank-you page under **Page Load Conversions**.

The page name comes from `properties.title`, then `properties.path` (with hyphens turned into spaces and each word capitalized), then the page's `name`. A named page with no matching row sends no conversion. **Default Page Conversion** is used only when the page has no name.

## Enhanced conversions

On every event, Chord checks for email, phone, name and address fields to set enhanced conversions user data. This helps Google match conversions to signed-in users for better attribution.

**Gtag SDK call:** `gtag("set", "user_data", userData)`

| Chord source (priority order)                                                                         | Google Ads field      | Notes |
| ----------------------------------------------------------------------------------------------------- | --------------------- | ----- |
| `properties.email` > `context.traits.email` > `traits.email`                                          | `email`               |       |
| `properties.phone` > `context.traits.phone` > `traits.phone`                                          | `phone_number`        |       |
| `properties.first_name` > `context.traits.first_name` > `traits.first_name`                           | `address.first_name`  |       |
| `properties.last_name` > `context.traits.last_name` > `traits.last_name`                              | `address.last_name`   |       |
| `address1` > `street` from `properties.address`, then `context.traits.address`, then `traits.address` | `address.street`      |       |
| `city` from the same addresses                                                                        | `address.city`        |       |
| `state` from the same addresses                                                                       | `address.region`      |       |
| `zipcode` > `postalCode` > `zip` from the same addresses                                              | `address.postal_code` |       |
| `country` from the same addresses                                                                     | `address.country`     |       |

Address fields are only included when at least one address value is present. Per Google's requirements, a valid address match needs at least `address.first_name`, `address.last_name`, `address.postal_code` and `address.country`.

## Conversion event attributes

These attributes go with every conversion from a **Click Conversions** row.

| Chord source (priority order)                                                                                                                                                                                                               | Google Ads field | Notes                                                          |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------- | -------------------------------------------------------------- |
| **Account ID (optional)** if set, otherwise **Conversion ID**, then `/` and the row's **Conversion Label**                                                                                                                                  | `send_to`        | Identifies the conversion action                               |
| For Order Completed: `properties.total` > `properties.value` > `properties.price` > the sum of each product's price times quantity > `properties.revenue`. For other events: `properties.value` > `properties.total` > `properties.revenue` | `value`          | Omitted if none is present                                     |
| `properties.currency` > `properties.meta.i18n.currency`                                                                                                                                                                                     | `currency`       | Defaults to `"USD"`                                            |
| `properties.order_id` > `properties.orderId` > `properties.id` > `properties.cart_id`                                                                                                                                                       | `transaction_id` | For deduplication. Omitted if none is present                  |
| `properties.products[]`                                                                                                                                                                                                                     | `items`          | Each product needs an ID and a name. Omitted if there are none |
| `properties.coupon`                                                                                                                                                                                                                         | `coupon`         | Omitted if not present                                         |
| `properties.discount`                                                                                                                                                                                                                       | `discount`       | Omitted if not present                                         |

Every other property on the event is sent too. See [Custom property forwarding](#custom-property-forwarding).

## Dynamic remarketing

Dynamic remarketing shows shoppers ads for the products they viewed or added to their cart. It is off by default. Turn on **Send Dynamic Remarketing Events** to send these events to your Google Ads account, using Google's retail event names:

| Chord event             | Google Ads event      | Notes |
| ----------------------- | --------------------- | ----- |
| **Product List Viewed** | `view_item_list`      |       |
| **Products Searched**   | `view_search_results` |       |
| **Product Viewed**      | `view_item`           |       |
| **Product Added**       | `add_to_cart`         |       |
| **Order Completed**     | `purchase`            |       |

**Gtag SDK call:** `gtag("event", "view_item", { send_to: conversionId, value, currency, items })`

Remarketing events go to the Conversion ID, with no conversion label, so they never count as conversions. An event with a configured conversion still fires that conversion as well.

Each item carries `id`, `google_business_vertical: "retail"`, `price` and `quantity`. Google needs at least one item, so an event whose products have no usable ID is skipped with a console warning. The `shopify` format needs both a `product_id` and a `variant_id`. The event also carries the event's `value`, `currency` and custom properties. Only the purchase event carries `transaction_id`.

**Product IDs must match your Merchant Center feed exactly.** Set **Remarketing Product ID Format** to match it:

| Format                 | Item ID                                                                                                                                                                                 |
| ---------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `product_id` (default) | `properties.products[].product_id`, or `id` if there is no `product_id`                                                                                                                 |
| `sku`                  | `properties.products[].sku`                                                                                                                                                             |
| `variant_id`           | `properties.products[].variant_id`                                                                                                                                                      |
| `shopify`              | `shopify_<country>_<product_id>_<variant_id>`, the format Shopify's Google channel uses. Set **Remarketing Feed Country** to the two-letter country in your feed IDs. Defaults to `US`. |

## Page load conversions

Page events send the attributes below with a conversion from a **Page Load Conversions** row, or from **Default Page Conversion**.

| Chord source (priority order)                                                                                                                                                                      | Google Ads field | Notes                                                                         |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------- | ----------------------------------------------------------------------------- |
| **Account ID (optional)** if set, otherwise **Conversion ID**, then `/` and the row's **Conversion Label**. For the default conversion, **Conversion ID** then `/` and **Default Page Conversion** | `send_to`        | Identifies the conversion action                                              |
| `properties.total` > `properties.value` > `properties.price` > the sum of each product's price times quantity > `properties.revenue`                                                               | `value`          | Omitted if none is present                                                    |
| `properties.currency` > `properties.meta.i18n.currency`                                                                                                                                            | `currency`       | Defaults to `"USD"`                                                           |
| `properties.order_id` > `properties.orderId` > `properties.id` > `properties.cart_id`                                                                                                              | `transaction_id` | Omitted if none is present                                                    |
| Page path                                                                                                                                                                                          | `path`           | Defaults to `window.location.pathname`                                        |
| Referrer URL                                                                                                                                                                                       | `referrer`       | Defaults to `document.referrer`                                               |
| Query string                                                                                                                                                                                       | `search`         | Defaults to `window.location.search`                                          |
| Page title                                                                                                                                                                                         | `title`          | Defaults to `document.title`                                                  |
| Page URL                                                                                                                                                                                           | `url`            | Defaults to `window.location.href`                                            |
| Page name                                                                                                                                                                                          | `name`           | Not sent for **Default Page Conversion**. See [Event mapping](#event-mapping) |

## Custom property forwarding

Chord also sends every other property on the event with its conversion, except `email`, `phone`, `phone_number`, `first_name`, `last_name`, `firstName`, `lastName` and `phoneNumber`. This includes properties you add with destination mappings in Chord. The fields in the tables above win when Chord computes a value for them. If Chord has no value, a property with the same name is sent as is.

## CSP requirements

If your site uses a Content Security Policy, allow the following domains:

| Directive     | Domain                                                                 |
| ------------- | ---------------------------------------------------------------------- |
| `script-src`  | `https://www.googletagmanager.com`                                     |
| `connect-src` | `https://www.googletagmanager.com`, `https://www.google-analytics.com` |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.chord.co/activate/event-streaming/destinations/advertising/google-ads/google-ads-gtag.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
