Краткий обзор. Отправляйте данные в SDK Adobe Launch и SDK AppsFlyer с помощью единого расширения для SDK AppsFlyer Adobe Launch.
Обзор
Adobe Launch SDK является неотъемлемой частью платформы Adobe Experience Platform. Adobe Experience Platform помогает компаниям собирать, консолидировать и анализировать данные из различных приложений и платформ. Она позволяет владельцам бизнеса и разработчикам лучше понять поведение клиентов, чтобы оптимизировать опыт и доставку контента. Если ваше приложение использует и Adobe Launch SDK, и AppsFlyer SDK, вы можете отправлять данные на обе платформы с помощью одной реализации AppsFlyer Adobe Launch SDK Extension. Это снижает общую сложность процесса разработки и делает кодовую базу более чистой и удобной для обслуживания.
Примечание
Если вы используете расширение Adobe Launch, нет необходимости в стандартной интеграции Adobe Analytics.
Необходимые условия
Перед интеграцией расширения AppsFlyer Adobe SDK необходимо выполнить несколько действий.
Получение ключа разработчика AppsFlyer (dev key)
- На дэшборде вашего приложения нажмите Настройки приложения в разделе Конфигурация в левом меню.
- В разделе Установка SDKскопируйте Ключ разработчика.
Получите идентификатор приложения
- Для Android ID приложения — это имя пакета, например example.com.app.
- Для iOS ID приложения — это ID приложения в iTunes без префикса id, например 123456748.
Шаг 1. Настройка Adobe Launch
Для настройки Adobe Launch следуйте приведенным здесь инструкциям.
1.1 Создание нового свойства в Adobe Launch
1.2 Установка необходимых расширений Adobe Launch
Установите следующие расширения в Adobe Launch:
- Adobe Analytics соединяет записанные данные из SDK с модулем Adobe Analytics.
- AppsFlyer SDK Extension отправляет данные и события в Adobe и AppsFlyer с помощью Adobe Launch SDK.
- Adobe Profile позволяет SDK сохранять данные в профиле на стороне клиента.
- Adobe Mobile Core позволяет настраивать мобильный SDK и предоставляет доступ к событиям и условиям жизненного цикла по умолчанию.
Установка расширения Adobe Analytics
- Войдите в Adobe Analytics.
- Создайте набор отчетов.
- Снова войдите в Adobe Launch.
- В списке свойств нажмите на свойство, которое вы создали ранее.
- Нажмите Extensions (Расширения).
- Найдите и установите Adobe Analytics.
- Под Наборами отчетовукажите набор отчетов, который вы создали в шаге 2.
- Нажмите кнопку Save (Сохранить)
Установка расширения AppsFlyer SDK
- Выберите Расширения снова.
- Найдите и установите AppsFlyer SDK Extension.
- В разделе AppsFlyer iOS App ID укажите идентификатор приложения для iOS, который вы получили на этапе предварительных условий.
- В разделе AppsFlyer Dev Key укажите ключ разработчика, полученный на этапе предварительных условий.
- Включите Отправка данных об атрибуции в Adobe Analytics. Обратите внимание, что существуют некоторые ограничения на передачу данных на уровне пользователя сторонним аналитическим платформам.
- Нажмите кнопку Save (Сохранить)
Установите расширение Profile и Mobile Core
- Выберите Расширения снова.
- Найдите и установите Профиль.
- Найдите и установите Mobile Core.
- При установке Mobile Core просто сохраните расширение как есть. Нет необходимости указывать Experience Cloud Server (Сервер Experience Cloud).
Шаг 2. Внедрение расширения AppsFlyer Adobe SDK
Следуйте инструкциям в этом разделе, чтобы внедрить расширение Adobe SDK в свое приложение.
2.1 Добавление SDK в приложение
- Внутри свойств Adobe выберите Environments (Среды).
- Выберите среду, для которой вы хотите развернуть SDK.
- С правой стороны нажмите на значок коробки.
- Скопируйте фрагменты кода из открывшегося окна и следуйте инструкциям. Если вы маркетолог, настраивающий Adobe, отправьте эти фрагменты кода своему разработчику приложений.
2.2 Публикация среды
Чтобы завершить реализацию SDK, необходимо опубликовать среду в библиотеке.
- Внутри свойств Adobe выберите Publishing (Публикация).
- Нажмите Add New Library (Добавить новую библиотеку).
- Дайте ей имя и в разделе "Environment" выберите Development (Разработка).
- Нажмите Save & Build for Development (Сохранить и собрать для разработки).
- После завершения сборки в разделе Developmentнажмите на три точки рядом с библиотекой и выберите Submit for Approval (Отправить на утверждение).
- В разделе Submitted (Отправленные) нажмите на три точки рядом с библиотекой и выберите Build for Staging (Собрать для стейджинга).
- Когда сборка завершится, нажмите на три точки рядом с библиотекой и выберите Approve for Publishing (Утвердить для публикации).
- Под кнопкой Утвердитьнажмите на три точки рядом с библиотекой и выберите Build & Publish to Production (Собрать и опубликовать в продакшн).
2.3 Добавление реферера установки для Android к вашему приложению
Инициатор установки для Android повышает точность атрибуции, защищает от мошеннических установок, а также выполняет другие функции. Его поддержка в SDK AppsFlyer для Android предусмотрена начиная с версии 4.8.6.
Примечание
Google прекратил поддержку BroadcastReceiverв марте 2020 г.
- Это изменение не влияет на приложение.
- Возможно, вам по-прежнему понадобится BroadcastReceiver для атрибуции приложений, установленных не из магазина. Проверьте это в магазине, в котором зарегистрировано приложение.
- Внедрение инициатора установки теперь является обязательным.
Добавить инициатор установки в приложение можно двумя способами:
- С помощью системы Gradle (рекомендуется)
- Добавление инициатора установки вручную
Добавьте инициатор установки для Android как зависимость. Загрузить последнюю версию можно здесь.
-
dependencies { //make sure to use the latest SDK version: https://mvnrepository.com/artifact/com.appsflyer/af-android-sdk implementation 'com.appsflyer:af-android-sdk:5.+' implementation 'com.android.installreferrer:installreferrer:1.1' }
- Синхронизируйте проект для получения зависимостей — см. снимок экрана ниже:
Разработчикам, которые используют утилиту ProGuard и хотят использовать новый API для реферера от Google, необходимо добавить в ProGuard такое правило:-dontwarn com.android.installreferrer
- Загрузите файл реферера установки в формате aar.
- Добавьте его в проект.
- Добавьте следующее разрешение в манифест:
com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE
2.4. Настройка необходимых разрешений
Добавление разрешения повышает показатель атрибуции на основе вероятностного моделирования. Кроме того, это позволяет SDK отправлять больше данных, таких как данные WiFi и сети оператора связи. Эти данные можно получать из отчетов по сырым данным и использовать для анализа и оптимизации кампаний.
Добавление необходимых разрешений
- Добавьте в файл AndroidManifest.xml эти разрешения:
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- Optional : --> <uses-permission android:name="android.permission.READ_PHONE_STATE" />
Использование расширения Adobe SDK
Теперь вы можете начать использовать расширение Adobe SDK для отправки данных в Adobe и AppsFlyer.
Примечание
В настоящее время расширение Adobe Launch SDK поддерживает только получение данных о конверсиях и отправку событий. Однако, когда вы добавляете расширение Adobe Launch SDK в свое приложение, AppsFlyer SDK также добавляется. Таким образом, любая функциональность, отсутствующая в расширении Adobe SDK, может быть реализована с помощью AppsFlyer SDK.
Отправка событий
Отслеживая события внутри приложения, можно понять, что в нем происходит. Рекомендуется заранее определить, какие события нужно регистрировать. Регистрация внутренних событий приложения позволит измерять такие KPI, как ROI (окупаемость инвестиций) и LTV (суммарная прибыль от пользователя).
Расширение Adobe Launch SDK позволяет отправлять данные о событиях в приложении как в Adobe, так и в AppsFlyer. Затем вы можете использовать Adobe Analytics для анализа поведения пользователей и AppsFlyer для анализа ROI и LTV.
final Map<String,String> eventMap = new HashMap<>();
eventMap.put("currency", "USD");
eventMap.put("revenue", "200");
eventMap.put("freehand", "param");
MobileCore.trackAction("af_purchase", eventMap);
[ACPCore trackAction:@"af_purchase data:@{@"revenue":@"200",@"currency":@"USD"];
Отправка событий, как указано в приведенном выше коде, создает на дэшборде AppsFlyer событие af_purchase с доходом в 200 долларов. Это событие также отправляется и отображается в Adobe Analytics.
Все данные о конверсиях, отправляемые вместе с событиями, имеют префикс appsflyer. Подробнее см. в таблице ниже.
Переменные в префиксах данных о конверсиях |
---|
appsflyer.af_click_lookback |
appsflyer.install_time |
appsflyer.cost_cents_USD |
appsflyer.media_source |
appsflyer.af_adset |
appsflyer.click_time |
appsflyer.orig_cost |
appsflyer.campaign |
Данные о конверсиях используются в приложении, которое вы создаете в Adobe Mobile Services. Существуют и другие параметры, которые могут появляться в данных о конверсиях. Подробнее см. тут.
Получение данных для диплинкинга и отложенного диплинкинга.
Диплинкинг и отложенный диплинкинг позволяют улучшить пользовательский опыт. Они позволяют открывать приложение при определенных действиях и настраивать контент в соответствии с данными кампании.
Чтобы получить данные из диплинка, реализуйте обратные вызовы расширения.
В глобальном классе application выполните следующий код:
AppsFlyerAdobeExtension.registerAppsFlyerExtensionCallbacks(new AppsFlyerExtensionCallbacksListener() {
@Override
public void onCallbackReceived(Map<String, String> callback) {
Log.d(AppsFlyerLibCore.LOG_TAG, callback.toString());
if(callback.get("callback_type").equals("onConversionDataReceived")){
// conversion data returned
if(callback.get("is_first_launch").equals("true")){
String af_status = callback.get("af_status");
if(af_status.equals("Non-organic")){
Log.d(AppsFlyerLibCore.LOG_TAG, "this is first launch and a non organic install!");
}
}
} else if(callback.get("callback_type").equals("onAppOpenAttribution")){
// direct deeplink - redirect user
Log.d(AppsFlyerLibCore.LOG_TAG, callback.toString());
}
}
@Override
public void onCallbackError(String errorMessage) {
Log.d("TAG", errorMessage);
}
});
В файле AppDelegate.m выполните следующий код:
[AppsFlyerAdobeExtension registerCallbacks:^(NSDictionary *dictionary) {
NSLog(@"[AppsFlyerAdobeExtension] Received callback: %@", dictionary);
if([[dictionary objectForKey:@"callback_type"] isEqualToString:@"onConversionDataReceived"]){
if([[dictionary objectForKey:@"is_first_launch"] boolValue] == YES){
NSString* af_status = [dictionary objectForKey:@"af_status"];
if([af_status isEqualToString:@"Non-organic"]){
NSLog(@"this is first launch and a non organic install!");
}
}
} else if([[dictionary objectForKey:@"callback_type"] isEqualToString:@"onAppOpenAttribution"]) {
NSLog(@"onAppOpenAttribution Received");
}
}];
[AppsFlyerAdobeExtension callbacksErrorHandler:^(NSError *error) {
NSLog(@"[AppsFlyerAdobeExtension] Error recieving callback: %@" , error);
}];
Подключение данных о конверсиях AppsFlyer
Данные о конверсии отправляются вместе с событиями на платформу Adobe. Эти переменные позволяют применять логику и правила к измерениям, метрикам или фильтрам отчетности.
- Войдите в систему Adobe Mobile Services.
- Выберите соответствующее приложение и войдите на страницу Manage Variables & Metrics (Управление переменными и метриками).
- Выберите вкладку Custom Variables (Пользовательские переменные) и настройте переменные для сопоставления данных AppsFlyer SDK с данными системы Adobe.
- Для каждой пользовательской переменной введите осмысленное имя.
- Выберите или введите сопоставленные данные о конверсиях AppsFlyer и выберите предпочтительный вариант Persistence (Хранение данных).
См. следующую таблицу для сопоставления переменных контекста AppsFlyer:
Рекомендуемое название для сопоставления |
Данные о конверсиях |
---|---|
Окно атрибуции AppsFlyer |
appsflyer.af_click_lookback |
Время установки AppsFlyer |
appsflyer.install_time |
Стоимость в AppsFlyer в центах доллара США |
appsflyer.cost_cents_USD |
Медиа-источник AppsFlyer |
appsflyer.media_source |
Группа объявлений AppsFlyer |
appsflyer.af_adset |
Время клика AppsFlyer |
appsflyer.click_time |
Первоначальная стоимость AppsFlyer |
appsflyer.orig_cost |
Кампания AppsFlyer |
appsflyer.campaign |
Использование данных о конверсии, сопоставленных с AppsFlyer, для аналитики и анализа
Все данные, поступающие из SDK, доступны в пакете отчетов Adobe Analytics, который подключен к приложению.
Вы можете использовать данные и связанные с ними показатели и метрики в созданных отчетах и панелях Adobe Analytics. Эти данные также доступны на дэшборде AppsFlyer для атрибуции и анализа событий в приложении.