> For the complete documentation index, see [llms.txt](https://docs.helix.voodoo.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.helix.voodoo.io/user-acquisition/integrate-your-mmp/appsflyer-integration.md).

# AppsFlyer Integration

## Add Helix as a partner

In your AppsFlyer dashboard, select **Collaborate** → **Partner Integrations**, find and select **Helix**, then click the **Integrate** button.

<figure><img src="https://1987321100-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2MAw6vefmuVDionVqYES%2Fuploads%2FwbMfejrBOGfdoyPQGoVS%2Fimage.png?alt=media&amp;token=0fb21064-d647-40bf-9405-e38c2949f94c" alt="AppsFlyer Partner Marketplace with Helix found in search and the Integrate button highlighted"><figcaption></figcaption></figure>

## Grant permissions

In **Permissions**, toggle:

* **Ad network permissions**
* **Configure integration**
* **Configure in-app event postbacks**
* **Access Ad Revenue raw data**

If you can’t toggle **Access Ad Revenue raw data**, you’ll need to ask the AppsFlyer team to enable it for you. Please ensure that **All media sources, including organic** option is selected for the **Sending option** field.

This data is required for accurate campaign optimization and performance modeling. Limiting event sharing may negatively impact optimization quality and campaign performance.

<figure><img src="https://1987321100-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2MAw6vefmuVDionVqYES%2Fuploads%2Fo6dPxRELV4XWOWbzEJNt%2Faf_permissions.png?alt=media&amp;token=42a4db11-f57b-41ac-885e-0ade82ee0c43" alt="AppsFlyer partner permissions with Configure integration, in-app event postbacks, and Access ad revenue raw data enabled, and Sending option set to all media sources"><figcaption></figcaption></figure>

## Share data

Navigate to **Integration** and enable **All media sources, including organic**.

This setting ensures the campaign model is trained on complete data, allows existing users to be excluded from targeting, and enables more accurate optimization and performance from day one.

<figure><img src="https://1987321100-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2MAw6vefmuVDionVqYES%2Fuploads%2Fgit-blob-173df71172397a9a92f015384590103fad9b7961%2Fappsflyer-share-data.png?alt=media" alt="AppsFlyer partner integration settings with postbacks set to All media sources, including organic"><figcaption></figcaption></figure>

## Ensure “Aggregated Advanced Privacy” is disabled

This setting must be disabled to allow access to user-level attribution and event data. When **Aggregated Advanced Privacy** is enabled, AppsFlyer aggregates and anonymizes postbacks, which limits data granularity and negatively impacts campaign optimization and performance analysis.

<figure><img src="https://1987321100-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2MAw6vefmuVDionVqYES%2Fuploads%2Fgit-blob-43ab23a49cf2bc0768826ec10f5c1d36422c776e%2Fappsflyer-aggregated-privacy.png?alt=media" alt="AppsFlyer App Settings with the Aggregated Advanced Privacy toggle turned off"><figcaption></figcaption></figure>

## Configure relevant in-app event postbacks

Enable **in-app event postbacks** and set the postback window to **Lifetime**.

Add your ad revenue and in-app purchase events (if applicable) and map them to **ad\_revenue** and **iap\_revenue** respectively (see below).

In the **Including** column, select **Values & revenue** to ensure revenue data is shared correctly.

<figure><img src="https://1987321100-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2MAw6vefmuVDionVqYES%2Fuploads%2Fgit-blob-270ac8102bed615df75d86530d47e3baef56bf1a%2Fappsflyer-event-postbacks.png?alt=media" alt="AppsFlyer in-app event postback mapping of ad_revenue and iap_revenue events set to include values and revenue"><figcaption></figcaption></figure>

## Locate the app identifier from the AppsFlyer tracking URL

Once the integration is complete, AppsFlyer generates a tracking URL for your app.

The **App Identifier** is the value that appears immediately after <mark style="color:red;">`app.appsflyer.com/`</mark> in the URL.

* For **iOS**, this is the numeric part of the App Store ID (for example: <mark style="color:red;">`123456789`</mark>).
* For **Android**, this is the app’s package name (for example: <mark style="color:red;">`com.example.app`</mark>).

Example:

<mark style="color:red;">`https://app.appsflyer.com/`</mark><mark style="color:red;">**`123456789`**</mark><mark style="color:red;">`?...`</mark>

<mark style="color:red;">`https://app.appsflyer.com/`</mark><mark style="color:red;">**`com.example.app`**</mark><mark style="color:red;">`?...`</mark>

<figure><img src="https://1987321100-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2MAw6vefmuVDionVqYES%2Fuploads%2Fgit-blob-ad4067e8fd34195cf0876dc550f4e07fac7a88f9%2Fappsflyer-app-identifier.png?alt=media" alt="AppsFlyer attribution link configuration showing the generated click attribution URL that contains the app identifier"><figcaption></figcaption></figure>

{% hint style="info" %}
Please enter this value in your [app’s tracking settings](/user-acquisition/add-your-application.md).

Helix will create an up-to-date version of the tracking URL using this identifier.
{% endhint %}


---

# 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.helix.voodoo.io/user-acquisition/integrate-your-mmp/appsflyer-integration.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
