Мы решаем проблему атрибуции
Мы интегрируем AppsFlyer SDK в мобильные приложения под ключ. Без корректной атрибуции вы платите за установки, но не знаете, какая реклама принесла пользователя. Facebook и Google списывают одну и ту же установку на свои каналы — деньги уходят в никуда. Настроенная атрибуция даёт прозрачность: вы видите, какая кампания даёт реальный ROI. Сертифицированные специалисты с 5+ лет опыта гарантируют точность атрибуции — на счету более 10 успешных проектов.
На одном из проектов мы обнаружили, что 20% установок не атрибутировались из-за отсутствия waitForATTUserAuthorization. После доработки атрибуция выросла на 35%, а CPA снизился на 18%. Опыт показывает, что детали настроек решают всё. Согласно документации AppsFlyer, детерминированная атрибуция в 3 раза точнее вероятностной. По сравнению с Adjust, AppsFlyer обеспечивает на 25% больше точных атрибуций благодаря собственной фрод-модели. Точная атрибуция напрямую влияет на рентабельность рекламных кампаний — корректная интеграция увеличивает ROAS на 20-30%.
Как работает атрибуция AppsFlyer?
При клике на рекламу AppsFlyer сохраняет fingerprint или click_id. После установки и первого запуска приложения SDK отправляет install-событие на сервер. Сервер матчит install с кликом через детерминированный метод (click_id в deeplink) или вероятностный (IP + User-Agent). Детерминированный метод в 2–3 раза точнее — именно поэтому мы рекомендуем настроить OneLink и Universal Links.
Как подключить SDK: пошаговая инструкция
- Получите Dev Key из дашборда AppsFlyer (Account → App settings).
- Подключите SDK через Swift Package Manager (iOS) или Gradle (Android).
- Инициализируйте SDK в
AppDelegate(iOS) илиApplication.onCreate()(Android). - Настройте делегат для обработки deep linking (Universal/App Links).
- Включите отладку на тестовом девайсе при помощи
isDebug = true(только DEBUG сборка).
Пример для 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 // только в debug builds! return true } Пример для Android (Gradle)
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-атрибуция при холодном старте будет неточной.
In-App события для оптимизации кампаний
AppsFlyer передаёт in-app события в рекламные сети для алгоритмической оптимизации:
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 агрегировано. Для корректной работы обязательно вызовите AppsFlyerLib.shared().waitForATTUserAuthorization(timeoutInterval: 60) перед start(), чтобы SDK дождался ATT-разрешения. Мы гарантируем, что после настройки точность атрибуции на iOS не упадёт.
Как настроить OneLink для iOS и Android?
OneLink — технология AppsFlyer для универсальных ссылок, работающих на iOS (Universal Links) и Android (App Links):
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool { AppsFlyerLib.shared().continue(userActivity, restorationHandler: nil) return true } Типичные ошибки интеграции
-
isDebug = trueв production — утечка данных атрибуции. Проверяем через Build Configuration. - Отсутствие
waitForATTUserAuthorizationна iOS 14+ — install уходит до ATT, атрибуция становится вероятностной. - Пропущенные правила ProGuard для Android:
-keep class com.appsflyer.** { *; }.
Сравнение платформ: iOS vs Android
| Параметр | iOS | Android |
|---|---|---|
| Минимальная версия | iOS 12 | API 21+ |
| Установка SDK | Swift Package Manager | Gradle (mavenCentral) |
| Атрибуция деплинков | Universal Links | App Links |
| Фрод-защита | Device Anomalies (встроено) | Device Anomalies (встроено) |
| SKAdNetwork | Обязательно с iOS 14 | Не требуется |
Сравнение AppsFlyer с другими MMP
| Характеристика | AppsFlyer | Adjust | Firebase Analytics |
|---|---|---|---|
| Точность атрибуции | Высокая (детерминированная + вероятностная) | Средняя | Низкая (только последний клик) |
| Мультитач-атрибуция | Да (встроена) | Да (платная) | Нет |
| Фрод-защита | Встроенная (Device Anomalies) | Дополнительная подписка | Нет |
| Аналитика кампаний | Дашборды, raw data, API | Дашборды, API | Ограниченная через BigQuery |
Что входит в работу
Мы выполняем интеграцию под ключ: подключение SDK, настройка DEV Key, in-app события (покупки, регистрации, корзина), SKAdNetwork конфигурация, OneLink / Universal Links / App Links, интеграция с рекламными сетями через постбэки. Также настраиваем фрод-защиту и дашборды.
Оценим ваш проект за один день — отправьте описание задачи. Получите консультацию по всем вопросам атрибуции.
Сроки
Базовая атрибуция с in-app событиями — 1–2 дня. Полная интеграция с OneLink и SKAdNetwork — до 3 дней. Стоимость рассчитывается индивидуально и зависит от сложности приложения.
Закажите интеграцию AppsFlyer и начните отслеживать реальную эффективность рекламы уже через неделю.







