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

> Define which player actions count as a conversion so only the right events are forwarded to your connected ad networks

> [!WARNING]
>
> Conversion Goals are currently in **alpha**. Supported events and behavior may change between releases.

> [!NOTE]
>
> **Who is this for?** Marketers and game developers who want control over which in-game actions trigger postbacks to ad networks, rather than forwarding every supported event.

Conversion Goals let you define which player actions count as a conversion for your game. Only the actions you configure are forwarded to your connected ad networks.

## What Is a Goal?

A Goal is a rule that defines which player actions count as a conversion. For example:

* When a player completes a purchase, that counts as *First Purchase*
* When a player adds your game to their wishlist, that counts as *Wishlist Add*
* When a player submits their email, that counts as *Email Captured*

A Goal is made up of:

| Part | What it does |
| - | - |
| **Name** | A label you choose so you can find the Goal later |
| **Description** *(optional)* | A note describing what the Goal tracks |
| **Event** | The player action that can trigger the Goal |
| **Trigger** | Whether the Goal counts once per player or every time |
| **Filter** *(optional)* | Narrows the Goal to events with a specific property value |

Goals are scoped per game. A Goal you create for one game does not appear in another.

## How to Create a Goal

Open [Audience Hub](https://hub.immutable.com), navigate to your game, then go to **Settings** then **Goals**.

If your game has no Goals yet, the Goals page shows quick-start options for common actions such as first purchase, wishlist add, email capture, and first launch. These shortcuts pre-fill the event and trigger. They only appear while the Goals list is empty.

To configure a Goal yourself, select **Create goal**. The wizard has up to three steps:

**1. Choose an event**

Select **Built-in** to use one of Immutable's pre-built events, or select **Custom event** to use an event defined by your game.

For a custom event, you can choose an event seen in your game's data, reuse an event from another Goal, or enter a new event name.

> [!WARNING]
>
> Custom event names are case-sensitive and must exactly match the `eventName` your game sends. A Goal for `level_complete` does not match an event named `Level_Complete`.

**2. Add filters**

Optionally narrow when the Goal fires. Built-in events provide their supported properties. For a custom event, enter the property name, select its type, choose an operator, and enter the value.

This step is skipped when the selected built-in event has no filterable properties.

**3. Review and create**

Enter a name and optional description, confirm the event, trigger, and filters, then select **Create goal**.

## Triggers

| Trigger | What it does | Good for |
| - | - | - |
| **Once per player** | Only the first time a player does the action counts. Later occurrences are ignored. | Wishlist add or email capture, which happen once per player |
| **Repeatable** | Every occurrence counts. | Purchases, where every purchase is a conversion |

> [!NOTE]
>
> When you create a Goal you choose **Once per player**, but a saved Goal displays this trigger as **First-time only**. The two labels mean the same thing.

## Filters

A filter narrows a Goal so it only counts events that match a specific property value. For example, count a purchase only when `value` is greater than 10. Filters are optional and can be combined with either trigger.

The available operators depend on the property type:

| Property type | Operators |
| - | - |
| Numeric (`value` or custom **Number**) | `=`, `≠`, `>`, `≥`, `<`, `≤`, `in` |
| String (`currency`, `game_id`, or custom **Text**) | `=`, `≠`, `in` |
| Boolean (custom **Boolean**) | `=`, `≠` |

You can add up to five filters to a Goal. Every filter must match for the Goal to fire.

## Built-in Events

Conversion Goals provides five built-in events. You can also create a Goal from a custom event your game sends. Filterable properties for built-in events depend on the event:

| Event | What it means | Filterable properties |
| - | - | - |
| **Purchase** | A player completes a purchase | `currency`, `value` |
| **Wishlist add** | A player adds your game to their wishlist | `game_id` |
| **Wishlist remove** | A player removes your game from their wishlist | `game_id` |
| **Email acquired** | A player submits their email address | None |
| **Game launch** | A player launches your game | None |

## How Goals Connect to Postbacks

[Conversion Postbacks](https://docs.immutable.com/docs/products/attribution/postbacks/overview.md) are server-to-server callbacks Immutable sends to your connected ad networks when a conversion happens. A Goal defines what counts as a conversion; a postback is what Immutable sends when one occurs. A postback only fires when an attributed event matches an active Goal.

The path from a player action to an ad network:

**1. Player action reaches Immutable**

Your game sends an event via the Unity SDK, Web SDK, or REST API.

**2. Attribution check**

Immutable's attribution engine checks whether the event is linked to a paid ad click captured by the Web SDK.

**3. Goals evaluation**

The event is checked against every active Goal for the game. If it matches a Goal's event, trigger, and filters, the conversion is recorded.

**4. Postback fires**

Immutable sends a postback for that conversion to every connected ad network. If no Goal matches, no postback is sent.

In Conversion Goals, a matching conversion fires to all connected ad networks. Per-Goal network selection is not available yet. To manage which networks receive postbacks, go to **Settings** then **Integrations**.

## Managing Goals

From **Settings** then **Goals** you can:

* **View** all active Goals and their configuration
* **Edit** a Goal's name, description, event, trigger, or filter. Changing the event clears any filter clauses, because they may not apply to the new event.
* **Archive** a Goal to stop it matching new events. Archiving is permanent and cannot be reversed. Archived Goals are kept for reference and do not count toward the active limit.
* **Filter** the list by active or archived status

> [!NOTE]
>
> Each game can have up to **50 active Goals**. Archived Goals do not count toward this limit. If you reach the cap, archive an existing Goal before creating a new one.

## Current Limitations

* **Exact custom event names.** Custom event matching is case-sensitive. Immutable does not correct misspelled or differently cased event names.
* **No retention-window triggers.** Conditions like "active on day 7" are not available yet.
* **All Goals fire to all connected networks.** Per-Goal network selection is not available yet.

## FAQ

> [accordion] Can I change a Goal after creating it?
>
> Yes. You can edit a Goal's name, description, event, trigger, and filter at any time. If you change the event, any existing filter clauses are cleared because they may not apply to the new event.

> [accordion] Can two Goals match the same player action?
>
> Yes. Each matching Goal records its own conversion and sends its own postback. For example, two active Goals on the `purchase` event with different filters will each fire independently if a purchase satisfies both.

> [accordion] What happens when I archive a Goal?
>
> Archiving stops the Goal matching new events straight away. It cannot be reversed. Conversion records from before archiving are preserved, and archived Goals do not count toward the 50-active-Goal limit. To see archived Goals, switch the filter on the Goals page to **Archived**.

## Next Steps

> [card] [Conversion Postbacks](https://docs.immutable.com/docs/products/attribution/postbacks/overview.md)
>
> Configure which ad networks receive postbacks when a Goal is matched

> [card] [Attribution](https://docs.immutable.com/docs/products/attribution/overview.md)
>
> How Immutable attributes player actions back to ad campaigns

> [card] [Unity SDK](https://docs.immutable.com/docs/products/audience/analytics/unity-sdk.md)
>
> Send in-game conversion events from Unity builds

> [card] [Web SDK](https://docs.immutable.com/docs/products/audience/analytics/web-sdk.md)
>
> Send events from web games and marketing sites

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