Référent d’installation Meta

Ce document vous indique comment utiliser le référent d’installation Meta dans votre application Android afin d’obtenir des métadonnées pour vos campagnes publicitaires Facebook, Instagram et Audience Network ciblant les installations d’application. Alors que Google Play Install Referrer (GPIR) ne prend en compte que les installations par clic pour une session, le référent d’installation Meta inclut des données concernant :

  • les installations par vue (VT)
  • les installations par clic (CT)
  • les installations par clic pour plusieurs sessions

Deux options s’offrent à vous pour configurer le référent d’installation Meta dans les campagnes pour votre application Android : intégration directe ou intégration prise en charge par votre partenaire de mesure mobile (Mobile Measurement Partner, MMP).

Option 1 : intégration directe

Avant de commencer

Avant de commencer, vous aurez besoin des éléments suivants :

Étape 1. Ajouter les applications Meta

Dans votre fichier AndroidManifest.xml, ajoutez les éléments queries pour les applications Facebook, Instagram et Facebook Lite afin de permettre à votre application d’obtenir les données d’attribution de référence de ces applications Meta.

<queries>
  <package android:name="com.facebook.katana" />
</queries>

<queries>
  <package android:name="com.instagram.android" />
</queries>

<queries>
  <package android:name="com.facebook.lite" />
</queries>

Étape 2. Implémenter l’API ContentProvider

Ajoutez le code ContentProvider pour obtenir des données d’attribution de référence à partir des applications Facebook et Instagram. Ces données vous seront utiles au lancement de l’application.

Cursor c = null;
try {
    String [] projection = { "install_referrer", "is_ct", "actual_timestamp", };
    Uri providerUri = null;
    
    // This IF statement queries the facebook app first.
    // To query from the instagram app first, change the sequence of the IF statement

    if (context.getPackageManager().resolveContentProvider(
           "com.facebook.katana.provider.InstallReferrerProvider", 0) != null) {
       providerUri = Uri.parse(
           "content://com.facebook.katana.provider.InstallReferrerProvider/" + FB_APP_ID);
    } else if (context.getPackageManager().resolveContentProvider(
           "com.instagram.contentprovider.InstallReferrerProvider", 0) != null) {
       providerUri = Uri.parse(
           "content://com.instagram.contentprovider.InstallReferrerProvider/" + FB_APP_ID);
    } else if (context.getPackageManager().resolveContentProvider(
           "com.facebook.lite.provider.InstallReferrerProvider", 0) != null) {
       providerUri = Uri.parse("content://com.facebook.lite.provider.InstallReferrerProvider/" + FB_APP_ID);
    } else {
       return null;
    }

    c = context.getContentResolver().query(providerUri, projection, null, null, null);
    if (c == null || !c.moveToFirst()) {
       return null;
    }

    int installReferrerIndex = c.getColumnIndex("install_referrer");
    int timestampIndex = c.getColumnIndex("actual_timestamp");
    int isCTIndex = c.getColumnIndex("is_ct");
    String installReferrer = c.getString(installReferrerIndex); // serialized and encrypted attribution details

    // TODO: 
    // 1. deserialize installReferrer (convert String to JSON)
    // 2. decrypt attribution details in install_referrer.utm_content.source.data using 
    // key: GPIR decryption key 
    // nonce: retrieve from installReferrer.utm_content.source.nonce
    // data: retrieve from installReferrer.utm_content.source.data
    // decrypt data 

    long actualTimestamp = c.getLong(timestampIndex); // timestamp in seconds for click/impression
     int isCT = c.getInt(isCTIndex); // VT or CT, 0 = VT, 1 = CT
           
} catch (Exception e) {
    return null;
} finally {
    if (c != null) {
        c.close();
    }
}

Les étapes à suivre pour désérialiser et déchiffrer les données sont semblables à celles décrites dans le guide du Référent d’installation.

La réponse de structure de données reçue de install_referrer après la désérialisation pour chaque application Meta comprendra :

  • actual_timestamp, qui correspond à l’horodatage en secondes du moment où le clic ou l’impression s’est produit·e
  • is_ct, dont les valeurs peuvent être 1, pour un clic, ou 0, pour une impression
  • install_referrer, qui correspond aux données d’attribution GPIR chiffrées

Exemple de réponse JSON

{
  is_ct=1,
  actual_timestamp=123,
  install_referrer={
    utm_campaign = fb4a,
    utm_content: {
      source: {
        data: “7fb9bd76…”, // encrypted attribution information
        nonce: “1234” // nonce from encryption
      },
      a: <app_id>,
      t: <timestamp>
    }
    utm_source : “apps.facebook.com” //OR “apps.instagram.com”
  }
}

Exemple de données après un déchiffrement install_referrer.utm_content.source

