Respectlytics Respect lytics
Menu
Replace AppsFlyer Self-hosted deployment

Replace AppsFlyer with self-hosted analytics

Migrate from AppsFlyer to self-hosted Respectlytics. AGPL-3.0 server, MIT SDK. Helps developers avoid collecting personal data.

Example AppsFlyer call (the "before")

swift Respectlytics
import AppsFlyerLib

// ATT prompt path — required before AppsFlyer reads IDFA:
ATTrackingManager.requestTrackingAuthorization { _ in
    AppsFlyerLib.shared().start()
    AppsFlyerLib.shared().logEvent("af_purchase", withValues: [
        AFEventParamRevenue: price,
        AFEventParamCurrency: "USD",
        AFEventParamContentId: sku,
    ])
}

Regulated industries — telehealth, fintech, government, defence — frequently require that analytics data never leave operator-controlled infrastructure. Respectlytics's self-hosted option (AGPL-3.0 server + MIT-licensed SDKs) lets you run the entire analytics stack on your own hardware. The SDK is the same; only the API endpoint changes.

Remove AppsFlyer cleanly

  1. 1

    Remove the AppsFlyer SDK from your build (AppsFlyerFramework / af-android-sdk / react-native-appsflyer / appsflyer_sdk)

  2. 2

    Remove AppsFlyerLib.shared().start() and logEvent(...) call sites

  3. 3

    Re-check your Info.plist for NSUserTrackingUsageDescription — if no other SDK needs ATT, remove it (Apple flags apps that ship the key without code that calls ATTrackingManager)

  4. 4

    Re-check your Android merged manifest for com.google.android.gms.permission.AD_ID and remove the corresponding <uses-permission> if no other SDK contributes it

  5. 5

    Plan how you'll attribute installs without AppsFlyer — Apple SKAdNetwork + Google Play Install Referrer (both first-party, no SDK needed) cover most cases

AppsFlyer vs Respectlytics — self-hosted deployment

AppsFlyerRespectlytics
Self-hostable— see tool note above (typically no)Yes (AGPL-3.0 server)
Operator-managed database— typically noYes (you choose Postgres deployment)
Air-gapped deployment possibleNoYes
SDK license— variesMIT (permissive)
Server license— typically closedAGPL-3.0 (source-available)

Frequently asked questions

What's the AGPL-3.0 obligation in practice?

If you modify the server source AND offer the modified server as a service to third parties over a network, you must publish your modifications under the same license. Internal self-hosting for your own apps does NOT trigger publication obligations. Consult your legal team for specific applicability.

What infrastructure do we need?

A Linux host (or container) running Python 3.12 + Postgres 14+ + a reverse proxy (nginx / Caddy). The default configuration scales to ~10 million events/day on a 4-vCPU / 8 GB box; larger deployments scale horizontally. See the public README for hardware sizing guidance.

Do we get updates automatically?

No — self-hosted deploys pull the latest source and run migrations on a cadence you control. We publish release notes for each version. No auto-update; you decide when to upgrade.

Are the SDKs AGPL too?

No — SDKs are MIT-licensed. Fork and modify freely with no copyleft obligation. Only the server is AGPL.

Related migration guides

Track what matters. Collect nothing you don't.

Five-field event schema, RAM-only event queue, no IDFA, no AAID, no persistent user IDs. Helps developers avoid collecting personal data in the first place.