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

# Data reference

> Metrics, breakdowns, refresh cadence, and limits for the AppsFlyer data source in Adriel.

## Introduction

AppsFlyer is a mobile measurement partner (MMP) that attributes app installs and in-app events across ad networks, self-attributing networks, SKAdNetwork, and owned channels. It covers iOS and Android through the AppsFlyer SDK and exposes attribution, engagement, cost, and revenue data through the Master API (Pull API v5).

This connector reads attribution and aggregated performance data for a single mobile app. Each data source maps to one AppsFlyer app, identified by app ID. Cohorted retention curves and LTV projections are handled by a separate connector, [AppsFlyer Cohort](/data-sources/a-f/appsflyer-cohort/data-reference), which reads Data Locker exports.

As a mobile attribution connector, events, breakdowns, and currencies are standardized so widgets can aggregate across sources without additional configuration.

<Note>
  **Master API access required**
  AppsFlyer does not grant Master API access to all accounts by default. The customer's AppsFlyer account must be authorized for the Master API before the connection can be created.
</Note>

To connect this data source, see [How to connect AppsFlyer to Adriel](/data-sources/a-f/appsflyer/how-to-connect).

## Data refresh strategy

### Architecture data

Architecture covers the AppsFlyer app inventory. The app list is read once at connection setup to populate the data source picker, and the selected app's metadata — including its native currency — is locked to the data source at that time.

### Reports data

Reports include daily attribution and performance data for the connected app.

**Real-time.** Report data is fetched from AppsFlyer on demand on every dashboard query — there is no local daily cache. This keeps numbers fresh but makes dashboards built on this connector slightly slower than cache-backed connectors, and queries are subject to AppsFlyer's API rate limits.

**Refresh window.** Each query re-fetches the last **8 days** of attribution data. AppsFlyer attribution can continue to revise for several days after install — delayed postbacks, fraud filtering, and SKAdNetwork conversion-value updates — and the 8-day window absorbs these revisions.

**History.** Adriel limits history to **2 years** — the connector requests up to 730 days back. This cap is set by Adriel, not by the AppsFlyer API.

## Architecture levels

App → Media source → Campaign → Ad set → Ad

## Date range limits

Up to **2 years (730 days)** of history is available, at daily granularity. Time-grouping breakdowns apply these maximum look-back windows:

| Breakdown                  | Max range |
| -------------------------- | --------- |
| Daily                      | 93 days   |
| Weekly                     | 1 year    |
| Monthly, Quarterly, Yearly | 2 years   |

## Metrics

<Note>
  **How to read the columns**
  **Data type** uses this vocabulary: Number, Currency, Percentage, Ratio, Duration, Date, Text, URL, Array, Boolean.
  **API Key** in code style like `af:installs` is the literal AppsFlyer Master API metric key. *Italic text* describes how a value is produced when it doesn't map cleanly to a single API field.
</Note>

### Clicks & impressions

| Metric          | Description                                            | Data type  | API Key          |
| --------------- | ------------------------------------------------------ | ---------- | ---------------- |
| Impressions     | Ad impressions served across attributed media sources. | Number     | `af:impressions` |
| Clicks          | Ad clicks recorded across attributed media sources.    | Number     | `af:clicks`      |
| Conversion rate | Installs divided by clicks, as computed by AppsFlyer.  | Percentage | `af:cr`          |

### Installs & app events

<Note>
  Retention here is a simple day-1 / day-7 / day-30 snapshot. For cohorted retention curves and LTV projections, use the separate [AppsFlyer Cohort](/data-sources/a-f/appsflyer-cohort/data-reference) connector.
</Note>

