What FloKit reads from AppsFlyer
Once connected, FloKit ingests the following AppsFlyer attribution data:- Install attribution: campaign, ad set, creative, channel, country, and keyword
- Attribution model: last-touch, view-through, and probabilistic
appsflyer_id(device-level identifier) andcustomer_user_id(your app’s user ID)- Organic vs. paid install classification
- Retargeting attribution and re-engagement events
- Sub-publisher and sub-site breakdowns where available
Required access
API token: AppsFlyer V2.0 API token. Found in AppsFlyer Dashboard → My Profile → API Tokens. The V2.0 token is required. The older V1 token does not support the pull API endpoints FloKit uses. Required identifiers:customer_user_id— must match theapp_user_id(RevenueCat) orcustomer_user_id(Adapty) you use in your subscription platform. This is how FloKit joins attribution to subscription outcomes.appsflyer_id— device-level identifier, used as a fallback join key.
customer_user_id in the AppsFlyer SDK, this join is automatic. If not, see Identity mapping.
Setup
Copy your AppsFlyer V2.0 API token
In AppsFlyer Dashboard → My Profile, scroll to API Tokens and copy the V2.0 token. If V2.0 is not visible, contact your AppsFlyer account manager — it may need to be enabled on your plan.
Add AppsFlyer in FloKit
In FloKit → Settings → Integrations → Attribution, select AppsFlyer. Enter your AppsFlyer app ID and API token.
- iOS app ID format:
id123456789(numeric App Store ID prefixed withid) - Android app ID format:
com.yourapp(package name)
Map your user identifier
In the FloKit AppsFlyer settings, confirm which field to use as 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 you use a different identifier, specify the mapping here.Validation checklist
- AppsFlyer app ID and V2.0 API token added to FloKit
- Attribution events visible in FloKit → Data → Events (event type:
install_attributed) -
customer_user_idresolving in FloKit → Data → Identity - Campaign names and ad set IDs visible in FloKit → Reports → Payback
- Organic vs. paid split visible in FloKit → Reports → Acquisition
Common issues
No attribution data appearing Check that AppsFlyer V2.0 API access is enabled on your account plan. V2.0 pull API access is not available on all AppsFlyer tiers. Also confirm that the app ID format matches exactly — a missingid prefix on an iOS app ID will cause all requests to fail silently.
customer_user_id not matching subscription platform
FloKit joins customer_user_id from AppsFlyer to app_user_id in RevenueCat (or customer_user_id in Adapty). If your AppsFlyer SDK does not call setCustomerUserId() with your internal user ID at install or login time, the join will fail and installs will appear unattributed in payback reports. See Identity mapping.
Attribution appears as organic for recent installs
Installs outside the attribution lookback window — default 7 days for click-through, 24 hours for view-through — are classified as organic by AppsFlyer and will appear as organic in FloKit. Adjust attribution windows in AppsFlyer → Configuration → Integrated Partners if your conversion funnel is longer than 7 days.
Retargeting attribution not appearing
Retargeting events require enabling re-attribution and re-engagement tracking in AppsFlyer. These are separate from install attribution and must be configured per campaign in AppsFlyer before FloKit can receive them.
What this unlocks in FloKit
- CAC by campaign, ad set, creative, and country
- ROAS and payback curves tied to attribution source
- Trial start and subscription conversion rates segmented by campaign
- Organic vs. paid LTV comparison
- Creative-level payback analysis when creative IDs are present in attribution data