Использование Firebase и Google Менеджера тегов с AppsFlyer — отправка установок и событий

Краткий обзор. Инструкции по настройке отправки событий через SDK Firebase в AppsFlyer в вашем приложении.

Настройка событий в приложении

В этом разделе рассказывается о том, как настроить и создать события в приложении с помощью Google Менеджера тегов (GTM).

Когда событие отправлено, GTM проверяет, есть ли тег, настроенный на обработку этого события с помощью триггера события. Триггер события настроен на срабатывание тега при каждой отправке определенного события. Если отправляется определенное событие и у него есть соответствующий триггер, то тег срабатывает. Когда тег срабатывает, Google Менеджер тегов собирает все данные о событии. Такие данные включают идентификатор AppsFlyer, название события и параметры события. После сбора всех данных Google Менеджер тегов отправляет событие в AppsFlyer.

Создание переменных событий для дохода и цены

Android

JavaKotlin
  1. В классе MainActivity создайте переменные для хранения идентификатора устройства AppsFlyer:
    public static String appsFlyerID; 
  2. В классе MainActivity в методе onCreate и после super.onCreate передайте идентификатор AppsFlyer в переменную:
    appsFlyerID = AppsFlyerLib.getInstance().getAppsFlyerUID(this);

iOS

Для iOS параметры доступны во всем приложении. Вы можете получить их с помощью экземпляра AppsFlyerTracker.

Objective-C Swift
  1. Идентификатор устройства AppsFlyer —
    [AppsFlyerTracker sharedTracker].getAppsFlyerUID
  2. Идентификатор приложения Apple —
    [AppsFlyerTracker sharedTracker].appleAppID

Добавление событий в приложение

Первым делом нужно настроить событие в приложении. Событие отправляется с помощью Firebase Event Logging. В событии вы указываете идентификатор AppsFlyer, название события и параметры события. Идентификатор AppsFlyer извлекается из переменной, созданной в ходе настройки.

Google Менеджер тегов использует аналитику событий Firebase для срабатывания событий тега. Когда событие отправляется в Firebase, Менеджер тегов распознает событие и отправляет его также в AppsFlyer.

Android

JavaKotlin
  1. В нужной активности добавьте оператор import для Firebase:
    import com.google.firebase.analytics.FirebaseAnalytics;
  2. Добавьте следующий код, который будет выполняться при каждом возникновении события покупки:
    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);
        

iOS

Objective-C Swift
  1. В представление, куда отправляется событие, добавьте @import Firebase
  2. Добавьте следующий код, который будет выполняться при каждом возникновении события покупки:
    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 }];

Отправка событий установки в Firebase

Вы также можете отправлять события установки в Firebase со всеми данными, связанными с установкой.

Android

Java Kotlin

Чтобы отправить события установки в 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.

iOS

Objective-C Swift

Создание метода отправки события

В 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.

 Предупреждение

Некоторые медиа-источники не разрешают делиться своими данными со сторонними платформами и сервисами. Если вы работаете с такими партнерами, как Meta ads, Twitter, Snap, Pinterest и др., которые устанавливают ограничения на передачу своих данных на сторонние платформы и сервисы, обязательно следуйте их указаниям и удаляйте данные, которые подпадают под эти ограничения.