> ## Documentation Index
> Fetch the complete documentation index at: https://docs.immutable.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Google Ads Postbacks

> Connect Google Ads via OAuth and map Conversion Goals to import Conversion Actions for server-side conversion tracking

> [!NOTE]
>
> **Who is this for?** Marketers running paid acquisition on Google Ads who want to feed conversion data back to the platform for campaign optimisation and ROAS reporting.

Google Ads postbacks send conversions to Google using offline conversion import. When a player clicks your Google Ads campaign and later completes a [Conversion Goal](https://docs.immutable.com/docs/products/attribution/conversion-goals.md) such as a purchase, Immutable uploads that conversion to Google. Google uses this signal in campaign reports and bid strategies.

## Website events

Do not use Google postbacks for website events such as [Funnel Page](https://docs.immutable.com/docs/products/attribution/funnel-page.md) sign-up. Those fire in the browser via the Google Tag.

| Player action | How Google should receive it |
| - | - |
| Funnel Page sign-up (**Email Captured** in Hub) | Google Tag on the Funnel Page |
| Other Conversion Goals (`purchase`, `wishlist_add`, `game_launch`, custom events) | Google Ads postbacks in Integrations |

Add a **Google Tag ID** on your Funnel Page in Hub so Email Captured is reported by `gtag`. In **Conversion Action Mapping**, Email Captured stays visible but cannot be mapped. Mapping it to a website conversion action fails at upload. Mapping it to an import action would count the same sign-up twice.

Keep the Google Tag on the page for auto-tagging (`gclid`) and Consent Mode. Do not also count Funnel Page sign-up as a postback.

## What You Need

* The Immutable [Web SDK](https://docs.immutable.com/docs/products/audience/analytics/web-sdk.md) installed on your marketing site, so Google click IDs (`gclid`) are captured. A `gclid` is required for every Google postback. Without it, the postback cannot be sent.
* The [Unity SDK](https://docs.immutable.com/docs/products/audience/analytics/unity-sdk.md), [Web SDK](https://docs.immutable.com/docs/products/audience/analytics/web-sdk.md), or [REST API](https://docs.immutable.com/docs/products/audience/analytics/rest-api.md) sending events
* At least one active [Conversion Goal](https://docs.immutable.com/docs/products/attribution/conversion-goals.md) other than Email Captured
* A Google Ads account with at least one **import** Conversion Action (see Step 1)
* Admin access to the game in [Audience Hub](https://hub.immutable.com)

## Step 1: Create Conversion Actions in Google Ads

Create an import Conversion Action for each Goal you want to send via postbacks. Website-tag actions cannot receive these uploads.

1. In [Google Ads](https://ads.google.com), go to **Goals** then **Summary**, and select **+ Create conversion action**.
2. Select **Conversions offline** (CRM, importing a file, or the Google Ads API). Do not select **Conversions on a website**. That creates a Google tag / GA4 action, which postbacks cannot upload to.
3. You can skip connecting a data source. Immutable sends the conversions.
4. Name the action after your Goal (for example, "First Purchase"). Complete setup.

After save, open the action and confirm **Conversion source** is **Website (Import from clicks)**, not **Website**.

The resource name format is: `customers/{customer_id}/conversionActions/{conversion_action_id}`

You can find `{customer_id}` in the top-right of your Google Ads account (without hyphens). You can find `{conversion_action_id}` in the URL when you open a Conversion Action's detail page.

> [!WARNING]
>
> Postbacks only succeed against import / `UPLOAD_CLICKS` actions. A website (`WEBPAGE`) action returns `INVALID_CONVERSION_ACTION_TYPE` and will not deliver.

## Step 2: Connect Google Ads

1. In [Audience Hub](https://hub.immutable.com), navigate to **Settings** then **Integrations** then **Google Ads**.
2. In the **Conversion Postbacks** section, click **Connect**.
3. A Google authorization popup opens. Sign in and grant the requested permissions.
4. Once authorized, Hub shows an account picker. Select the Google Ads account that contains the Conversion Actions you created.
5. Click **Connect**. Hub creates the postback configuration and the popup closes.

## Step 3: Map Goals to Conversion Actions

After connecting, map each Conversion Goal to a Google Ads import Conversion Action. Without a mapping, conversions for that Goal are not sent to Google.

1. On the Google Ads integration page, scroll to **Conversion Action Mapping**.
2. For each Goal, choose a Conversion Action from the dropdown (or paste the resource name if the list cannot load).
3. Click **Save mapping**.

**Email Captured** is listed but greyed out. That conversion is sent by the Funnel Page Google Tag, not by this postback.

Hub only offers Conversion Actions that can receive an import. Website-tag and Google-hosted actions appear disabled, with their type shown.

If the resource name format is invalid, Hub will show a validation error before saving.

## How Google Conversions Work

Google Ads conversion tracking uses a different delivery model than the other networks. Rather than sending each conversion immediately, Immutable stages conversions in a queue and uploads them to Google in batches via the Google Ads API. This is the standard Google Ads offline conversion import pattern.

Every postback requires a `gclid` (Google click ID). If an attributed event does not have a `gclid` in the touchpoint data, Immutable will not send a postback to Google for that event. Make sure your Web SDK is correctly installed on any pages you're running Google Ads campaigns against.

For `purchase` conversions, the conversion `value` and `currency` are included in the upload when both are present, so Google can optimise for revenue (ROAS).

## Consent Mode

Immutable forwards consent signals to Google using Consent Mode v2. For events collected at `full` consent, both `ad_user_data` and `ad_personalization` are set to `GRANTED`. For events at `anonymous` consent, both are set to `UNSPECIFIED`. This lets Google apply appropriate data restrictions without dropping the conversion.

## Verify Delivery

Once conversions start arriving, they appear in the **Delivery logs** section on the Google Ads integration page. Because Google processes conversions in batches, there may be a short delay before they appear in your Google Ads reporting.

For a description of log columns and status values, see [Monitoring Postback Delivery](https://docs.immutable.com/docs/products/attribution/postbacks/overview.md#monitoring-postback-delivery).

## Reconnecting

If your Google authorization expires or is revoked, Hub shows a credential warning on the postback config. Open the config menu and click **Reconnect** to re-authorize. Your Conversion Action mappings are preserved when you reconnect.

***

## Next Steps

> [card] [Conversion Goals](https://docs.immutable.com/docs/products/attribution/conversion-goals.md)
>
> Define which player actions count as a conversion and control what triggers postbacks

> [card] [Funnel Page](https://docs.immutable.com/docs/products/attribution/funnel-page.md)
>
> Hosted landing page for sign-ups. Use a Google Tag here, not Google postbacks.

> [card] [Conversion Postbacks](https://docs.immutable.com/docs/products/attribution/postbacks/overview.md)
>
> Overview of all supported networks and event mapping

> [card] [Attribution](https://docs.immutable.com/docs/products/attribution/overview.md)
>
> How tracking data powers player attribution and Hub reports


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.