Intégration du SDK AppsFlyer - Android

android.pngSDK Version:  4.8.9 (Release Notes)

1. Aperçu

Le SDK AppsFlyer offre des fonctionnalités de suivi d'installation d'application et d'évènement. Nous avons développé un SDK très robuste (plus de 7 milliards d'installations du SDK à ce jour), sécurisé, léger et très simple à intégrer.

Vous pouvez suivre les installations, les mises à jour, les sessions et également suivre les événements in-app post-installation (y compris les achats in-app, les niveaux de jeu, etc.) pour évaluer le ROI et le niveau d'engagement des utilisateurs.

Le SDK Android AppsFlyer est compatible avec Android 2.3 et les versions ultérieures.

Si vous migrez depuis le SDK Android AppsFlyer V.3.3.x, cliquez ici.

2. Démarrage rapide

2.1 Téléchargement du SDK 

Pour télécharger le fichier .jar du SDK Android, cliquez ici.

Pour plus de détails sur l'application modèle d'AppsFlyer, cliquez ici.

2.2 Intégration du SDK dans l'application

Vous pouvez intégrer le SDK AppsFlyer soit automatiquement, en utilisant la gestion des dépendances de Gradle, soit manuellement comme fichier SDK .jar.

2.3 Ajouter le SDK à votre projet

La manière la plus simple d'intégrer le SDK à votre projet est d'utiliser la gestion des dépendances de Gradle. Les informations de version peuvent être trouvées ici.

Si vous n’utilisez pas Gradle, téléchargez et ajoutez le fichier AF-Android-SDK.jar au chemin de la catégorie de projet.

Ajouter une dépendance au SDK Android AppsFlyer :

  1.  Ouvrez votre projet (ou créez un nouveau projet), puis ouvrez your_app | build.gradle
  2.  Ajoutez ceci au niveau Module /app/build.gradle avant dépendances :
repositories {
mavenCentral()
}


Ajoutez la dépendance de compilation avec la dernière version du SDK AppsFlyer dans le
fichier build.gradle : 

dependencies {
compile 'com.appsflyer:af-android-sdk:4+@aar'
compile 'com.android.installreferrer:installreferrer:1.0'
}

 Important !

  • La dépendance 'com.android.installreferrer:installreferrer:1.0' est requise pour prendre en charge l'API Install Referrer de Google Play. Utiliser cette API améliore la précision de l’attribution, protège contre les installations frauduleuses et bien plus encore.
  • L’API est supportée par le SDK Android AppsFlyer version 4.8.6 et ultérieures. Si vous effectuez une mise à jour depuis une version du SDK plus ancienne, terminez l’intégration de cette nouvelle dépendance en mettant à jour la méthode init du SDK.
  • Les développeurs qui utilisent ProGuard et souhaitent utiliser la nouvelle API Referrer de Google doivent définir la règle ProGuard suivante :
    -dontwarn com.android.installreferrer
  • Les développeurs qui n'utilisent pas Gradle build ou aar et souhaitent utiliser la nouvelle API de référence de Google doivent ajouter manuellement com.android.installreferrer jar en tant que fichier et s'assurer que l'autorisation suivante est ajoutée :
    com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE

2.4 Définir les Autorisations Requises

Le fichier AndroidManifest.xml doit inclure les autorisations suivantes :

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!-- Optional : -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />

2.5 Définir le BroadcastReceiver dans AndroidManifest.xml

Les deux options suivantes sont disponibles pour mettre en place le récepteur de diffusion du référent d'installation :

Utilisation d'un récepteur de diffusion unique Utilisation d'un récepteur de diffusion multiple

Si dans le fichier AndroidManifest.xml, aucun récepteur n'écoute dans INSTALL_REFERRER, ajoutez le récepteur suivant dans la balise de l'application :

<receiver android:name="com.appsflyer.SingleInstallBroadcastReceiver" android:exported="true">
    <intent-filter>
         <action android:name="com.android.vending.INSTALL_REFERRER" />
     </intent-filter>
</receiver>

3. Initialisation du SDK

