Інтеграція аналітики AppsFlyer у мобільний додаток
AppsFlyer — це перш за все MMP (Mobile Measurement Partner), а не просто аналітика. Його ключова задача — атрибуція: визначити, з якої рекламної мережі прийшов користувач, який встановив додаток. Без MMP не можна коректно порівняти ROI Facebook Ads та Google UAC: обидві платформи будуть претендувати на одного користувача.
Як працює атрибуція AppsFlyer
При кліку на рекламу AppsFlyer зберігає fingerprint або click_id. Після встановлення та першого запуску додатка SDK відправляє install-подію на сервер AppsFlyer. Сервер матчить install з кліком через детермінований метод (click_id в deeplink) або вірогідністний (IP + User-Agent). Результат: точна інформація про кампанію, адгрупу та оголошення, які привели користувача.
Підключення SDK
iOS через Swift Package Manager — AppsFlyerLib-iOS:
import AppsFlyerLib
// AppDelegate
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 // тільки debug builds!
return true
}
// SceneDelegate або applicationDidBecomeActive
func applicationDidBecomeActive(_ application: UIApplication) {
AppsFlyerLib.shared().start()
}
Android:
implementation("com.appsflyer:af-android-sdk:6.+")
// Application.onCreate()
AppsFlyerLib.getInstance().init("YOUR_DEV_KEY", conversionDataListener, this)
AppsFlyerLib.getInstance().start(this)
start() на Android повинен викликатися в Application.onCreate(), не в Activity — інакше deeplink-атрибуція при холодному старті з deeplink буде неточною.
In-app события для оптимізації кампаній
AppsFlyer передає in-app события у рекламні мережі для алгоритмічної оптимізації (Conversions API, SKAdNetwork на iOS):
AppsFlyerLib.shared().logEvent(
AFEventPurchase,
withValues: [
AFEventParamRevenue: 990.0,
AFEventParamCurrency: "RUB",
AFEventParamContentId: "sku_123",
AFEventParamOrderId: "order_456"
]
)
Стандартні константи AFEventPurchase, AFEventAddToCart, AFEventCompleteRegistration — це рядки, які збігаються з форматом Facebook та Google. Використовуйте їх замість довільних імен, щоб рекламні мережі коректно інтерпретували события.
SKAdNetwork та iOS 14+
Починаючи з iOS 14, Apple обмежила детермінізовану атрибуцію через ATT. AppsFlyer реалізує SKAdNetwork-атрибуцію: конверсійне значення (6 бітів) кодує інформацію про користувача та передається Apple агреговано. AppsFlyer автоматично керує updateConversionValue через конфігурацію в панелі управління — вручну це реалізовувати не потрібно.
// Для Conversion Value необхідно викликати start() з ATT-статусом
AppsFlyerLib.shared().waitForATTUserAuthorization(timeoutInterval: 60)
// ... після запиту ATT:
AppsFlyerLib.shared().start()
Deeplink та OneLink
OneLink — технологія AppsFlyer для універсальних посилань, які працюють як на iOS (Universal Links), так і на Android (App Links) та при відсутності додатка ведуть на сторінку встановлення:
// AppDelegate
func application(_ application: UIApplication,
continue userActivity: NSUserActivity,
restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
AppsFlyerLib.shared().continue(userActivity, restorationHandler: nil)
return true
}
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:]) -> Bool {
AppsFlyerLib.shared().handleOpen(url, options: options)
return true
}
Типові помилки при інтеграції
isDebug = true в production — пряма витічка даних атрибуції (debug-трафік попадає в окремий потік і не рахується в реальних кампаніях). Обов'язково перевіряємо через Build Configuration.
Відсутність waitForATTUserAuthorization на iOS 14+: без паузи AppsFlyer відправить install до отримання ATT-дозволу, і атрибуція буде вірогідністною навіть якщо користувач потім погодився.
Що входить до роботи
- Підключення SDK для iOS/Android
- Налаштування DEV Key та App ID
- In-app события для ключових конверсій
- Конфігурація SKAdNetwork для iOS 14+
- Налаштування OneLink / Universal Links / App Links
- Інтеграція з рекламними мережами через постбеки (за потребою)
Сроки
Базова атрибуція з in-app подіями: 1–2 дні. Повна інтеграція з OneLink та SKAdNetwork: до 3 днів. Вартість розраховується індивідуально.







