Uso do Firebase e do Google Tag Manager com a AppsFlyer - envio de instalações e eventos

Num relance: Instruções para configurar o envio de eventos relatados via Firebase SDK para a AppsFlyer em seu app.

Configurar eventos no app

Esta seção aborda a forma de configurar e criar eventos na aplicação com o Google Tag Manager (GTM).

Quando o evento é enviado, o GTM verifica se existe uma etiqueta configurada para processar o evento com a ajuda do acionador de eventos. O acionador de eventos é definido para disparar a etiqueta sempre que um evento específico for enviado. Se um evento específico for enviado e tiver um acionador correspondente, a etiqueta é ativada. Quando a etiqueta é ativada, o Google Tag Manager recolhe todos os dados do evento. Esses dados incluem o ID da AppsFlyer, o nome do evento e os parâmetros do evento. Depois de recolher todos os dados, o Google Tag Manager envia o evento para a AppsFlyer.

Criação de variáveis de evento para receita e preço

Android

JavaKotlin
  1. Na classe MainActivity, crie uma variável para guardar o ID do dispositivo da AppsFlyer:
    public static String appsFlyerID; 
  2. De volta à classe MainActivity, no método onCreate e depois de super.onCreate, passe o ID da AppsFlyer para a variável:
    appsFlyerID = AppsFlyerLib.getInstance().getAppsFlyerUID(this);

iOS

Para iOS, os parâmetros estão disponíveis em toda o app. Pode recuperá-los através da instância do AppsFlyerTracker.

Objective C Swift
  1. appsflyer_device_id
    [AppsFlyerTracker sharedTracker].getAppsFlyerUID
  2. ID do app da Apple -
    [AppsFlyerTracker sharedTracker].appleAppID

Adicionar eventos na aplicação

O primeiro passo é configurar o evento na aplicação. O evento é enviado usando o Firebase Event Logging. No evento, você especifica o ID da AppsFlyer, o nome do evento e os parâmetros do evento. O ID da AppsFlyer é recuperado da variável que é criada na etapa de configuração.

O Google Tag Manager utiliza os eventos do Firebase Analytics para acionar eventos de tag. Sempre que um evento é enviado para o Firebase, o Tag Manager reconhece o evento e envia-o também para a AppsFlyer.

Android

JavaKotlin
  1. Na atividade desejada, adicione a declaração de importação para o Firebase:
    import com.google.firebase.analytics.FirebaseAnalytics;
  2. Adicione o seguinte código para ser executado sempre que ocorrer um evento de compra:
    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. Na visualização para a qual o evento é enviado, adicione @import Firebase
  2. Adicione o seguinte código para ser executado sempre que ocorrer um evento de compra:
    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 }];

Enviando eventos de instalação para o Firebase

Você também pode enviar eventos de instalação para o Firebase com todos os dados relacionados à instalação.

Android

Java Kotlin

Para enviar eventos de instalação para o Firebase no Android, pode utilizar o objeto conversionData.

Criar o método de envio de eventos

Adicione o seguinte método na classe AFApplication logo abaixo do método 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);
    }

Esse método aceita um objeto conversionData. O método verifica se a hora de instalação, a fonte de mídia e a campanha são nulas e, em caso afirmativo, define a hora de instalação como a hora atual e a fonte de mídia e a campanha como orgânicas. Caso contrário, obtém os dados do objeto conversionData e envia-os para o Firebase.

Envio do evento de instalação

Adicione o seguinte código no método onConversionDataSuccess:

if(conversionData.get("is_first_launch").equals("true")){
       sendInstallToFirebase(conversionData);
    }

Este código verifica se esta é a primeira vez que a aplicação é lançada. Em caso afirmativo, chama o método sendInstallToFirebase.

iOS

Objective-C Swift

Criar o método de envio de eventos

Em AppDelegate.m, adicione o seguinte método no final do ficheiro:

- (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"]
        }];
      }
    }

Este método recebe o objeto installData e verifica se a instalação é orgânica ou não. Se for orgânico, define a hora de instalação para a hora atual e a fonte de multimídia, a campanha e o tipo de instalação para orgânico.

Se a instalação for não orgânica, o método obtém os dados de instalação não orgânica relevantes.

Uma vez definidos os parâmetros, o método envia o evento de instalação para o Firebase.

Envio do evento de instalação

Em AppDelegate.m, no método didFinishLaunchingWithOptions, adicione [FIRApp configure]

Em AppDelegate.m, no método onConversionDataSuccess, adicione o seguinte código no final do método:

if([installData objectForKey:@"is_first_launch"]){
      [self sendInstallToFirebase: installData];
    }

O fragmento de código acima verifica se esta é a primeira vez que a aplicação é lançada. Se for, chama o método sendInstallToFirebase.

 Aviso

Algumas fontes de mídia não permitem que os seus dados sejam compartilhados com plataformas e serviços de terceiros. Se você estiver trabalhando com parceiros, como Facebook, Twitter, Snap, Pinterest etc., que têm restrições definidas no compartilhamento de seus dados com plataformas e serviços de terceiros, certifique-se de seguir suas diretrizes e remover quaisquer dados que estiverem sob essas restrições.