| Metric                  | Description                                                 | Data type  | API Key                            |
| ----------------------- | ----------------------------------------------------------- | ---------- | ---------------------------------- |
| Installs                | Installs attributed to media sources by AppsFlyer.          | Number     | `af:installs`                      |
| Sessions                | App sessions recorded by the AppsFlyer SDK.                 | Number     | `af:sessions`                      |
| Loyal users             | Users who meet AppsFlyer's loyal-user definition.           | Number     | `af:loyal_users`                   |
| Loyal user rate         | Loyal users divided by installs.                            | Percentage | `af:loyal_users_rate`              |
| Uninstalls              | App uninstalls detected by AppsFlyer.                       | Number     | `af:uninstalls`                    |
| Uninstall rate          | Uninstalls divided by installs.                             | Percentage | `af:uninstalls_rate`               |
| Retention (day 1)       | Users still active on day 1 after install.                  | Number     | `af:retention_day_1`               |
| Retention (day 7)       | Users still active on day 7 after install.                  | Number     | `af:retention_day_7`               |
| Retention (day 30)      | Users still active on day 30 after install.                 | Number     | `af:retention_day_30`              |
| Retention rate (day 1)  | Day-1 retained users as a share of installs.                | Percentage | `af:retention_rate_day_1`          |
| Retention rate (day 7)  | Day-7 retained users as a share of installs.                | Percentage | `af:retention_rate_day_7`          |
| Retention rate (day 30) | Day-30 retained users as a share of installs.               | Percentage | `af:retention_rate_day_30`         |
| Average DAU             | Average daily active users over the reporting period.       | Number     | `af:activity_average_dau`          |
| Average MAU             | Average monthly active users over the reporting period.     | Number     | `af:activity_average_mau`          |
| DAU/MAU rate            | Average DAU divided by average MAU (stickiness).            | Percentage | `af:activity_average_dau_mau_rate` |
| Activity sessions       | Sessions recorded through the Activity (engagement) report. | Number     | `af:activity_sessions`             |

### In-app revenue

<Note>
  Currency values are reported in the app's native currency, which is locked to the data source at creation time.
</Note>

| Metric           | Description                                                | Data type | API Key                      |
| ---------------- | ---------------------------------------------------------- | --------- | ---------------------------- |
| Revenue          | In-app purchase revenue attributed by AppsFlyer.           | Currency  | `af:revenue`                 |
| ARPU (LTV)       | Average revenue per user, on a lifetime-value basis.       | Currency  | `af:arpu_ltv`                |
| Activity revenue | Revenue recorded through the Activity (engagement) report. | Currency  | `af:activity_revenue`        |
| Average ARPDAU   | Average revenue per daily active user.                     | Currency  | `af:activity_average_arpdau` |

### Cost & ROAS

| Metric       | Description                                                                | Data type  | API Key           |
| ------------ | -------------------------------------------------------------------------- | ---------- | ----------------- |
| Total cost   | Ad spend reported to AppsFlyer by connected media sources.                 | Currency   | `af:cost`         |
| Average eCPI | Effective cost per install (cost divided by installs).                     | Currency   | `af:average_ecpi` |
| ROI          | Return on investment (revenue relative to cost), as computed by AppsFlyer. | Percentage | `af:roi`          |

### Dynamic in-app event metrics

For every in-app event mapped in the connected app, the connector generates six metric keys by combining the event name with a fixed set of prefixes. Events are discovered from the app's integration configuration and refreshed roughly once a day. Common event names include `af_purchase`, `af_complete_registration`, and `af_add_to_cart`, so a purchase event surfaces as `af:event_counter_af_purchase`, `af:sales_in_usd_af_purchase`, and so on.

| Pattern                                    | Description                                        | Data type |
| ------------------------------------------ | -------------------------------------------------- | --------- |
| `af:event_counter_{event}`                 | Count of the in-app event.                         | Number    |
| `af:unique_users_{event}`                  | Unique users who triggered the event.              | Number    |
| `af:sales_in_usd_{event}`                  | Revenue attributed to the event (USD).             | Currency  |
| `af:activity_event_counter_{event}`        | Event count from the Activity (engagement) report. | Number    |
| `af:activity_average_unique_users_{event}` | Average unique users from the Activity report.     | Number    |
| `af:activity_sales_in_usd_{event}`         | Event revenue, USD, from the Activity report.      | Currency  |

## Breakdowns

### Campaign structure