{ 
  "ad_id":"6110809314024", 
  "adgroup_id":"6110808725024", 
  "adgroup_name":"RTG_Storie_", 
  "campaign_id":"6110808710224", 
  "campaign_name":"Mobex_Conversiones_Storie_Android_21 a 31 de Diciembre_OP39895",
  "campaign_group_id":"6110808710624", 
  "campaign_group_name":"Mobex_Instagram Storie_ Conversiones_ Diciembre OP 43918",
  "account_id":"485495091598353",
  "ad_objective_name":"CONVERSIONS", 
  // data included for Instagram ads
  "is_instagram":true,
  "publisher_platform":"instagram",                
  "platform_position":"instagram_stories"          
}

Étape 3. Dédupliquer les données

Si les métadonnées des campagnes publicitaires GPIR sont disponibles, il est recommandé de suivre votre flux de déduplication GPIR existant.

Déduplication avec le référent d’installation

Vous pouvez supprimer des données dupliquées en utilisant les données renvoyées dans install_referrer, car avec le référent d’installation Meta et GPIR, pour les CT, les valeurs sont les mêmes qu’il s’agisse d’une installation ou d’une campagne.

Pour les VT et les CT pour plusieurs sessions, utilisez les données de référence d’installation de Meta, car GPIR ne les prend pas en charge.

En l’absence de métadonnées de campagne publicitaire GPIR, dédupliquez les données selon que vous travaillez avec un MMP ou non.

Déduplication avec un MMP

Le partenaire de mesure mobile a accès aux données d’attribution au niveau de la ligne pour les installations qui n’ont pas de réseau publicitaire gagnant, parce qu’elles ont été attribuées soit à des installations Meta soit à des installations organiques. Vous pouvez vérifier si un référent d’installation est fourni via le référent d’installation Meta. Si oui, vous pouvez considérer que l’installation est gérée par Meta, à condition que les données du référent d’installation soient les métadonnées de la campagne publicitaire liée à l’installation.

Déduplication sans MMP

Le référent d’installation Meta fournit les informations de dernière interaction pour l’installation, y compris les métadonnées de campagne publicitaire, l’horodatage réel de la dernière interaction et le type d’action effectuée lors de la dernière interaction (impression ou clic). Vous pouvez comparer le type d’action de la dernière interaction et l’horodatage de la dernière interaction avec les données d’attribution que vous obtenez d’autres réseaux publicitaires, puis décider du réseau gagnant.

Vérifier la configuration

Tout d’abord, vérifiez que vous utilisez une version d’application prenant en charge la solution. Les versions minimales sont les suivantes :

  • Facebook : version 428
  • Instagram : version 296
  • Facebook Lite : version 411

Vous pouvez vérifier votre configuration en suivant les étapes ci-après :

  1. Diffusez la campagne de test en utilisant la procédure Afficher l’aperçu d’une publicité publiée dans le Gestionnaire de publicités
  2. Trouvez la publicité sur Facebook ou Instagram et cliquez dessus
  3. Ajoutez des temps de pause ou des historiques dans votre code à l’Étape 2

Votre application doit recevoir une réponse et la déchiffrer pour voir les données de la campagne.

Option 2 : intégration prise en charge par votre MMP

Étape 1 : mettre à jour le SDK de votre MMP

Mettez à jour le SDK de votre MMP vers une version qui intègre le référent d’installation Meta :

  • SDK AppsFlyer : SDK AppsFlyer 6.14.2 ou ultérieur
  • SDK Adjust : SDK Adjust 4.36.0 ou ultérieur (Flutter 4.36.0 ou ultérieur, Unity 4.37.0 ou ultérieur)
  • SDK Singular ou API S2S : SDK Singular 12.3.0 ou ultérieur (Unity 4.2.0 ou ultérieur, React Native 3.3.0 ou ultérieur, Unreal 2.2.0 ou ultérieur)
  • SDK Kochava : SDK Kochava Android 5.1.0 ou ultérieur
  • SDK Airbridge : SDK Airbridge Android 2.22.3 ou ultérieur
  • SDK Branch : SDK Branch 5.10.1 ou ultérieur

Étape 2 : vérifier que l’ID de votre application Facebook est associé au SDK de votre MMP

Cliquez sur les liens ci-dessous pour accéder aux instructions.

Étape 3 : mettre à jour le fichier AndroidManifest pour votre application (obligatoire pour certains MMP)

Cliquez sur les liens ci-dessous pour accéder aux instructions.

  • Instructions Kochava (section Meta/Facebook)
  • AppsFlyer, Adjust, Singular et Airbridge réalisent automatiquement cette étape via leur SDK
  • Consultez votre MMP si vous utilisez des SDK Flutter/React à la place de ses SDK Android.

Étape 4 : Partager la clé de déchiffrement du référent d’installation avec le MMP pour qu’il puisse déchiffrer les métadonnées du référent

Remarque : cette étape n’est pas requise si vous l’avez déjà faite pour le référent d’installation du Google Play Store.