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

# Adjust

> Connect Adjust to pull install attribution, cohort analytics, and campaign data into FloKit.

## What FloKit reads from Adjust

Once connected, FloKit ingests the following Adjust attribution data:

* Install attribution: campaign, adgroup, creative, network, country, and sub-publisher
* Adjust tracker tokens and network source names
* `adid` (Adjust's device identifier) and `customer_user_id` (your app's user ID)
* Organic vs. paid install classification
* Re-attribution and re-engagement events
* Sub-publisher and placement-level breakdowns where available

FloKit does not read raw device identifiers or access user-level data beyond what is required to join attribution to subscription outcomes.

***

## Required access

**API token:** Adjust API token. Found in **Adjust Dashboard → Account Settings → Your Profile → API Token**.

**Required identifiers:**

* `customer_user_id` — your app's internal user ID, set in the Adjust SDK via `setPartnerSharing` or via the S2S install endpoint. Must match the identifier you send to RevenueCat or Adapty to enable cross-platform joins.
* `adid` — Adjust's device-level identifier, used as a fallback join key when `customer_user_id` is not set.

***

## Setup

<Steps>
  <Step title="Copy your Adjust API token">
    In **Adjust Dashboard → Account Settings → Your Profile**, scroll to **API Token** and copy the value. This is a personal API token scoped to your Adjust account.
  </Step>

  <Step title="Add Adjust in FloKit">
    In **FloKit → Settings → Integrations → Attribution**, select **Adjust**. Enter your Adjust app token and API token.

    The **app token** is a short alphanumeric string found in **Adjust Dashboard → AppView → App Settings** (e.g. `abc1d2efgh3i`). This is different from your API token.

    If you have both iOS and Android apps, add them as separate integrations using the app token for each.
  </Step>

  <Step title="Configure S2S callbacks (optional)">
    For real-time install delivery, add a FloKit S2S callback in **Adjust → AppView → S2S Settings**. Paste the FloKit callback URL shown in the integration settings panel. Enable callbacks for install and re-attribution events.

    S2S callbacks are optional — FloKit also pulls attribution data via the Adjust pull API. Callbacks reduce latency for same-day attribution joins.
  </Step>

  <Step title="Map your user identifier">
    In the FloKit Adjust settings, confirm the join key. In most setups this is `customer_user_id`, which maps to your RevenueCat `app_user_id` or Adapty `customer_user_id`. If your app uses a different internal identifier, specify the mapping here.
  </Step>

  <Step title="Wait for attribution backfill">
    FloKit begins pulling attribution data for the past 30–90 days immediately after the tokens are saved. Backfill progress is visible in **FloKit → Data → Sources → Adjust**.
  </Step>
</Steps>

***

## Validation checklist

* [ ] Adjust app token and API token added to FloKit
* [ ] Attribution events visible in **FloKit → Data → Events** (event type: `install_attributed`)
* [ ] `customer_user_id` resolving in **FloKit → Data → Identity**
* [ ] Campaign names and network source visible in **FloKit → Reports → Payback**
* [ ] S2S callbacks delivering (if configured — check **FloKit → Data → Sources → Adjust → Recent events**)

***

## Common issues

**No attribution data appearing**

Confirm the app token is the short alphanumeric identifier from AppView, not the API token. These are two different values and are easy to mix up. Also verify that your Adjust API token has access to the app — tokens are account-scoped but some accounts restrict app-level access.

**`customer_user_id` not matching subscription platform**

FloKit joins `customer_user_id` from Adjust to `app_user_id` in RevenueCat or `customer_user_id` in Adapty. If the Adjust SDK does not receive your internal user ID at install or login time — for example, if users complete onboarding after the install event fires — the join will fail. Use server-to-server attribution or delayed ID assignment. See [Identity mapping](/send-data/identity-mapping).

**Attribution window mismatch**

Adjust's default click-through attribution window is 7 days; view-through is 1 day. Installs outside these windows are classified as organic. If your paywall or trial-start event fires more than 7 days after install, adjust attribution windows in **Adjust → AppView → Attribution Settings**.

**Sub-publisher data missing**

Sub-publisher and placement breakdowns require that your media partners pass sub-publisher parameters in click URLs. This is network-dependent — check your Adjust partner configuration for each network.

***

## What this unlocks in FloKit

* CAC by campaign, adgroup, creative, network, and country
* ROAS and payback curves tied to Adjust attribution
* Trial and subscription conversion rates by campaign source
* Sub-publisher level payback when network data is available
* Re-attribution campaign performance analysis
