Интеграция аналитики 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 | 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 события через 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 дней. Стоимость рассчитывается индивидуально.







