Краткий обзор. Инструкции по настройке отправки событий через SDK Firebase в AppsFlyer в вашем приложении.
Настройка событий в приложении
В этом разделе рассказывается о том, как настроить и создать события в приложении с помощью Google Менеджера тегов (GTM).
Когда событие отправлено, GTM проверяет, есть ли тег, настроенный на обработку этого события с помощью триггера события. Триггер события настроен на срабатывание тега при каждой отправке определенного события. Если отправляется определенное событие и у него есть соответствующий триггер, то тег срабатывает. Когда тег срабатывает, Google Менеджер тегов собирает все данные о событии. Такие данные включают идентификатор AppsFlyer, название события и параметры события. После сбора всех данных Google Менеджер тегов отправляет событие в AppsFlyer.
Создание переменных событий для дохода и цены
Android
- В классе MainActivity создайте переменные для хранения идентификатора устройства AppsFlyer:
public static String appsFlyerID;
- В классе MainActivity в методе
onCreate
и послеsuper.onCreate
передайте идентификатор AppsFlyer в переменную:appsFlyerID = AppsFlyerLib.getInstance().getAppsFlyerUID(this);
- В классе MainActivity создайте переменную для хранения идентификатора устройства AppsFlyer:
var appsFlyerID: String? = null
- В классе MainActivity, в методе
onCreate
и послеsuper.onCreate
передайте значение AppsFlyer ID в переменную:override fun onCreate(savedInstanceState: Bundle?) { ... appsFlyerID = AppsFlyerLib.getInstance().getAppsFlyerUID(this) }
iOS
Для iOS параметры доступны во всем приложении. Вы можете получить их с помощью экземпляра AppsFlyerTracker.
- Идентификатор устройства AppsFlyer —
[AppsFlyerTracker sharedTracker].getAppsFlyerUID
- Идентификатор приложения Apple —
[AppsFlyerTracker sharedTracker].appleAppID
- Идентификатор устройства AppsFlyer —
AppsFlyerTracker.shared().getAppsFlyerUID()
- Идентификатор приложения Apple —
AppsFlyerTracker.shared().appleAppID
Добавление событий в приложение
Первым делом нужно настроить событие в приложении. Событие отправляется с помощью Firebase Event Logging. В событии вы указываете идентификатор AppsFlyer, название события и параметры события. Идентификатор AppsFlyer извлекается из переменной, созданной в ходе настройки.
Google Менеджер тегов использует аналитику событий Firebase для срабатывания событий тега. Когда событие отправляется в Firebase, Менеджер тегов распознает событие и отправляет его также в AppsFlyer.
Android
- В нужной активности добавьте оператор import для Firebase:
import com.google.firebase.analytics.FirebaseAnalytics;
- Добавьте следующий код, который будет выполняться при каждом возникновении события покупки:
Bundle bundle = new Bundle(); // notice "af_id", this is the name of the event parameter // for AppsFlyer ID that we created in the previous step bundle.putString("af_id", appsFlyerID); bundle.putString("af_revenue", "200"); bundle.putString("af_price", "250"); mFirebaseAnalytics.logEvent("af_purchase", bundle);
- В нужной активности добавьте оператор import для Firebase:
import com.google.firebase.analytics.FirebaseAnalytics
- Добавьте следующий код, который будет выполняться при каждом возникновении события покупки:
val bundle = Bundle() // notice "af_id", this is the name of the event parameter // for AppsFlyer ID that we created in the previous step bundle.putString("af_id", appsFlyerID) bundle.putString("af_revenue", "200") bundle.putString("af_price", "250") FirebaseAnalytics.getInstance(this).logEvent("af_purchase", bundle)
iOS
- В представление, куда отправляется событие, добавьте
@import Firebase
- Добавьте следующий код, который будет выполняться при каждом возникновении события покупки:
NSString *id_prefix = @"id";
NSString *apple_app_id = [id_prefix stringByAppendingString:[AppsFlyerTracker sharedTracker].appleAppID];
[FIRAnalytics logEventWithName:@"af_purchase" parameters:@{ @"apple_app_id": apple_app_id, @"af_id": [AppsFlyerTracker sharedTracker].getAppsFlyerUID, @"af_revenue": @250, @"af_price": @375 }];
- В представление, куда отправляется событие, добавьте
import Firebase
- Добавьте следующий код, который будет выполняться при каждом возникновении события покупки:
Analytics.logEvent("af_purchase", parameters: [ "apple_app_id": "id" + AppsFlyerTracker.shared().appleAppID, "af_id": AppsFlyerTracker.shared().getAppsFlyerUID(), "af_revenue": 250, "af_price": 375 ]);
Отправка событий установки в Firebase
Вы также можете отправлять события установки в Firebase со всеми данными, связанными с установкой.
Android
Чтобы отправить события установки в Firebase на Android, вы можете использовать объект conversionData
.
Создание метода отправки события
Добавьте следующий метод в класс AFApplication
сразу под методом onCreate
:
public void sendInstallToFirebase(Map<String, String> conversionData){
mFirebaseAnalytics = FirebaseAnalytics.getInstance(this);
Bundle bundle = new Bundle();
bundle.putString("install_time", conversionData.get("install_time") == null ? String.valueOf(new Date().getTime()) : conversionData.get("install_time"));
bundle.putString("click_time", conversionData.get("click_time"));
bundle.putString("media_source", conversionData.get("media_source") == null ? "organic": conversionData.get("media_source"));
bundle.putString("campaign", conversionData.get("campaign") == null ? "organic": conversionData.get("campaign"));
bundle.putString("install_type", conversionData.get("af_status"));
mFirebaseAnalytics.logEvent("install", bundle);
}
Этот метод принимает объект conversionData
. Метод проверяет, есть ли значение NULL для параметров «Время установки», «Медиа-источник» и «Кампания», и если да, то устанавливает для времени установки текущее время, а медиа-источник и кампанию как органические. В противном случае метод берет данные из объекта conversionData
и отправляет их в Firebase.
Отправка события установки
Добавьте следующий код в метод onConversionDataSuccess
:
if(conversionData.get("is_first_launch").equals("true")){
sendInstallToFirebase(conversionData);
}
Этот код проверяет, запускается ли приложение впервые. Если это так, он вызывает метод sendInstallToFirebase
.
Чтобы отправить события установки в Firebase на Android, вы можете использовать объект conversionData
.
Создание метода отправки события
Добавьте следующий метод в класс AFApplication
сразу под методом onCreate
:
fun sendInstallToFirebase(conversionData: Map<String, Any>) {
val bundle = Bundle()
bundle.putString("install_time", conversionData["install_time"]?.toString() ?: Date().time.toString())
bundle.putString("click_time", conversionData["click_time"]?.toString())
bundle.putString("media_source", conversionData["media_source"]?.toString() ?: "organic")
bundle.putString("campaign", conversionData["campaign"]?.toString() ?: "organic")
bundle.putString("install_type", conversionData["af_status"]?.toString())
FirebaseAnalytics.getInstance(this).logEvent("install", bundle)
}
Этот метод принимает объект conversionData
. Метод проверяет, есть ли значение NULL для параметров «Время установки», «Медиа-источник» и «Кампания», и если да, то устанавливает для времени установки текущее время, а медиа-источник и кампанию как органические. В противном случае метод берет данные из объекта conversionData
и отправляет их в Firebase.
Отправка события установки
Добавьте следующий код в метод onConversionDataSuccess
:
if(conversionData?.get("is_first_launch") == true){
sendInstallToFirebase(conversionData);
}
Этот код проверяет, запускается ли приложение впервые. Если это так, он вызывает метод sendInstallToFirebase
.
Примечание: Начиная с SDK V5, onConversionDataSuccess
— название метода получения данных о конверсиях. Если вы используете версию SDK ниже 5.0.0, имя метода — onInstallConversionDataLoaded
. Мы рекомендуем обновить SDK до версии 5.0.0. Подробнее см. здесь.
iOS
Создание метода отправки события
В AppDelegate.m добавьте следующий метод в конец файла:
- (void)sendInstallToFirebase:(NSDictionary *)installData{
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd/MM/yyyy HH:mm:ss"];
NSDate *date = [NSDate date];
NSString *newDate = [dateFormatter stringFromDate:date];
if([[installData objectForKey: @"af_status"] isEqual: @"Organic"]){
[FIRAnalytics logEventWithName:@"install"
parameters:@{
@"install_time": newDate,
@"media_source": @"organic",
@"campaign": @"organic"
}];
}
else {
[FIRAnalytics logEventWithName:@"install"
parameters:@{
@"install_time": [installData objectForKey: @"install_time"],
@"click_time": [installData objectForKey: @"click_time"],
@"install_type": [installData objectForKey: @"af_status"],
@"media_source": [installData objectForKey: @"media_source"],
@"campaign": [installData objectForKey: @"campaign"]
}];
}
}
Этот метод получает объект installData
и проверяет, является ли установка органической или нет. Если она органическая, метод устанавливает время установки на текущее время, а медиа-источник, кампанию и тип установки — на органические.
Если установка является неорганической, метод получает соответствующие данные о неорганических установках.
После установки параметров метод отправляет событие установки в Firebase.
Отправка события установки
В AppDelegate.m в методе didFinishLaunchingWithOptions
добавьте [FIRApp configure]
В AppDelegate.m в методе onConversionDataSuccess
добавьте следующий код в конец метода:
if([installData objectForKey:@"is_first_launch"]){
[self sendInstallToFirebase: installData];
}
Приведенный выше фрагмент кода проверяет, запускается ли приложение впервые. Если это так, он вызывает метод sendInstallToFirebase
.
В AppDelegate.swift добавьте следующий метод в конец файла:
func sendInstallToFirebase(_ installData: [AnyHashable : Any]!){
let date = Date()
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd/MM/yyyy hh:mm:ss"
let _newDate: String = dateFormatter.string(from: date)
if(installData["af_status"] as? String == "Organic"){
Analytics.logEvent("install", parameters: [
"install_time": _newDate,
"media_source": "organic",
"campaign": "organic"
]);
} else {
Analytics.logEvent("install", parameters: [
"install_time": installData["install_time"],
"click_time": installData["click_time"],
"media_source": installData["media_source"],
"campaign": installData["campaign"],
"install_type": installData["af_status"]
]);
}
}
Примечание: Начиная с SDK V5, onConversionDataSuccess
— название метода получения данных о конверсиях. Если вы используете версию SDK ниже 5.0.0, имя метода — onConversionDataReceived
. Мы рекомендуем обновить SDK до версии 5.0.0. Подробнее см. здесь.
Этот метод принимает объект installData
и проверяет, является ли установка органической или нет. Если она органическая, метод устанавливает время установки на текущее время, а медиа-источник, кампанию и тип установки — на органические.
Если установка является неорганической, метод получает соответствующие данные о неорганических установках.
После установки параметров метод отправляет событие установки в Firebase.
Отправка события установки
В AppDelegate.swift в методе didFinishLaunchingWithOptions
добавьте FirebaseApp.configure();
В AppDelegate.swift в методе onConversionDataSuccess
добавьте следующий код в конец метода:
if let is_first_launch = data["is_first_launch"] , let launch_code = is_first_launch as? Int {
if(launch_code == 1){
print("First Launch")
sendInstallToFirebase(installData)
} else {
print("Not First Launch")
}
}
Примечание: Начиная с SDK V5, onConversionDataSuccess
— название метода получения данных о конверсиях. Если вы используете версию SDK ниже 5.0.0, имя метода — onConversionDataReceived
. Мы рекомендуем обновить SDK до версии 5.0.0. Подробнее см. здесь.
Приведенный выше фрагмент кода проверяет, запускается ли приложение впервые. Если это так, он вызывает метод sendInstallToFirebase
.
Предупреждение
Некоторые медиа-источники не разрешают делиться своими данными со сторонними платформами и сервисами. Если вы работаете с такими партнерами, как Meta ads, Twitter, Snap, Pinterest и др., которые устанавливают ограничения на передачу своих данных на сторонние платформы и сервисы, обязательно следуйте их указаниям и удаляйте данные, которые подпадают под эти ограничения.