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

# How to connect

> How to connect the AppsFlyer data source to Adriel: generate an API Token V2, authorize the account, and pick the app to track.

AppsFlyer is a mobile measurement partner that attributes app installs and in-app events across ad networks, self-attributing networks, SKAdNetwork, and owned channels. Connecting it pulls attribution and aggregated performance data for a single mobile app per data source through the AppsFlyer Master API, covering installs, sessions, revenue, and dynamically discovered in-app event metrics.

## Before you connect

The following are required:

* An AppsFlyer account with **Master API access** authorized. This is not granted by default — request access from AppsFlyer.
* **Admin or account-owner permissions** in AppsFlyer, required to generate an API Token V2.
* An AppsFlyer **API Token V2**, generated from the Security Center.
* The **Account ID** of the app to track. One app maps to one data source.

To retrieve the API Token V2 and Account ID:

<Steps>
  <Step title="Open the Security Center">
    Log in to the AppsFlyer dashboard. At the upper right, click **Account** > **Security Center** > **Manage your AppsFlyer API tokens**.
  </Step>

  <Step title="Copy the API Token V2">
    Copy the **API token V2.0**. Token V1 is not supported.
  </Step>

  <Step title="Locate the Account ID">
    Go to **My Apps** > **Available Apps** and note the **Account ID** of the app to connect.
  </Step>
</Steps>

## Connect AppsFlyer

<Steps>
  <Step title="Authorize the AppsFlyer account">
    On the **Data Sources** page, search for **AppsFlyer** and select it. Paste the API Token V2 into the **Token** field, then click **Submit** to authenticate. Token V1 is not supported.
  </Step>

  <Step title="Choose the app">
    Choose the **Account ID** (app) to connect from the picker. The picker lists every app on the AppsFlyer account.
  </Step>

  <Step title="Select metrics and breakdowns">
    Select the metrics and breakdowns to import. Static metrics include installs, clicks, impressions, sessions, revenue, eCPI, and ROI. Dynamic in-app event metrics are discovered from events configured in AppsFlyer, such as `af_purchase` or `af_complete_registration`. Breakdowns are available across media source, campaign, ad set, ad, country, and platform.
  </Step>

  <Step title="Submit">
    Click **Submit** to complete the connection. Initial data availability can take up to one business day. Create a separate data source for each app, including separate iOS and Android entries.
  </Step>
</Steps>

## What gets imported

Performance data is imported at app, media source, campaign, ad set, and ad levels, with breakdowns by country, geo, and platform (iOS / Android). Static metrics include impressions, clicks, installs, sessions, loyal users, re-engagements, uninstalls, cost, revenue, eCPI, eCPM, ROI, and ARPU. Dynamic in-app event metrics surface count and revenue per configured event once AppsFlyer has received the event for the connected app. Each query re-fetches the last 8 days live, and up to 2 years of history is available.

For the complete metric list, breakdowns, refresh cadence, and date-range limits, see the [AppsFlyer data reference](/data-sources/a-f/appsflyer/data-reference).

<Note>
  Cohorted retention and LTV curves are not handled by this connector. For day-N retention and revenue cohorts aligned by conversion or event date, use the separate **AppsFlyer Cohort** connector, which reads Data Locker exports from S3.
</Note>

## Troubleshooting

<AccordionGroup>
  <Accordion title="Invalid token error">
    Confirm the token is an API Token V2 generated from the AppsFlyer Security Center. Token V1 is not supported, and Token V2 is revoked when the underlying user's admin role is removed. Generate a fresh V2 token and reconnect.
  </Accordion>

  <Accordion title="No apps appear in the picker">
    The token is valid but is not scoped to any apps. Confirm with the AppsFlyer account owner that the underlying user has access to at least one app and that Master API access has been authorized for the account.
  </Accordion>

  <Accordion title="An expected in-app event metric is missing">
    Dynamic event metrics appear only after AppsFlyer has received that event for the connected app. Wait for events to land, then refresh the metric list by editing the data source.
  </Accordion>

  <Accordion title="Numbers differ from the AppsFlyer dashboard for recent days">
    AppsFlyer attribution can update for up to 7 days after install because of delayed postbacks, fraud filtering, and SKAdNetwork conversion-value updates. The last 8 days are re-fetched on every refresh to absorb these revisions, and figures stabilize after the window.
  </Accordion>

  <Accordion title="Rate-limit errors during heavy use">
    The Master API allows 5 calls per 4 seconds per token. Retries are automatic, and persistent errors usually indicate that another tool is consuming the same token's budget. Issue a separate token for that workload.
  </Accordion>

  <Accordion title="Currency cannot be changed on an existing data source">
    Currency is locked from the AppsFlyer app's native currency at creation. Changing the app's currency in AppsFlyer requires recreating the data source.
  </Accordion>
</AccordionGroup>

## Related

<CardGroup cols={2}>
  <Card title="AppsFlyer data reference" href="/data-sources/a-f/appsflyer/data-reference">
    Metrics, breakdowns, refresh cadence, and limits for AppsFlyer.
  </Card>

  <Card title="AppsFlyer FAQs" href="/data-sources/a-f/appsflyer/faqs">
    Common questions and expected behaviors for the AppsFlyer data source.
  </Card>

  <Card title="How to connect AppsFlyer Cohort" href="/data-sources/a-f/appsflyer-cohort/how-to-connect">
    Retention and LTV cohort analysis from AppsFlyer Data Locker exports.
  </Card>

  <Card title="How to connect Adjust" href="/data-sources/a-f/adjust/how-to-connect">
    Connect another mobile measurement partner.
  </Card>
</CardGroup>