| Breakdown    | Description                                  | API Key           |
| ------------ | -------------------------------------------- | ----------------- |
| Media source | The ad network or attribution source.        | `af:media_source` |
| Campaign     | Campaign name.                               | `af:campaign`     |
| Campaign ID  | Media-source campaign identifier.            | `af:campaign_id`  |
| Ad set       | Ad set / ad group name.                      | `af:adset`        |
| Ad set ID    | Ad set identifier.                           | `af:adset_id`     |
| Ad           | Ad name.                                     | `af:ad`           |
| Ad ID        | Ad identifier.                               | `af:ad_id`        |
| App          | The connected AppsFlyer app.                 | `af:app_id`       |
| Agency       | Agency or partner that ran the campaign.     | `af:agency`       |
| Channel      | Channel grouping.                            | `af:channel`      |
| Publisher    | Publisher / site identifier.                 | `af:publisher_id` |
| Keyword      | Keyword, where provided by the media source. | `af:keywords`     |

### Attribution & touchpoints

| Breakdown           | Description                                            | API Key                     |
| ------------------- | ------------------------------------------------------ | --------------------------- |
| Touch type          | Attribution touch type (click or impression).          | `af:touch_type`             |
| Primary attribution | Whether the row is the primary attribution touchpoint. | `af:is_primary_attribution` |
| Install time        | Groups by the recorded install timestamp.              | `af:install_time`           |

### Geography

| Breakdown | Description         | API Key      |
| --------- | ------------------- | ------------ |
| Country   | Country code (ISO). | `af:country` |

### Time & date grouping

<Note>
  Adriel groups AppsFlyer's daily records into these time views for reporting.
</Note>

| Breakdown           | Description                                                  |
| ------------------- | ------------------------------------------------------------ |
| No grouping         | Return one aggregated row with no time split.                |
| Auto time breakdown | Automatically picks the best granularity for the date range. |
| Daily               | Split reports by day.                                        |
| Weekly (Start: Mon) | Split reports by week, starting Monday.                      |
| Monthly             | Split reports by calendar month.                             |
| Quarterly           | Split reports by calendar quarter.                           |
| Yearly              | Split reports by calendar year.                              |

## Limitations

* **Master API access required** — the customer's AppsFlyer account must be authorized for the Master API before a connection can be created.
* **Single app per data source** — each data source maps to exactly one AppsFlyer app.
* **No local cache** — every dashboard query hits AppsFlyer live, subject to AppsFlyer's API rate limits. Persistent throttling usually means another tool is consuming the same token's budget.
* **8-day refresh window** — only the last 8 days are re-fetched per query; this absorbs delayed postbacks, fraud filtering, and SKAdNetwork conversion-value updates.
* **SKAdNetwork postback latency** — SKAdNetwork installs and conversion values arrive on Apple's postback timer, not in real time, so the most recent days settle as postbacks land.
* **Currency locked at creation** — the data source's currency is fixed to the app's native currency at creation time. Changing the app's currency in AppsFlyer afterward requires recreating the data source.
* **2-year history** — Adriel caps history at 2 years (730 days); this is a connector limit, not an AppsFlyer API ceiling.
* **Breakdown cap** — a maximum of 15 breakdowns can be applied to a single query.
* **Cohort analysis is separate** — cohorted retention curves and LTV projections come from the [AppsFlyer Cohort](/data-sources/a-f/appsflyer-cohort/data-reference) connector, which must be set up separately.

## API references

* [AppsFlyer Pull API (Master API) reference](https://dev.appsflyer.com/hc/reference/pull-apis)
* [Master API — aggregate data](https://support.appsflyer.com/hc/en-us/articles/207034346-Master-API-aggregate-data)
* [Managing AppsFlyer API tokens (V2)](https://support.appsflyer.com/hc/en-us/articles/360004562377)

## See also

* [How to connect AppsFlyer to Adriel](/data-sources/a-f/appsflyer/how-to-connect) (paired how-to)
* [AppsFlyer Cohort data reference](/data-sources/a-f/appsflyer-cohort/data-reference) — for cohorted retention and LTV metrics
* [Adjust data reference](/data-sources/a-f/adjust/data-reference) — for another mobile attribution (MMP) data source