L’initialisation du SDK s'effectue en deux étapes. Dans un premier temps, la DevKey est fournie avec un conversionDataListener optionnel. Dans un deuxième temps, l'appel à startTracking indique que toutes les préparations appropriées ont été réalisées (par exemple l'appel à setCustomerUserId) et le SDK peut commencer à suivre tous les évènements.

Pour initialiser le SDK, ajoutez le code suivant dans la fonctiononCreate()de votre Application :

public class AFApplication extends Application {
   private static final String AF_DEV_KEY = <your-appsflyer-dev-key>;
   @Override
   public void onCreate() {
       super.onCreate();
       AppsFlyerConversionListener conversionDataListener =
new AppsFlyerConversionListener() {
           ...
       };
AppsFlyerLib.getInstance().init(AF_DEV_KEY, conversionDataListener, getApplicationContext());
       AppsFlyerLib.getInstance().startTracking(this);   }
}

 Remarque

Vous pouvez également différer l’appel à startTracking et le placer dans toute fonction Activity OnCreate() pertinente.

 Astuce

La dépendance suivante : compile 'com.android.installreferrer:installreferrer:1.0' ainsi que le getApplicationContext() collé dans la méthode suivante : AppsFlyerLib.getInstance().init(AF_DEV_KEY, getConversionListener(), getApplicationContext()); constituent un prérequis au reporting de l'API du nouveau point d'accès Google à AppsFlyer.

Votre dev key est accessible depuis le tableau de bord AppsFlyer dans la section Configuration des Paramètres Application :

Cette API permet à AppsFlyer de détecter les installations, les sessions et les mises à jour.

4. Suivi des évènements In-App

Les évènements In-App permettent d'analyser ce qui se passe dans votre application. Il est recommandé de prendre le temps de définir les évènements que vous souhaitez mesurer pour vous permettre de suivre le ROI (Return On Investment) et la LTV (Lifetime Value).

Le suivi des évènements in-app est réalisé en appelanttrackEventavec le nom de l'évènement et les paramètres de valeur. Consultez la documentation In App Events pour plus de détails.

 Remarque

Le nom d’un évènement in-app ne doit pas dépasser 45 caractères. Les noms d’évènements dépassant 45 caractères n’apparaissent pas dans le tableau de bord, mais seulement dans les API de données brutes, Push et Pull.

//context - use getApplicationContext()
//eventName est tout code qui définit le nom de l'évènement.
//eventValues est une carte des paramètres d'évènement qui forment un évènement rich.  
public static void trackEvent(Context context, String eventName, Map eventValues);


Exemple
: Évènement In-App de niveau atteint

Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.LEVEL,9);
eventValue.put(AFInAppEventParameterName.SCORE,100);
AppsFlyerLib.getInstance().trackEvent(context,AFInAppEventType.LEVEL_ACHIEVED,eventValue);
 

Ceci génère un évènement de type af_level_achieved avec les valeurs d’événement suivantes :
{af_level: 9, af_score: 100}

 Remarque

AppsFlyer prend en charge les caractères non anglais dans les évènements in-app ou toute autre API SDK, en commençant par le SDK Android version 4.8.1.

5. Suivi du Deep Linking

 Astuce

Nous vous recommandons fortement d'intégrer le Deep Linking à votre application. Le Deep Linking est un élément crucial des campagnes de retargeting, et il est fortement recommandé de l'utiliser quand on exécute des campagnes de retargeting.

Pour chacune des activités qui peut être utilisée pour le deep linking (y compris l’activité principale si nécessaire), ajoutez la ligne suivante dans leonCreate() :

AppsFlyerLib.getInstance().sendDeepLinkData(this);

Les activités qui sont censées être ouvertes par le deep linking doivent avoir le filtre d'intention suivant dans les définitions d’activité, du fichier manifeste. 

<intent-filter>
   <action   android:name="android.intent.action.VIEW" />
   <category android:name="android.intent.category.DEFAULT" />
   <category android:name="android.intent.category.BROWSABLE" />
   <data     android:scheme="yourUniquescheme" />
</intent-filter>


Le 
schéma configuré est corrélé avec la valeur af_dp que vous incluez dans votre lien de suivi.

Pour recevoir vos données de deep linking, vous devez implémenter le callback onAppOpenAttribution appelé par le SDK AppsFlyer. Il renvoie les paramètres Onelink/de suivi utilisés pour déclencher l'ouverture de l'application. Vous pouvez ensuite analyser les valeurs et appliquer la logique pour déclencher la page appropriée de l'application.

void onAppOpenAttribution(Map<String,String> attributionData);

Pour plus d'informations, veuillez cliquer ici, ou consulter la section Obtenir les données de conversion de cet article.

6. Suivi des revenus

