Ми часто стикаємося з ситуацією: команда запускає рекламну кампанію в чотирьох каналах, але не може зрозуміти, який із них приносить реальні встановлення та покупки. Витрати вивантажують вручну, дані розрізнені, а SKAdNetwork від Apple приховує когортну статистику на рівні пристроїв. Singular — Marketing Analytics Platform, яка вирішує цю проблему: вона агрегує витрати з Meta Ads, Google Ads, TikTok та Apple Search Ads, автоматично рахує ROAS і дає єдину панель управління. На відміну від звичайних MMP, Singular обробляє дані в 3 рази швидше та не потребує ручного введення витрат. Наша команда з 5-річним досвідом успішно інтегрувала Singular у 50+ проектів, і середній термін впровадження — до 5 днів з окупністю за перший місяць кампанії.
Чому Singular, а не стандартний MMP?
Більшість MMP (AppsFlyer, Adjust) фокусуються лише на атрибуції встановлень. Singular працює на рівень вище: імпортує дані про витрати з рекламних кабінетів і рахує маржинальний прибуток без ручних звітів. Вбудований Conversion Studio дозволяє керувати conversion values SKAdNetwork з дашборда, а не через конфігураційні файли Xcode. Для великих рекламодавців цей підхід скорочує час на підготовку звітів у 3 рази. Як зазначено в документації Singular, автоматичний імпорт витрат через OAuth виключає помилки ручного введення.
Підключення SDK
iOS
// SPM: https://github.com/singular-labs/Singular-Swift-Package import Singular // AppDelegate func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { let config = SingularConfig(apiKey: "API_KEY", andSecret: "API_SECRET") config?.skAdNetworkEnabled = true config?.waitForTrackingAuthorizationWithTimeoutInterval = 300 // 5 хвилин на запит ATT Singular.start(config) return true } waitForTrackingAuthorizationWithTimeoutInterval — критичний параметр. Якщо SDK стартує до відповіді користувача на ATT, conversion values прив'язуються до анонімної сесії. 300 секунд дає достатньо часу для pre-prompt і системного діалогу. Ми гарантуємо, що тайм-аут налаштований з урахуванням вашого UX-дизайну.
Android
implementation("com.singular.sdk:singular_sdk:12.+") val config = SingularConfig("API_KEY", "API_SECRET") .withSessionTimeoutInSec(60) .withFCMDeviceToken(fcmToken) // для push-атрибуції Singular.init(this, config) withFCMDeviceToken атрибутує встановлення через push-кампанії — користувач отримав push, встановив застосунок, Singular пов'язує події. Наші інженери перевіряють правильність роботи push-атрибуції на етапі тестування.
Налаштування подій та SKAdNetwork
Singular надає стандартні події, які автоматично мапляться на формати Meta, Google, TikTok:
// Покупка Singular.revenue("USD", amount: 9.99, productSKU: "premium_monthly", productName: "Premium Subscription", productCategory: "Subscription", quantity: 1, receipt: receiptData) // Кастомна подія Singular.event("level_complete", withArgs: [ "level": 15, "score": 8420, "time_spent": 142 ]) Singular.revenue з receipt запускає верифікацію покупок на стороні Singular. Фальшиві транзакції відсікаються до потрапляння в статистику. Для високої точності ROAS ми рекомендуємо передавати всі revenue події, включаючи підписки (типова помилка — передавати лише першу покупку).
Як налаштувати SKAdNetwork з нуля?
Singular керує conversion schema через дашборд — Conversion Studio. Виконайте наступні кроки:
- Відкрийте Conversion Studio в дашборді Singular.
- Створіть нову схему, вказавши вікно конверсії (6–24 години).
- Визначте конверсійні значення для ключових подій (встановлення, реєстрація, покупка).
- Запустіть тестову кампанію для калібрування.
- Фіналізуйте схему перед запуском масових кампаній.
Важно: схему потрібно фіналізувати до запуску — якщо змінити її після перших встановлень, дані по них залишаться неповними. У нашому сертифікованому процесі ми завжди створюємо схему на етапі тестової кампанії.
Deeplink-атрибуція
// Universal Links func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool { if let url = userActivity.webpageURL { Singular.continueUserActivity(userActivity) { deeplink, error in if let path = deeplink?.passthrough { NavigationRouter.shared.handleDeeplink(path) } } } return true } Singular підтримує Singular Links — аналог Branch Links з трекінгом кліку. Створюються в дашборді, передаються в оголошення. Ми налаштовуємо Universal Links (iOS) та App Links (Android) за 1 день.
Інтеграція витрат з рекламних кабінетів
Це ключова особливість, недоступна в базових MMP. У Singular → Integrations підключаємо акаунти Meta, Google, Apple Search Ads, TikTok через OAuth або API-ключі. Після цього дашборд показує єдину розбивку:
| Канал | Installs | Cost | Revenue | ROAS |
|---|---|---|---|---|
| Meta Ads | 1 240 | $3 100 | $4 960 | 1.60x |
| Apple Search Ads | 890 | $2 450 | $5 340 | 2.18x |
| TikTok | 560 | $1 800 | $1 960 | 1.09x |
Дані оновлюються щодня. Для точного ROAS важливо передавати всі revenue події — інакше цифри будуть занижені.
Типові проблеми при інтеграції
- SKAdNetwork conversion values не оновлюються. Conversion Studio налаштовується до запуску кампаній — це обов'язково для чистоти даних. Якщо схема створена постфактум, конверсії першої когорти втрачені.
- Дублювання подій з Firebase. Якщо в проекті вже стоїть Firebase Analytics, однакові події не повинні йти двічі — Singular не вміє дедуплікувати автоматично. Ми налаштовуємо фільтри на стороні Singular або відключаємо дублюючі події в Firebase.
Порівняння: Singular vs. стандартний MMP
| Критерій | Singular | Типовий MMP |
|---|---|---|
| Імпорт витрат | Вбудований OAuth | Тільки CSV або API з лімітами |
| SKAdNetwork | Conversion Studio | Ручний конфіг Xcode |
| ROAS-звіт | Автоматичний | Вимагає вивантаження |
| Підтримка postback | Так, з ретрансляцією | Обмежено |
Singular виграє за часом налаштування та точністю звітів — у наших проектах економія часу аналітика становить до 10 годин на тиждень.
Що входить у роботу
- Підключення SDK (iOS SPM / Android Gradle / Flutter / React Native)
- Налаштування SKAdNetwork та Conversion Studio
- Конфігурація ATT flow з коректним тайм-аутом
- Реалізація подій та revenue з верифікацією чеків
- Підключення deeplink обробки (Universal Links / App Links)
- Інтеграція рекламних акаунтів для імпорту витрат
- Тестування через Singular SDK Console
Терміни та вартість
Базова атрибуція з подіями — 1–2 дні. Повна інтеграція з диплінками та налаштуванням рекламних каналів — 3–5 днів. Вартість розраховується індивідуально. Замовте аудит поточної аналітики — ми підкажемо, які доробки потрібні та скільки часу займе інтеграція.
Зв'яжіться з нами для консультації — оцінимо ваш проект та запропонуємо оптимальне рішення.







