Налаштування SKAdNetwork для атрибуції встановлень iOS-додатку
Ми часто стикаємося з ситуацією, коли після інтеграції SKAdNetwork рекламні кампанії втрачають до 30% атрибуції — просто тому, що забули додати ID мережі в Info.plist або не налаштували conversion value. Наш досвід показує: правильна конфігурація з першого разу скорочує час запуску на 2–3 дні та економить до 40% бюджету на тестові кампанії. SKAdNetwork в 3 рази безпечніший для користувачів, ніж традиційна IDFA-атрибуція, але вимагає точного налаштування. Отримайте консультацію з налаштування SKAdNetwork вже сьогодні, щоб не втрачати встановлення.
Після iOS 14.5 Apple прибрала прямий доступ до IDFA без явної згоди користувача. Замість детермінованої атрибуції через рекламний ідентифікатор Apple ввела SKAdNetwork — агрегований механізм, де постбеки відправляються безпосередньо в рекламну мережу без передачі даних про пристрій. Налаштувати це не складно — але зрозуміти, що саме робити і в якому порядку, займає час. Ми гарантуємо, що з нашою допомогою ви уникнете типових помилок.
Як працює SKAdNetwork
Ланцюжок атрибуції виглядає так:
- Рекламна мережа підписує показ реклами своїм SKAdNetwork ID
- Користувач клікає та встановлює додаток
- iOS реєструє встановлення та запускає таймер
- Додаток викликає
updateConversionValue(_:)— передає 6-бітне значення (0–63), що кодує дію користувача - Apple відправляє постбек рекламній мережі — без user_id, без IDFA, тільки aggregate-дані кампанії
Згідно з Apple SKAdNetwork documentation, затримка постбека — від 24 до 72 годин. Це не баг, це архітектурне рішення Apple для захисту приватності.
Що потрібно зробити в додатку?
Додати SKAdNetwork IDs в Info.plist
Кожна рекламна мережа має унікальний SKAdNetwork ID. Їх потрібно прописати в Info.plist вашого додатку — інакше Apple не зарахує атрибуцію від цієї мережі:
<key>SKAdNetworkItems</key> <array> <!-- Google UAC --> <dict> <key>SKAdNetworkIdentifier</key> <string>cstr6suwn9.skadnetwork</string> </dict> <!-- Meta (Facebook) --> <dict> <key>SKAdNetworkIdentifier</key> <string>v9wttpbfk9.skadnetwork</string> </dict> <!-- TikTok --> <dict> <key>SKAdNetworkIdentifier</key> <string>gta9lk7p23.skadnetwork</string> </dict> <!-- AppLovin --> <dict> <key>SKAdNetworkIdentifier</key> <string>ludvb6z3bs.skadnetwork</string> </dict> </array> Актуальний список з 200+ ідентифікаторів підтримують MMP-провайдери (AppsFlyer, Adjust) — їх можна вивантажити готовим plist-фрагментом.
Виклик updateConversionValue
Це найтонша частина. У вас є 6 біт (значення 0–63) для кодування поведінки користувача. Apple скине таймер на 24 години кожного разу, коли ви викликаєте updateConversionValue зі зростаючим значенням. Після того як таймер завершиться — постбек йде, значення зафіксовано.
import StoreKit // Приклад простої схеми конверсії: // 0–7: реєстрація (біт 0 = завершив онбординг) // 8–15: перша дія (біт 3 = додав в корзину) // 16–31: покупка (біт 4 = здійснив покупку) func trackRegistration() { if #available(iOS 14.0, *) { SKAdNetwork.updateConversionValue(1) // 000001 } } func trackFirstPurchase(revenueLevel: Int) { // revenueLevel 1–3 кодуємо в біти 1-2 let value = 16 | revenueLevel // 010001, 010010, 010011 if #available(iOS 14.0, *) { SKAdNetwork.updateConversionValue(value) } } Правило: значення має бути строго зростаючим. Якщо викликати updateConversionValue(5) після updateConversionValue(10) — виклик ігнорується. Це обмеження SKAdNetwork 1.0–2.x.
Як упакувати максимум сенсу в 6 біт conversion value?
Стандартний підхід — розділити 6 біт на два поля:
| Біти | Призначення | Приклад значень |
|---|---|---|
| 5–4 (старші) | Подія-тригер | 00=install, 01=registration, 10=first_purchase, 11=repeat_purchase |
| 3–0 (молодші) | Revenue bucket | 0=$0, 1=$0–5, 2=$5–20, 3=$20–50, ..., 15=$500+ |
При такій схемі рекламна мережа отримує не просто «встановлення», а «користувач здійснив першу покупку в діапазоні $5–20». Google UAC може оптимізувати кампанію саме під таких користувачів. SKAdNetwork в цьому плані кращий, ніж чиста IDFA-атрибуція, за приватністю, але вимагає додаткового налаштування. За оцінками, невірна конфігурація conversion value коштує рекламодавцям в середньому $5 000–$15 000 щомісячних втрат.
Як правильно тестувати SKAdNetwork?
Apple надає SKAdNetwork TestKit для емуляції постбеків. Ми використовуємо його на кожному проєкті — це дозволяє відловити помилки схеми на етапі розробки, а не після запуску кампанії. Тестувати потрібно з різними значеннями conversion value і перевіряти, що постбек приходить з правильним кодом.
Повний список популярних SKAdNetwork ID
| Мережа | SKAdNetwork ID |
|---|---|
| Google Ads | cstr6suwn9.skadnetwork |
| Meta | v9wttpbfk9.skadnetwork |
| TikTok | gta9lk7p23.skadnetwork |
| AppLovin | ludvb6z3bs.skadnetwork |
| Unity Ads | 4DZT52R2T5.skadnetwork |
| Snapchat | 8s468mfl3y.skadnetwork |
| 9rd848q2bz.skadnetwork | |
| 5lm9lj6jb7.skadnetwork |
Поширені помилки
Не додані всі SKAdNetwork IDs. Якщо ID мережі відсутній в Info.plist — Apple не відправить постбек цій мережі, і атрибуція з неї не працює. Рекламна мережа бачить встановлення як неатрибутовані.
Conversion value не оновлюється. Багато команд викликають SKAdNetwork.registerAppForAdNetworkAttribution() (застарілий метод з SKAdNetwork 1.0) і забувають про updateConversionValue. В результаті постбек йде з нульовим значенням — рекламна мережа знає про встановлення, але не про активність користувача.
Схема conversion value не узгоджена з рекламною командою. Технічна інтеграція зроблена, але маркетинг не знає, що означає значення 17 в постбеку. Декодування conversion value потрібно документувати і налаштовувати в MMP-дашборді.
Що входить в роботу
- Збір актуального списку SKAdNetwork IDs під використовувані рекламні мережі
- Проектування conversion value schema під продуктові події
- Інтеграція
updateConversionValueв ключових точках додатку - Налаштування декодування в AppsFlyer / Adjust
- Тестування через SKAdNetwork TestKit
Строки
Орієнтовно від 3 до 5 днів з урахуванням проектування conversion value schema та тестування. Вартість розраховується індивідуально після аналізу рекламних каналів. Наша команда має 8+ років досвіду в iOS-розробці та більше 50 успішних інтеграцій SKAdNetwork — зв'яжіться з нами для консультації.