Use the af_revenue (AFInAppEventParameterName.REVENUE) event parameter to count revenue as part of an in-app event. You can populate it with any numeric value, positive or negative.

 Remarque

af_revenue is the ONLY event parameter that is counted on AppsFlyer as real revenue on the raw data and dashboard. For more details please click here.

Exemple : Évènement In-App de revenu

Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.REVENUE,200);
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE,"category_a");
eventValue.put(AFInAppEventParameterName.CONTENT_ID,"1234567");
eventValue.put(AFInAppEventParameterName.CURRENCY,"USD");
AppsFlyerLib.getInstance().trackEvent(context,AFInAppEventType.PURCHASE,eventValue);

Ceci génère un évènement de type af_purchase avec les valeurs d’événement suivantes :

{af_content_id: “1234567”, af_content_type: “category_a”, af_revenue: 200, af_currency: “USD”}

L’événement d’achat ci-dessus contient un revenu de $200, apparaissant comme revenu dans le tableau de bord. 

 Remarque

Définir le code de la devise locale de l'utilisateur pour les achats in-app - le code devise doit être un code ISO 4217 de 3 caractères. (la valeur par défaut est USD). 

Vous pouvez définir le code devise pour tous les événements en appelant la méthode suivante : AppsFlyer.setCurrencyCode("GBP");

7. Obtenir les données de conversion

AppsFlyer vous permet d’accéder aux données d’attribution de l’utilisateur en temps réel pour chaque nouvelle installation, directement au niveau SDK. En faisant cela, vous pouvez offrir aux utilisateurs un contenu personnalisé ou les envoyer vers des activités spécifiques au sein de l’application, ce qui peut considérablement améliorer leur engagement avec votre application.

Pour accéder aux données de conversion d'AppsFlyer depuis le SDK Android, implémentez le ConversionDataListener :

public interface AppsFlyerConversionListener {
       void onInstallConversionDataLoaded(Map<String,String> conversionData);
       void onInstallConversionFailure(String errorMessage);
}


Exemple :

AppsFlyerLib.getInstance().registerConversionListener(this, new AppsFlyerConversionListener() {
  @Override
  public void onInstallConversionDataLoaded(Map<String, String> conversionData) {
      for (String attrName : conversionData.keySet()) {
          Log.d(AppsFlyerLib.LOG_TAG, "attribute: " + attrName + " = " + conversionData.get(attrName));
      }
  }
  @Override
  public void onInstallConversionFailure(String errorMessage) {
      Log.d(AppsFlyerLib.LOG_TAG, "error getting conversion data: " + errorMessage);
  }
  @Override
  public void onAppOpenAttribution(Map<String, String> conversionData) {
  }
  @Override
  public void onAttributionFailure(String errorMessage) {
      Log.d(AppsFlyerLib.LOG_TAG, "error onAttributionFailure : " + errorMessage);
  }
}); 

8. Identificateurs d’utilisateur

Obtenez le DeviceID AppsFlyer

La DeviceID unique d'AppsFlyer est créée pour chaque nouvelle installation d’une application. Utilisez l’API suivante pour obtenir l’ID unique AppsFlyer :

public String getAppsFlyerUID(Context context);


Exemple d’utilisation :

String appsFlyerId = AppsFlyerLib.getInstance().getAppsFlyerUID(this);

Définir l'ID Utilisateur-Client

Définir votre propre ID client vous permet de croiser votre propre ID unique avec l'ID unique d'AppsFlyer et les ID des autres appareils. Cet ID est disponible dans les rapports CSV d'AppsFlyer, avec les API de postback, vous permettant de les croiser avec vos ID internes.

Pour définir votre ID Utilisateur-Client :

public void setCustomerUserId(String id);


Exemple d’utilisation :

AppsFlyerLib.getInstance().setCustomerUserId("myId");

 Remarque

Le customerUserID DOIT être défini avant le trackAppLaunch. Il est recommandé de définir votre ID Utilisateur-Client dès que possible, car il n'est associé qu'aux événements reportés après son installation. L'ID Utilisateur-Client peut également être utilisé pour compléter les intégrations avec des plate-formes d'analyse, telles que Mixpanel et Swrve.

Pour plus d’informations sur l’ID Utilisateur-Client,cliquez ici.

Définir l'E-mail Utilisateur

AppsFlyer vous permet de déclarer une ou plusieurs adresses e-mail associées à l'appareil. Vous devez collecter les adresses e-mail et les indiquer à AppsFlyer, selon votre méthode de cryptage requise.

