Інтеграція аналітики Singular у мобільний додаток
Singular позиціонується як Marketing Analytics Platform — це ширше, ніж просто MMP. Окрім атрибуції установок, платформа агрегує видатки з рекламних кабінетів (Meta Ads, Google Ads, TikTok, Apple Search Ads) та рахує ROAS прямо у панелі управління без ручної виграження даних. Для команд, які керують UA через кілька каналів одночасно, це значно скорочує ручну роботу з звітами.
Підключення iOS SDK
// 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 SKAdNetwork опиняться прив'язані до анонімної сесії. 300 секунд дає достатньо часу показати кастомний pre-prompt та системний діалог ATT.
Підключення Android SDK
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-кампанії — користувач отримав пуш, встановив додаток, Singular бачить зв'язок.
События та конверсії
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. При ввімкненій верифікації фальшиві покупки (від fraud) відфільтровуються до попадання у статистику.
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
// deeplink містить розпарсені параметри
if let path = deeplink?.passthrough {
NavigationRouter.shared.handleDeeplink(path)
}
}
}
return true
}
Singular підтримує власні Singular Links — укороченні посилання з трекінгом клика, аналог Branch Links. Створюються у панелі управління, передаються у рекламні об'яви.
Інтеграція видатків з рекламних кабінетів
Це те, чого немає у більшості MMP на базовому плані. В Singular → Integrations підключаємо рекламні аккаунти по OAuth або API-ключам. Після цього у панелі управління з'являється розбивка:
| Канал | Installs | Вартість | 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 события через Singular SDK.
Типові проблеми при інтеграції
SKAdNetwork conversion values не оновлюються. Singular керує conversion schema через панель управління (Conversion Studio). Якщо схема налаштована після перших установок — для них conversion values вже не змінити, дані будуть неповними. Схему потрібно фіналізувати до запуску кампаній.
Дублювання подій з Firebase. Якщо в проекті вже стоїть Firebase Analytics, потрібно переконатися, що одинакові события не уходять дважды — Singular не дедуплицирует дані Firebase автоматично.
Що входить до роботи
- Підключення SDK (iOS SPM / Android Gradle / Flutter / React Native)
- Налаштування SKAdNetwork та Conversion Studio
- Конфігурація ATT flow з коректним тайм-аутом
- Реалізація подій та revenue з верифікацією чеків
- Підключення deeplink обробки (Universal Links / App Links)
- Інтеграція рекламних аккаунтів для імпорту видатків
- Тестування через Singular SDK Console
Сроки
Базова атрибуція з подіями: 1–2 дні. Повна інтеграція з deeplink та налаштуванням рекламних каналів: 3–5 днів. Вартість розраховується індивідуально.







