Utiliser Firebase et Google Tag Manager avec AppsFlyer — Envoyer des installations et des événements

En bref : Instructions pour configurer l'envoi d'événements signalés via le SDK Firebase à AppsFlyer dans votre app.

Configurer des événements dans l'app

Cette section explique comment configurer et créer des événements dans l'app avec Google Tag Manager (GTM).

Lorsque l'événement est envoyé, GTM vérifie s'il existe une balise configurée pour traiter cet événement à l'aide du déclencheur d'événement. Le déclencheur d'événement est défini pour déclencher la balise chaque fois qu'un événement spécifique est envoyé. Si un événement spécifique est envoyé et qu'il a un déclencheur correspondant, la balise est activée. Lorsque la balise est activée, Google Tag Manager collecte toutes les données de l'événement. Ces données comprennent l'identifiant AppsFlyer, le nom de l'événement et les paramètres de l'événement. Après avoir collecté toutes les données, Google Tag Manager envoie l'événement à AppsFlyer.

Création de variables d'événement pour le revenu et le prix

Android

JavaKotlin
  1. Dans la classe MainActivity, créez une variable qui contiendra l'identifiant de l'appareil AppsFlyer :
    public static String appsFlyerID; 
  2. De retour dans la classe MainActivity, dans la méthode onCreate et après super.onCreate, transmettez l'ID AppsFlyer à la variable :
    appsFlyerID = AppsFlyerLib.getInstance().getAppsFlyerUID(this);

iOS

Pour iOS, les paramètres sont disponibles dans l'app. Vous pouvez les récupérer via l'instance AppsFlyerTracker.

Objective C Swift
  1. AppsFlyer Device ID -
    [AppsFlyerTracker sharedTracker].getAppsFlyerUID
  2. Apple App ID -
    [AppsFlyerTracker sharedTracker].appleAppID

Ajouter des événements dans l'app

La première étape consiste à configurer l'événement dans l'app. L'événement est envoyé en utilisant Firebase Event Logging. Dans l'événement, vous spécifiez l'ID AppsFlyer, le nom de l'événement et les paramètres de l'événement. L'ID d’AppsFlyer est récupéré à partir de la variable créée lors de l'étape de configuration.

Google Tag Manager utilise les événements Firebase Analytics pour déclencher des événements de balises. Chaque fois qu'un évènement est envoyé à Firebase, Tag Manager reconnaît l'événement et l'envoie également à AppsFlyer.

Android

JavaKotlin
  1. Dans l'activité souhaitée, ajoutez la déclaration d'importation pour Firebase :
    import com.google.firebase.analytics.FirebaseAnalytics;
  2. Ajoutez le code suivant pour qu'il soit exécuté chaque fois qu'un événement d'achat se produit :
    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. Dans la vue où l'événement est envoyé, ajoutez @import Firebase
  2. Ajoutez le code suivant pour qu'il soit exécuté chaque fois qu'un événement d'achat se produit :
    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 }];

Envoi d'événements d'installation à Firebase

Vous pouvez également envoyer des événements d'installation à Firebase avec toutes les données relatives à l'installation.

Android

Java Kotlin

Pour envoyer des événements d'installation à Firebase dans Android, vous pouvez utiliser l'objet conversionData.

Création de la méthode d'envoi de l'événement

Ajoutez la méthode suivante dans la classe AFApplication, juste en dessous de la méthode 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);
    }

Cette méthode accepte un objet conversionData. La méthode vérifie si l'heure d'installation, la source média et la campagne sont nulles, et, le cas échéant, définit l'heure d'installation à l'heure actuelle et la source média ainsi que la campagne comme étant organiques. Sinon, elle prend les données de l'objet conversionData et les envoie à Firebase.

Envoi de l'événement d'installation

Ajoutez le code suivant dans la méthode onConversionDataSuccess:

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

Ce code vérifie si l'app est lancée pour la première fois. Si c'est le cas, il appelle la méthode sendInstallToFirebase.

iOS

Objective-C Swift

Création de la méthode d'envoi de l'événement

Dans AppDelegate.m, ajoutez la méthode suivante à la fin du fichier :

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

Cette méthode reçoit l'objet installData et vérifie si l'installation est organique ou non. Si elle est organique, elle définit l'heure d'installation à l'heure actuelle ainsi que la source média, la campagne et le type d'installation comme étant organiques.

Si l'installation n'est pas organique, la méthode récupère les données d'installation non organiques correspondantes.

Une fois les paramètres définis, la méthode envoie l'événement d'installation à Firebase.

Envoi de l'événement d'installation

Dans AppDelegate.m, dans la méthode didFinishLaunchingWithOptions, ajoutez [FIRApp configure]

Dans AppDelegate.m, dans la méthode onConversionDataSuccess, ajoutez le code suivant à la fin de la méthode :

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

L'extrait de code ci-dessus vérifie si l'app est lancée pour la première fois. Si c'est le cas, il appelle la méthode sendInstallToFirebase.

 Avertissement

Certaines sources média n'autorisent pas le partage de leurs données avec des plateformes et services tiers. Si vous travaillez avec des partenaires tels que Meta Ads, Twitter, Snap, Pinterest, etc., qui imposent des restrictions sur le partage de leurs données avec des plateformes et services tiers, assurez-vous de suivre leurs directives et de supprimer toute donnée soumise à ces restrictions.