Les méthodes de cryptage suivantes sont disponibles : SHA1, MD5, SHA256 et en clair.

Exemple :

public void setUserEmails(String... emails);


Exemple d’utilisation :

AppsFlyerLib.getInstance().setUserEmails(AppsFlyerProperties.EmailsCryptType.MD5, "email1@domain.com","email2@domain.com", ….);

 Remarque

Les renseignements personnels (PII) tels que les adresses e-mail ne sont pasconservés par AppsFlyer et ces informations ne sont pasprésentées dans les rapports. La collecte de ces informations est uniquement à des fins de postback vers la source média.

ID Google Advertising

AppsFlyer collecte automatiquement le google_advertising_id depuis la version 4.8.0 du SDK. L'obligation de collecter l'ID publicitaire Google s'applique uniquement aux versions 4.7.X et supérieures du SDK.

Numéro IMEI et ID Android

By default, IMEI and Android ID are not collected by the SDK if the OS version is higher than KitKat (4.4) and the device contains Google Play Services (on SDK versions 4.8.8 and below the specific app needed GPS). 

Afin d'envoyer explicitement ces ID à AppsFlyer, les développeurs peuvent utiliser les API suivantes :

AppsFlyerLib.getInstance().setImeiData("NUMERO_IMEI_ICI");
AppsFlyerLib.getInstance().setImeiData("ID_ANDROID_ICI");

If the app does NOT contain Google Play Services, the IMEI and Android ID are collected by the SDK. However, apps with Google play services should avoid IMEI collection as this is in violation of the Google Play policy.

Les développeurs peuvent refuser de collecter le numéro IMEI et de l'ID Android en utilisant les API suivantes :

AppsFlyerLib.getInstance().setCollectIMEI(false);
AppsFlyerLib.getInstance().setCollectAndroidID(false)

 Avertissement

Il est IMPÉRATIF de collecter au moins un identificateur d'appareil, l'identifiant publicitaire Google (GAID), l'ID Android, ou le numéro IMEI pour permettre une attribution correcte.

9. Fonctionnalités facultatives

Suivi des désinstallations

AppsFlyer vous permet de suivre les désinstallations d'applications.

Pour terminer complètement et correctement ce processus, vous devezlirececi.

Suivi des notifications Push 

AppsFlyer vous permet de mesurer les notifications push dans le cadre d'une campagne de retargeting.

Pour activer cette fonctionnalité, appelez la méthode suivante dans la méthode onCreate de chaque activité lancée en cliquant sur la notification :

AppsFlyerLib.getInstance().sendPushNotificationData(this);

La charge utile des données doit inclure un objet : af avec la chaîne clé-valeur pertinente :

Exemple :

\"data\": { \"score\": \"5x1\", \"time\": \"15:10\" , \"af\" : { \"c\" : \"test_campaign\" , \"is_retargeting\" : \"true\" , \"pid\" : \"push_provider_int\" } } }"[with deep-linking] \"data\": { \"score\": \"5x1\", \"time\": \"15:10\", \"click_action\" : \"com.example.someAction\" , 
\"af\" : { \"c\" : \"test_campaign\" , \"is_retargeting\" : \"true\" , \"pid\" : \"push_provider_int\" } } }"

 Remarque

Pour obtenir plus d'informations concernant la mesure des notifications push, veuillez lirececi.

Suivi des promotions croisées 

AppsFlyer vous permet de suivre et d'attribuer des installations provenant d'une promotion croisée de l'une de vos applications à partir de l'application actuelle dont dispose l'utilisateur. Les applications de promotion croisée peuvent constituer un facteur de croissance important dans l'élaboration d'installations supplémentaires pour vos applications

Pour obtenir plus d'informations, reportez-vous à l'article concernant le suivi de la promotion croisée, disponible ici.

Suivi des invitations utilisateur

AppsFlyer vous permet de suivre et d'attribuer des installations provenant d'invitations utilisateur au sein de votre application. Le fait de permettre à vos utilisateurs existants d'inviter leurs amis et contacts en tant que nouveaux utilisateurs de votre application peut être un facteur de croissance clé pour votre application.

Pour obtenir plus d'informations, reportez-vous à l'article concernant le suivi des invitations utilisateur, disponible ici.

Configuration du code de devise 

Vous pouvez définir un code de devise global en utilisant l'API ci-dessous, en plus des codes de devise spécifiques pouvant être utilisés dans le cadre de chaque événement in-app envoyé à AppsFlyer. Le code de devise global est utilisé lorsque af_currency

