Before you start
- Adapty API key available (Adapty → App Settings → API Keys).
- Adjust API token available (Adjust → Account Settings → API Credentials).
- Adapty
customer_user_idis set to your backend user ID. - The same backend user ID is sent to Adjust as
customer_user_id.
Steps
Connect Adapty
Go to FloKit → Settings → Integrations → Adapty.Enter your Adapty API key. FloKit uses this to pull subscription event history via the Adapty REST API.Enable the Adapty webhook:
In Adapty, go to App Settings → Integrations and add FloKit as a webhook destination:
- URL:
https://api.flokit.ai/v1/integrations/adapty/webhook - Events: subscription_renewed, subscription_cancelled, subscription_expired, trial_started, trial_converted, non_subscription_purchase, refund.
Connect Adjust
Go to FloKit → Settings → Integrations → Adjust.Enter:
- API token — your Adjust API token (found in Account Settings → API Credentials).
- App token — your Adjust app token (found in your Adjust dashboard for the specific app).
customer_user_id — via the Adjust Reporting API.Verify identity join
Go to FloKit → Data → Identity.FloKit joins Adapty
customer_user_id to Adjust customer_user_id. These must be the same backend user ID for the join to work.The most common integration issue with Adapty + Adjust is a user ID mismatch. Adapty uses customer_user_id, set via Adapty.identify(). Adjust uses customer_user_id, set via Adjust.addSessionCallbackParameter("customer_user_id", ...) or the Adjust SDK’s setExternalDeviceId(). If these are not set to the same backend user ID — or if either is unset — FloKit cannot match subscription events to attribution.To diagnose:- Check Adapty → Customers for a known test user. Verify
customer_user_idis your backend user ID and not null. - Check Adjust → Raw Data Export for recent installs. Verify
customer_user_idis populated.
Wait for historical backfill
After both integrations are connected, FloKit begins a historical backfill of the past 90 days. This typically completes within 2–4 hours.Monitor progress at FloKit → Data → Sources.
Validate the payback report
Go to Reports → Payback. Set the date range to the past 30 days.Cross-check against your existing reporting:
- CAC: compare to your internal acquisition cost report. Expected tolerance: ±5%.
- Trial conversion rate: compare to Adapty → Analytics → Conversion. Expected tolerance: ±2%.
- Renewal rate: compare to Adapty → Analytics → Retention. Expected tolerance: ±2%.
Validation checklist
- Adapty API key accepted, historical backfill complete
- Adjust API token accepted, attribution data visible
- Identity join rate above 90%
-
customer_user_idpopulated in both Adapty and Adjust for test users - CAC within ±5% of your existing report
- Trial conversion within ±2% of Adapty dashboard
Troubleshooting
Join rate is low Confirm thatAdapty.identify() is called immediately after user authentication — not deferred until a subscription event. Confirm that Adjust’s customer_user_id is set at the same time with the same value. If users can install and trial the app before authenticating, you may have a gap for those users — see Identity mapping for server-side resolution options.
Adapty webhook events not arriving
Verify the webhook URL is exactly https://api.flokit.ai/v1/integrations/adapty/webhook. Check delivery status under FloKit → Data → Sources → Adapty → Webhook log.
Adjust attribution data is empty for some installs
Adjust’s customer_user_id must be set before the first Adjust session is sent. If authentication happens after the first session, Adjust may not have captured the ID for those installs. See Identity mapping.