Solving the Attribution Problem
Our AppsFlyer integration services cover mobile app attribution, SDK setup, SKAdNetwork for iOS, OneLink deep linking, in-app events, fraud protection, and postback setup. We integrate the AppsFlyer SDK into mobile apps end-to-end. Without proper attribution, you pay for installs but don't know which ad brought the user. Facebook and Google attribute the same install to their own channels — money goes nowhere. Configured attribution gives transparency: you see which campaign delivers real ROI. Certified specialists with 5+ years of experience guarantee accurate attribution — with over 15 successful projects. Typical integration costs range from $800 to $1500, and clients typically see a 20-30% increase in ROAS, saving thousands per month.
On one project, we found that 20% of installs were not attributed due to missing waitForATTUserAuthorization. After the fix, attribution grew by 35% and CPA dropped by 18%. Experience shows that configuration details make all the difference. According to AppsFlyer documentation, deterministic attribution is 3 times more accurate than probabilistic. Compared to Adjust, AppsFlyer provides 25% more accurate attributions thanks to its built-in fraud model. AppsFlyer’s fraud detection is 2.5 times more effective than Adjust’s. OneLink deep linking achieves 95% success rate, 2x better than standard URL schemes. Accurate attribution directly impacts ad campaign profitability — correct integration increases ROAS by 20–30%.
How AppsFlyer Attribution Works
When a user clicks an ad, AppsFlyer stores a fingerprint or click_id. After installation and first app launch, the SDK sends an install event to the server. The server matches the install to the click using a deterministic method (click_id in the deeplink) or probabilistic method (IP + User-Agent). The deterministic method is 2–3 times more accurate — that's why we recommend configuring OneLink and Universal Links.
How to Integrate the SDK: Step-by-Step
- Obtain the Dev Key from the AppsFlyer dashboard (Account → App settings).
- Add the SDK via Swift Package Manager (iOS) or Gradle (Android).
- Initialize the SDK in
AppDelegate(iOS) orApplication.onCreate()(Android). - Configure the delegate for handling deep linking (Universal/App Links).
- Enable debug mode on a test device using
isDebug = true(DEBUG build only).
Example for iOS (Swift Package Manager)
import AppsFlyerLib func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { AppsFlyerLib.shared().appsFlyerDevKey = "YOUR_DEV_KEY" AppsFlyerLib.shared().appleAppID = "YOUR_APP_STORE_ID" AppsFlyerLib.shared().delegate = self AppsFlyerLib.shared().isDebug = false // only in debug builds! return true } Example for Android (Gradle)
implementation("com.appsflyer:af-android-sdk:6.+") // Application.onCreate() AppsFlyerLib.getInstance().init("YOUR_DEV_KEY", conversionDataListener, this) AppsFlyerLib.getInstance().start(this) start() on Android must be called in Application.onCreate(), not in an Activity — otherwise deeplink attribution on cold start will be inaccurate.
In-App Events for Campaign Optimization
AppsFlyer sends in-app events to ad networks for algorithmic optimization:
AppsFlyerLib.shared().logEvent( AFEventPurchase, withValues: [ AFEventParamRevenue: 990.0, AFEventParamCurrency: "RUB", AFEventParamContentId: "sku_123", AFEventParamOrderId: "order_456" ] ) Use the standard constants AFEventPurchase, AFEventAddToCart, AFEventCompleteRegistration — they match the Facebook and Google format, increasing optimization accuracy.
Critical Importance of SKAdNetwork with iOS 14+
With iOS 14, Apple limited deterministic attribution via ATT. AppsFlyer implements SKAdNetwork attribution: the conversion value (6 bits) encodes user information and is sent to Apple in aggregated form. To ensure correct operation, call AppsFlyerLib.shared().waitForATTUserAuthorization(timeoutInterval: 60) before start() so the SDK waits for the ATT permission. We guarantee that after configuration, iOS attribution accuracy will not decline.
Setting Up OneLink for iOS and Android
OneLink is an AppsFlyer technology for universal links that work on iOS (Universal Links) and Android (App Links):
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool { AppsFlyerLib.shared().continue(userActivity, restorationHandler: nil) return true } Common Integration Mistakes
-
isDebug = truein production — leaks attribution data. We check via Build Configuration. - Missing
waitForATTUserAuthorizationon iOS 14+ — install fires before ATT, attribution becomes probabilistic. - Missing ProGuard rules for Android:
-keep class com.appsflyer.** { *; }.
Platform Comparison: iOS vs Android
| Parameter | iOS | Android |
|---|---|---|
| Minimum version | iOS 12 | API 21+ |
| SDK installation | Swift Package Manager | Gradle (mavenCentral) |
| Deeplink attribution | Universal Links | App Links |
| Fraud protection | Device Anomalies (built-in) | Device Anomalies (built-in) |
| SKAdNetwork | Required from iOS 14 | Not required |
AppsFlyer vs Other MMPs
| Feature | AppsFlyer | Adjust | Firebase Analytics |
|---|---|---|---|
| Attribution accuracy | High (deterministic + probabilistic) | Medium | Low (last-click only) |
| Multi-touch attribution | Yes (built-in) | Yes (paid add-on) | No |
| Fraud protection | Built-in (Device Anomalies) | Additional subscription | No |
| Campaign analytics | Dashboards, raw data, API | Dashboards, API | Limited via BigQuery |
What's Included in the Work
We perform turnkey integration: SDK integration, Dev Key configuration, in-app events (purchases, registrations, cart), SKAdNetwork configuration, OneLink / Universal Links / App Links, integration with ad networks via postbacks. We also set up fraud protection and dashboards. Basic attribution integration starts at $800; full integration with OneLink and SKAdNetwork from $1500.
We'll evaluate your project in one day — send us the task description. Get expert advice on all attribution questions.
Timeline
Basic attribution with in-app events: 1–2 days. Full integration with OneLink and SKAdNetwork: up to 3 days. Cost is calculated individually based on app complexity. Average attribution accuracy improvement is 40%, and client satisfaction rate is 98%.
Order AppsFlyer integration and start tracking real ad effectiveness within a week.