AFInAppEventParameterName.CURRENCY

n'est pas envoyé dans le cadre d'un évènement in-app.

La valeur par défaut est configurée sur le dollar US. Vous pouvez trouver les codes devise ISO acceptables ici.

Utilisez l'API suivante pour configurer le code de devise :

public void setCurrencyCode(String currencyCode);

Exemple d'utilisation :

AppsFlyerLib.getInstance().setCurrencyCode("GBP");

Validation des achats in-app

Le SDK d'AppsFlyer fournit une vérification au niveau du serveur pour les achats in-app. Pour définir le suivi de la validation des achats, appelez la méthode validateAndTrackInAppPurchase dans la fonction onActivityResult.

Cet appel génère automatiquement un évènement in-app af_purchase.

public static void validateAndTrackInAppPurchase(
                     Context context,
                     String publicKey,
                     String signature,
                     String purchaseData,
                     String price,
                     String currency,
                     HashMap<String, String> additionalParameters);

Cet appel contient deux blocs de rappel, l'un pour la « réussite » et l'autre pour « l'échec » (quelle qu'en soit la raison, y compris l'échec de validation).

AppsFlyerLib.getInstance().registerValidatorListener(this,new
    AppsFlyerInAppPurchaseValidatorListener() {
         public void onValidateInApp() {
             Log.d(TAG, "Purchase validated successfully");
         }
         public void onValidateInAppFailure(String error) {
             Log.d(TAG, "onValidateInAppFailure called: " + error);
         }
     });


Exemple d’utilisation :

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  if (requestCode == 1001) {
      String purchaseData = data.getStringExtra("INAPP_PURCHASE_DATA");
      String dataSignature = data.getStringExtra("INAPP_DATA_SIGNATURE");
      if (resultCode == RESULT_OK) {
          HashMap<String,String> event = new HashMap<>();
          event.put(AFInAppEventParameterName.PRICE,"9");
          AppsFlyerLib.getInstance().validateAndTrackInAppPurchase(getApplicationContext(),publicKey, dataSignature, purchaseData, "3.00", "ILS", event);
      }
  }
} 

Anonymisation des données de l'utilisateur

AppsFlyer vous fournit une méthode permettant d'anonymiser des identifiants utilisateur spécifiques dans les analyses AppsFlyer. Cette méthode est conforme aux dernières exigences de confidentialité ainsi qu'aux politiques de confidentialité des données de Facebook. La valeur par défaut est NON, ce qui signifie qu'aucune anonymisation n'est effectuée par défaut.

Utilisez cette API lors de l'initialisation du SDK pour anonymiser explicitement les installations, les évènements et les sessions d'un utilisateur :

public void setDeviceTrackingDisabled(boolean isDisabled);


Exemple d'utilisation :

AppsFlyerLib.getInstance().setDeviceTrackingDisabled(true);

Il est possible de reprendre le suivi en appelant de nouveau deviceTrackingDisabled défini sur false.

 Avertissement

L'anonymisation des utilisateurs impacte FORTEMENT vos informations d'attribution.
Utilisez cette option UNIQUEMENT pour les régions dans lesquelles vous êtes légalement tenu de ne pas collecter les informations de vos utilisateurs.

Personnalisation du temps entre les sessions

Pour qu'AppsFlyer puisse considérer que deux sessions sont distinctes, le temps par défaut entre chaque session doit être d'au moins 5 secondes. Une session débute lorsque l'utilisateur ouvre l'application. Si vous souhaitez définir une durée différente entre les sessions, utilisez l'API suivante : AppsFlyerLib.setMinTimeBetweenSessions(int seconds);

Sessions d'arrière-plan pour applications utilitaires

Si votre application est une application utilitaire s'exécutant en arrière-plan, vous pouvez utiliser l'API suivante dans le composant onCreate() - de votre activité :

public void reportTrackSession(Context context);


Exemple d’utilisation :

AppsFlyerLib.getInstance().reportTrackSession(context);

Suivi des applications hors magasin 

 Remarque

Google Play est la boutique par défaut. Si vous mettez votre application en ligne uniquement sur Google Play, veuillez passer cette section.

Pour effectuer le suivi des installations hors Google Play, définissez le canal/la boutique dans le fichier AndroidManifest.xml de l'application en indiquant un canal unique ou un nom de boutique pour chaque fichier APK. La valeur CANAL est sensible à la casse.

