> ## 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.

# Conversion Postbacks

> Automatically send attributed conversion data back to your ad networks so their algorithms learn which campaigns produce real players

> [!NOTE]
>
> **Who is this for?** Marketers running paid acquisition on TikTok Ads, Meta Ads, Google Ads, Reddit Ads, Amazon Ads (including Twitch, Fire TV, and Amazon DSP), or X Ads who want to feed conversion data back to those platforms to improve campaign optimisation.

When a player clicks your ad, installs the game, and completes an action you've defined as a conversion, [Attribution](https://docs.immutable.com/docs/products/attribution/overview.md) captures the journey. Conversion Postbacks close the loop by notifying the ad network that the click led to a real outcome.

What counts as a conversion is set by your [Conversion Goals](https://docs.immutable.com/docs/products/attribution/conversion-goals.md). A postback fires whenever an attributed event matches an active Goal, so you control exactly which actions are forwarded.

Without postbacks, ad networks are flying blind. Their optimisation algorithms can see your spend but not your results. With postbacks enabled, every attributed conversion you send back directly improves your campaign targeting.

## How It Works

**1. Player clicks your ad**

Immutable's Web SDK captures the click ID from your ad campaign on your marketing site.

**2. Player installs and acts**

Your game sends events via the Unity SDK, Web SDK, or REST API as the player plays.

**3. Immutable attributes the event and checks your Goals**

The Audience attribution engine matches the in-game event to the original ad click, then checks it against your active [Conversion Goals](https://docs.immutable.com/docs/products/attribution/conversion-goals.md). If it matches a Goal, the conversion is recorded.

**4. Postback fires automatically**

For each matched Goal, Immutable sends a server-to-server callback to your connected ad networks with the conversion data. No code changes needed after initial setup.

## Supported Networks

> [card] [TikTok Ads](https://docs.immutable.com/docs/products/attribution/postbacks/tiktok-ads.md)
>
> TikTok Events API, connected via OAuth in Audience Hub

> [card] [Meta Ads](https://docs.immutable.com/docs/products/attribution/postbacks/meta-ads.md)
>
> Meta Conversions API, connected via OAuth in Audience Hub

> [card] [Google Ads](https://docs.immutable.com/docs/products/attribution/postbacks/google-ads.md)
>
> Google Ads API offline conversion import, connected via OAuth in Audience Hub

> [card] [Reddit Ads](https://docs.immutable.com/docs/products/attribution/postbacks/reddit-ads.md)
>
> Reddit Conversions API v3, connected via OAuth in Audience Hub

> [card] [Amazon Ads](https://docs.immutable.com/docs/products/attribution/postbacks/amazon-ads.md)
>
> Amazon Ads Conversions API (covers Twitch, Fire TV, Amazon DSP), connected via OAuth in Audience Hub

> [card] [X Ads](https://docs.immutable.com/docs/products/attribution/postbacks/x-ads.md)
>
> X Ads Conversions API, connected via OAuth in Audience Hub

## What You Need

Before configuring postbacks for a game:

* The Immutable [Web SDK](https://docs.immutable.com/docs/products/audience/analytics/web-sdk.md) is installed on your marketing site (captures click IDs from ad platforms)
* 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) is sending the events your Conversion Goals are built on (such as `purchase`)
* At least one [Conversion Goal](https://docs.immutable.com/docs/products/attribution/conversion-goals.md) is active for the game. A postback fires when an attributed event matches an active Goal.
* You have admin access to the game in [Audience Hub](https://hub.immutable.com)

## Event Mapping

A postback carries the event from the [Conversion Goal](https://docs.immutable.com/docs/products/attribution/conversion-goals.md) that matched. Immutable maps each Goal event to the closest standard event on each network:

| Goal event | TikTok Ads | Meta Ads | Google Ads | Reddit Ads | Amazon Ads | X Ads |
| - | - | - | - | - | - | - |
| `purchase` | `Purchase` | `Purchase` | Conversion Action (mapped per Goal) | `Purchase` | Conversion Definition (mapped per Goal) | Single Event Tag (mapped per Goal) |
| `wishlist_add` | `AddToWishlist` | `AddToWishlist` | Conversion Action (mapped per Goal) | `AddToWishlist` | Conversion Definition (mapped per Goal) | Single Event Tag (mapped per Goal) |
| `wishlist_remove` | `wishlist_remove` | `wishlist_remove` | Conversion Action (mapped per Goal) | `Custom` named `wishlist_remove` | Conversion Definition (mapped per Goal) | Single Event Tag (mapped per Goal) |
| `email_acquired` | `CompleteRegistration` | `CompleteRegistration` | Conversion Action (mapped per Goal) | `SignUp` | Conversion Definition (mapped per Goal) | Single Event Tag (mapped per Goal) |
| `game_launch` | `game_launch` (custom) | `game_launch` (custom) | Conversion Action (mapped per Goal) | `Custom` named `game_launch` | Conversion Definition (mapped per Goal) | Single Event Tag (mapped per Goal) |

For `purchase` conversions, Immutable forwards `value` and `currency` when both are present, so ad networks can optimise for revenue (ROAS), not just conversion count. This applies to all six networks.

Google Ads requires you to map each Goal to an import Conversion Action in your Google Ads account. Do not use postbacks for website events such as Funnel Page sign-up (Email Captured). Those are sent by the Google Tag on the page. See the [Google Ads setup guide](https://docs.immutable.com/docs/products/attribution/postbacks/google-ads.md) for details.

Amazon Ads requires you to map each active Goal to a numeric Conversion Definition ID created in your Amazon DSP Console. The event type is set on the definition in Amazon DSP, so Immutable sends only the ID. See the [Amazon Ads setup guide](https://docs.immutable.com/docs/products/attribution/postbacks/amazon-ads.md) for details.

X Ads requires you to map each active Goal to a Single Event Tag (SET) ID created in X Ads Events Manager. The conversion type is set on the tag in X, so Immutable sends only the tag ID. See the [X Ads setup guide](https://docs.immutable.com/docs/products/attribution/postbacks/x-ads.md) for details.

To choose which events count as conversions for your game, set up your [Conversion Goals](https://docs.immutable.com/docs/products/attribution/conversion-goals.md).

***

## Monitoring Postback Delivery

The **Delivery logs** section on each ad network's integration page (**Settings** then **Integrations** then **\[Network]**) shows every postback dispatch attempt for that game.

Filter by time range (last hour, 24 hours, 7 days, or 30 days) and status. Each log entry shows:

| Column | Description |
| - | - |
| **Time** | When the postback was sent (hover for the exact timestamp) |
| **Event** | The Conversion Goal event that triggered it, such as `purchase` or `wishlist_add` |
| **Status** | Delivery outcome (see below) |
| **HTTP** | The HTTP status code returned by the ad network |
| **Latency** | Round-trip time in milliseconds |
| **Attempt** | Which retry attempt this entry represents |

> [card] Success
>
> The network accepted the postback

> [card] Failed
>
> The network rejected the payload, usually a credential or configuration issue. Not retried.

> [card] Retried
>
> A transient network error. Immutable automatically retried the delivery.

### Health status

Each postback config in the list shows a health indicator alongside its enabled/disabled badge:

| Indicator | Meaning |
| - | - |
| No indicator | Postbacks are delivering normally |
| "Credential failures detected" (warning icon) | Recent deliveries are failing with auth errors. Credentials may have been revoked or expired. |
| "No recent activity" (clock icon) | No delivery history yet. Normal for a newly configured postback. |

***

## FAQ

> [accordion] Can I use Conversion Postbacks without the Web SDK?
>
> No. Postbacks rely on click IDs captured by the [Web SDK](https://docs.immutable.com/docs/products/audience/analytics/web-sdk.md) on your marketing site when a player arrives from an ad. Without a click ID, Immutable cannot tie the in-game conversion back to the original ad click, and there is nothing to forward to the ad network.
>
> Reddit Ads also accepts a hashed email address as a fallback identifier when no click ID is present. See the [Reddit Ads setup guide](https://docs.immutable.com/docs/products/attribution/postbacks/reddit-ads.md) for details.

> [accordion] Will postbacks fire for organic conversions?
>
> No. Only conversions attributed to a paid ad click on a configured network are forwarded. Organic players, players from untracked sources, and players whose click happened outside the supported networks do not generate postbacks.

> [accordion] Can I send conversion events from my game server instead of the Unity SDK?
>
> Yes. The [REST API](https://docs.immutable.com/docs/products/audience/analytics/rest-api.md) accepts the same events. Events from any source (Unity SDK, Web SDK, REST API) are eligible to match a [Conversion Goal](https://docs.immutable.com/docs/products/attribution/conversion-goals.md) and trigger postbacks once attributed.

> [accordion] How does the consent model affect postback delivery?
>
> Postbacks only fire for events that were collected at `anonymous` or `full` consent. Events at `none` are not collected so cannot be attributed or forwarded. See the [Data Dictionary](https://docs.immutable.com/docs/products/audience/analytics/data-dictionary.md#consent-model) for the full consent model.

> [accordion] What happens to postbacks when SDK testMode is enabled?
>
> Events marked `test: true` (from SDK `testMode`) are handled differently per network. TikTok and Reddit route them to each platform's test environment if a test code or test ID is configured on the postback. Meta uses `test_event_code` in the same way. Normal production events are never affected by test codes, even when one is set.

> [accordion] What happens to forwarded postbacks if a user requests data erasure?
>
> Erasure removes the user's data from Immutable's systems (see [Deleting User Data](https://docs.immutable.com/docs/products/audience/analytics/rest-api.md#deleting-user-data)). Postbacks already delivered to ad networks are not retracted by Immutable. Once the network has received the conversion signal, it operates under that network's data retention policy. To request erasure from the ad network itself, contact the network directly. New postbacks will not be sent for the erased user.

> [accordion] Why aren't postbacks appearing in the delivery log?
>
> Check the following:
>
> * Is the postback config **enabled**?
> * Is there at least one active [Conversion Goal](https://docs.immutable.com/docs/products/attribution/conversion-goals.md) matching the events you're sending? Without a matching Goal, nothing is forwarded.
> * Is the Immutable Web SDK installed and capturing click IDs on the pages you're running ads against? Without a click ID, Immutable can't attribute the conversion to a paid ad click.
> * Is the Unity SDK, Web SDK, or REST API sending the expected events?

> [accordion] What does a non-retryable failure in the delivery log mean?
>
> The ad network rejected the payload. Check the HTTP status code shown in the log entry:
>
> * **401 / 403:** your credentials have expired or been revoked. Reconnect the integration for all OAuth networks (TikTok, Meta, Google, Reddit, Amazon, X).
> * **400:** the event payload was rejected by the network's validation. Contact your Immutable account manager with the attribution event ID from the log.

> [accordion] How do I set up a network that isn't listed here?
>
> Additional networks are not yet available for self-service configuration. Contact your Immutable account manager or reach out via the [support portal](https://support.immutable.com) to discuss your needs.

## 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] [Attribution](https://docs.immutable.com/docs/products/attribution/overview.md)
>
> How tracking data powers player attribution and Hub reports

> [card] [Data Dictionary](https://docs.immutable.com/docs/products/audience/analytics/data-dictionary.md)
>
> Full reference of event schemas and consent levels

> [card] [Web SDK](https://docs.immutable.com/docs/products/audience/analytics/web-sdk.md)
>
> Typed SDK for web games, marketing sites, and SPAs

> [card] [Unity SDK](https://docs.immutable.com/docs/products/audience/analytics/unity-sdk.md)
>
> In-game tracking for Unity desktop builds

> [card] [REST API](https://docs.immutable.com/docs/products/audience/analytics/rest-api.md)
>
> Send events from your backend or game server


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