Branch.io е комерсиална платформа за deep linking и атрибуция, предоставяща единна инфраструктура за връзки за мобилни приложения на iOS и Android. Според Branch Documentation, платформата проследява пълния цикъл на взаимодействие на потребителя от кликване върху връзка до целево действие в приложението. Deep linking в Branch.io работи на всички платформи с поддръжка на deferred и атрибуция на инсталации.
Основни моменти
Branch.io е платформа, която обединява deep linking, атрибуция на мобилни инсталации и маркетингова аналитика в единно решение. Тя позволява на разработчици и маркетолози да създават интелигентни връзки, които насочват потребителя към приложението или уеб страницата в зависимост от платформата, статуса на инсталация и други параметри. Освен това Branch автоматично свързва всяка инсталация с източника на преход.
Платформата е основана през 2014 г. и е един от лидерите на пазара за mobile measurement (MMP) заедно с AppsFlyer и Adjust. Основното предимство на Branch е пълната интеграция на deep linking и атрибуцията в един SDK, което елиминира необходимостта от използване на отделни решения за връзки и аналитика.
Firebase Dynamic Links е безплатна услуга с основна функционалност, докато Branch.io е комерсиална платформа с разширена атрибуция, поддържаща над 50 интеграции с рекламни мрежи. Branch предоставя цялостна аналитика за всяко взаимодействие на потребителя, включително атрибуция според моделите last-click, first-click и multi-touch.
Branch.io предоставя широк набор от инструменти за работа с мобилни връзки. Основните възможности включват създаване на Deepview — преглед на съдържанието на приложението в уеб браузър преди инсталация, автоматично генериране на Universal Links за iOS и App Links за Android, както и поддръжка на препоръчителни програми с награди.
Платформата също поддържа Journeys — визуален конструктор на фунии за ангажиране, който показва на потребителя банер с предложение за инсталиране на приложението при посещение на мобилен сайт. Journeys се конфигурират без програмиране чрез уеб интерфейса на Branch и поддържат A/B тестване на креативи.
| Функция | Описание | Приложение |
|---|---|---|
| Deep Linking | Интелигентни връзки с deferred поддръжка | Преход към съдържание |
| Attribution | Атрибуция на инсталации и събития | Маркетингова аналитика |
| Journeys | Уеб банери за инсталация | Привличане на потребители |
| Deepview | Преглед на приложение в браузър | Показване на съдържание |
| Segments | Сегментиране на потребители | Персонализация |
Атрибуцията на инсталации в Branch работи на базата на свързване на идентификатора на преход (click ID) с идентификатора на устройството при първото стартиране на приложението. Когато потребител кликне върху Branch връзка, системата генерира уникален идентификатор и го запазва в браузъра или системния клипборд. След инсталация и първо стартиране, Branch SDK прочита този идентификатор и свързва инсталацията с източника на преход.
Branch поддържа атрибуция според различни модели. Last-click атрибуция определя последния източник на преход преди инсталацията като причина. Multi-touch атрибуция разпределя стойността на инсталацията между всички взаимодействия на потребителя според зададени тегла. Платформата също поддържа view-through атрибуция за рекламни показвания без кликване.
Branch се интегрира с над 50 рекламни платформи, включително Facebook Ads, Google Ads, TikTok Ads и Snapchat. Всяка интеграция използва естествените механизми за атрибуция на рекламната мрежа за максимална точност. Настройката се извършва чрез Branch Dashboard без необходимост от промяна на кода на приложението след първоначалната интеграция на SDK.
Интеграцията на Branch SDK в iOS приложение започва с инсталиране на пакета чрез CocoaPods, SPM или Carthage. След инсталацията трябва да се инициализира SDK с ключа на приложението от Branch Dashboard в метода didFinishLaunchingWithOptions на AppDelegate. SDK автоматично регистрира Universal Links за домейна на Branch.
За правилна работа на deep link е необходимо да се конфигурират Associated Domains в Xcode Capabilities със запис applinks:bnc.lt. Branch също поддържа URL Scheme за резервен вариант в случай, че Universal Links не работят в конкретна версия на iOS. Обработката на всички входящи връзки се извършва автоматично чрез SDK без необходимост от писане на собствен манипулатор.
Пример за инициализация на Branch SDK в AppDelegate на Swift. SDK стартира сесия при пускане на приложението и автоматично обработва всички deep link-ове.
import BranchSDK
class AppDelegate: UIResponder,
UIApplicationDelegate {
func application(
_ application: UIApplication,
didFinishLaunchingWithOptions
launchOptions: [UIApplication
.LaunchOptionsKey: Any]?
) -> Bool {
Branch.getInstance()
.initSession(launchOptions: launchOptions)
return true
}
}
Методът initSession стартира Branch сесия и автоматично проверява наличието на входящ deep link. Резултатът се обработва чрез делегата BranchDelegate или completion handler. Branch SDK самостоятелно определя дали връзката е отворена от cold start или от вече работещо приложение.
В Android интеграцията на Branch започва с добавяне на зависимост в build.gradle и посочване на ключа на приложението в AndroidManifest.xml. Branch използва Intent Filter за приемане на deep link, който автоматично се добавя чрез приставката Gradle по време на компилация. SDK също регистрира BroadcastReceiver за получаване на реферални данни след инсталация и поддържа автоматична обработка на Install Referrer API за точна атрибуция на източника.
За правилна атрибуция на инсталации от Google Play, Branch използва Install Referrer API, който предоставя информация за източника на инсталация дори ако потребителят не е кликнал върху връзка. На устройства без Google Play Services се използва реферален BroadcastReceiver.
Пример за инициализация на Branch SDK в MainActivity на Kotlin с обработка на входящи данни от deep link.
class MainActivity : AppCompatActivity() {
override fun onStart() {
super.onStart()
Branch.getInstance()
.initSession { params, error ->
if (error == null) {
val data = params.optString(
"$deeplink_path", ""
)
navigateToScreen(data)
}
}
}
}
Completion handler в метода initSession връща JSONObject с параметри на deep link и грешка. Параметърът $deeplink_path съдържа целевия път, останалите параметри се предават в произволен формат, зададен при създаване на връзката в Branch Dashboard. Обработката се извършва в onStart за правилна работа при рестартиране на Activity и при преход от друго приложение.
Branch Dashboard предоставя визуални отчети на всички ключови метрики: брой кликвания върху връзки, инсталации, конверсии, приходи и задържане. Данните са достъпни в реално време с възможност за експорт в CSV и интеграция с външни аналитични системи чрез API.
Платформата поддържа конфигурация на Events — персонализирани събития, които приложението изпраща до Branch чрез SDK. Всяко събитие може да съдържа произволни метаданни: цена на покупка, категория на продукт, ниво на потребител. Branch автоматично свързва събитията с източника на инсталация, позволявайки оценка на ROI на всеки маркетингов канал.
Branch Dashboard включва няколко предварително зададени отчета — Summary, Sources, Cohorts и Funnels. Summary показва общата картина на инсталации и преходи, Sources детайлизира по канали, Cohorts проследява задържането на потребители по дни, а Funnels изгражда фунии за конверсия по зададени събития. Всички отчети поддържат филтриране по дата, платформа, държава и рекламна кампания.
За по-подробен анализ Branch предоставя Export API, който позволява експортиране на сурови данни за преходи и инсталации в собствени аналитични системи. API поддържа филтриране по времеви диапазон, тип събитие и източник. Експортът е достъпен във формати CSV и JSON с възможност за автоматичен експорт по график чрез webhook.
Segment Builder в Branch Dashboard позволява създаване на динамични сегменти от потребители на базата на произволен набор от събития и атрибути. Например може да се създаде сегмент от потребители, които са инсталирали приложението от конкретна рекламна кампания и са направили покупка в рамките на 7 дни. Сегментите се актуализират в реално време и са достъпни за експорт или интеграция чрез API. Branch също поддържа anonymized aggregated exports — анонимизирани обобщени данни по сегменти за изпращане до рекламни мрежи и оптимизиране на таргетирането.
Често задавани въпроси
Branch предлага безплатен тарифен план с ограничение на броя събития на месец. За комерсиална употреба са достъпни платени планове с разширена атрибуция, неограничен брой събития и приоритетна поддръжка. Цените варират от 500 до няколко хиляди долара на месец.
Основната разлика — Branch обединява deep linking и атрибуцията в един SDK, докато AppsFlyer се фокусира само върху атрибуция. Branch също предоставя Deepview и Journeys, които липсват в AppsFlyer. Изборът зависи от нуждите на проекта.
Да, Branch предоставя SDK за React Native, Flutter, Unity, Cordova и Xamarin. Всички междуплатформени SDK поддържат пълна функционалност: deep linking, атрибуция, аналитика на събития и Journeys.
Branch напълно поддържа ATT на iOS 14+. SDK изисква разрешение за проследяване чрез стандартен диалог. Ако потребителят откаже, Branch използва SKAdNetwork за атрибуция без IDFA, запазвайки точност на ниво кампания.
Да, Branch връзките работят правилно в уеб браузъри. На десктоп връзката отваря указания URL, на мобилни устройства — приложението или резервна страница. Branch също поддържа Quick Links за уебсайтове без инсталиране на SDK.
Обобщение
Ще разработим мобилно приложение под ключ
IT Sectr създава iOS и Android приложения за стартъпи и бизнеси от 2017 г. Ще ви консултираме и ще предложим най-доброто решение.
Прочетете също