Exemples :

<meta-data android:name="CHANNEL" android:value="Amazon" />
<meta-data android:name="CHANNEL" android:value="Standalone"/>
<meta-data android:name="CHANNEL" android:value="Verizon" />

 Remarque

Vous devez définir la valeur CANAL dans le tableau de bord AppsFlyer lors de la configuration de l'application.

Placez la balise de métadonnées avant la balise </application>.

Pour obtenir plus d'informations sur la manière de suivre les installations des applications hors magasin, veuillez lire ceci.

Exclusion

Dans certains cas extrêmes, vous pouvez vouloir arrêter tout suivi SDK pour des raisons de conformité légale et de respect de la vie privée. L'API isStopTracking le permet. Une fois cette API appelée, notre SDK ne communiquera plus avec nos serveurs et cessera de fonctionner.

AppsFlyerLib.getInstance().stopTracking(true, context);

Dans chaque évènement, le SDK peut être réactivé en appelant la même API, avec la valeur false.

 Avertissement

Utilisez cette API uniquement lorsque vous souhaitez exclure cet utilisateur de tout suivi. L'utilisation de cette API impacte FORTEMENT votre reporting et votre attribution.

Retarder l'initialisation du SDK dans l'attente du customerUserID

Il est possible d'attendre que le customerUserID soit défini pour lancer l'initialisation du SDK. Cette fonctionnalité permet de s'assurer que le SDK ne commence pas avant d'avoir obtenu le customerUserID. En cas d'utilisation de cette API, tous les évènements in-app ainsi que tous les appels à une API SDK sont ignorés, jusqu'à ce que le customerUserID soit fourni et suivi.

Pour indiquer que le SDK doit retarder l'initialisation dans l'attente de l'ID utilisateur client, appelez l'API AppsFlyerLib.getInstance().waitForCustomerUserId(true); immédiatement avant la méthode init(). Le reste de l'initialisation du SDK doit rester inchangé.

Une fois le customerUserID fourni, appelez l'API AppsFlyerLib.getInstance().setCustomerIdAndTrack("customer_id", this); afin de fournir au SDK l'ID utilisateur client approprié et de déclencher le suivi normal du SDK.

Le code doit apparaître comme suit :
public class AFApplication extends Application {⏎   private static final String AF_DEV_KEY = ;⏎   @Override⏎   public void onCreate() {⏎       super.onCreate();⏎       AppsFlyerConversionListener conversionDataListener = ⏎       new AppsFlyerConversionListener() {
           ...
       };⏎       AppsFlyerLib.getInstance().waitForCustomerUserId(true); ⏎       AppsFlyerLib.getInstance().init(AF_DEV_KEY, getConversionListener(), getApplicationContext());⏎       AppsFlyerLib.getInstance().startTracking(this);⏎       // Faites ce qu'il faut pour obtenir le customerUserID⏎       // ...⏎       // tout code SDK d'AppsFlyer appelé ici sera ignoré⏎      //Une fois le customerUserID disponible, appelez l'API suivante :⏎ AppsFlyerLib.getInstance().setCustomerIdAndTrack("customer_id", this);⏎   }⏎}

 Avertissement

Utilisez cette API uniquement dans les cas appropriés à votre logique métier. L'utilisation de cette API augmente les risques de divergences et pourrait rendre l'application plus exposée à la fraude.

Setting Additional Data

The setAdditionalData API is required to integrate on the SDK level with several external partner platforms, including Segment, Adobe and Urban Airship. Use this API only if the integration article of the platform specifically states setAdditionalData API is needed.
The following is a code example for implementing setAdditionalData on Android:

HashMap<String,Object> CustomDataMap = new HashMap<>();
CustomDataMap.put("custom_param_1","value_of_param_1");
AppsFlyerLib.getInstance().setAdditionalData(CustomDataMap);

10. Test de l'intégration du SDK

Pour tester l'intégration du SDK avant et après l'envoi à la boutique Google Play,cliquez ici.

11. Problèmes connus

Si vous utilisez ProGuard et que vous rencontrez un avertissement concernant notre classe AFKeystoreWrapper, ajoutez le code suivant à votre fichier de règles ProGuard :

-dontwarn com.appsflyer.*
Cet article vous a-t-il été utile ?
Utilisateurs qui ont trouvé cela utile : 10 sur 12

Commentaires

0 commentaire

Veuillez vous connecter pour laisser un commentaire.