Installer le SDK

Découvrez comment télécharger et installer le SDK Android.

Avant de commencer

Get started with our SDK integration wizard

Installation du SDK Android

Pour installer le SDK Android, vous pouvez utliser l'une des méthodes suivantes : via Gradle ou manuellement.

Install using Gradle

Recommandé

Étape 1 : déclarer les référentiels
In the Project build.gradle file, declare the mavenCentral repository:

// ...
repositories {
   mavenCentral()
}
/// ...

Étape 2 : ajoutez les dépendances
In the application build.gradle file, add the latest Android SDK package:

dependencies {
    // Get the latest version from https://mvnrepository.com/artifact/com.appsflyer/af-android-sdk
    implementation 'com.appsflyer:af-android-sdk:<<HERE_LATEST_VERSION>>'
    // For example
    // implementation 'com.appsflyer:af-android-sdk:6.12.1>> 
}

Manual install

  1. Dans Android Studio, basculez la structure de dossiers d'Android à Projet :
  2. Téléchargez le dernier SDK Android et collez-le dans votre projet Android, sous app > libs.
  3. Faites un clic droit sur l'élément jar que vous avez collé et sélectionnez Ajouter en tant que bibliothèque. Lorsque vous y êtes invité, cliquez sur Refactoriser.

    Si vous êtes invité dans git, cliquez sur OK.

    .

Définir les autorisations requises

Add the following permissions to AndroidManifest.xml in the manifest section:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package=YOUR_PACKAGE_NAME>

      <uses-permission android:name="android.permission.INTERNET" />
      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

      ...

</manifest>

The AD_ID permission

In early 2022, Google announced a change to the behavior of Google Play Services and fetching of the Android Advertising ID. According to the announcement, apps targeting Android 13 (API 33) and above must declare a Google Play services normal permission in their AndroidManifest.xml file in order to get access to the device’s Advertising ID.

Starting V6.8.0, the SDK adds the AD_ID permission automatically.

📘

Remarque

  • Si votre app participe au programme Designed for Families (conçu pour les familles) :
    • If using SDK V6.8.0 and above, you should Revoke the AD_ID permission.
    • If using SDK older than V6.8.0, don't add this permission to your app.
  • Cette autorisation n'est pas nécessaire pour les apps qui ciblent les API de niveau 32 et - (Android 12L).

Apps that use SDK versions older than V6.8.0 and target Android 13 (API 33) and above must manually include the permission in their AndroidManifest.xml to have access to the Advertising ID:

<uses-permission android:name="com.google.android.gms.permission.AD_ID" />

Révoquer l’autorisation AD_ID

La politique de Google, stipule que toute app ciblant les enfants ne doit pas transmettre l’identifiant publicitaire.

When using SDK V6.8.0 and above, children apps targeting Android 13 (API 33) and above must prevent the permission from getting merged into their app by adding a revoke declaration to their Manifest:

<uses-permission android:name="com.google.android.gms.permission.AD_ID"
 tools:node="remove"/>

Pour plus d'informations, consultez la documentation de Google Play Services.

Règles ProGuard

OPTIONNELLE
If you are using ProGuard and you encounter a warning regarding our AFKeystoreWrapper class, then add the following code to your proguard-rules.pro file:

Règles ProGuard du SDK AppsFlyer

-keep class com.appsflyer.** { *; }
-keep class kotlin.jvm.internal.** { *; }

Règles de sauvegarde

The SDK's AndroidManifest.xml includes rules to opt out of backing up the Shared Preferences data. This is done to avoid retaining the same counters and AppsFlyer ID during reinstallation, thereby preventing the accurate detection of new installs or re-installs.

To merge the SDK backup rules with your app backup rules and to prevent conflicts, perform the following instructions for each use case.

Fix confilict with fullBackupContent=”true”

If you add android:fullBackupContent="true" in the AndroidManifest.xml, you might get the following error:

Manifest merger failed : Attribute application@fullBackupContent value=(true)

To fix this error, add tools:replace="android:fullBackupContent" in the <application> tag in the AndroidManifest.xml file.

Fix conflict with dataExtractionRule=”true”

If you add android:dataExtractionRules="true" in the AndroidManifest.xml, you might get the following error:

Manifest merger failed : Attribute application@dataExtractionRules value=(true)

To fix this error, add tools:replace="android:dataExtractionRules" in the <application> tag in the AndroidManifest.xml file.

Fix conflict with allowBackup=”false”

If you add android:allowBackup="false" in the AndroidManifest.xml, you might get the following error:

Error:
	Attribute application@allowBackup value=(false) from AndroidManifest.xml:
	is also present at [com.appsflyer:af-android-sdk:6.14.0] AndroidManifest.xml: value=(true).
	Suggestion: add 'tools:replace="android:allowBackup"' to <application> element at AndroidManifest.xml to override.

To fix this error, add tools:replace="android:allowBackup” in the <application> tag in the AndroidManifest.xml file.

Merge backup rules in Android 12 and above

If you’re targeting Android 12 and above, and you have your own backup rules specified (android:dataExtractionRules="@xml/my_rules"), in addition to the instructions above, please merge your back rules with the AppsFlyer rules manually by adding the following rule:

<data-extraction-rules>
    <cloud-backup>
        <exclude domain="sharedpref" path="appsflyer-data"/>
    </cloud-backup>
    <device-transfer>
        <exclude domain="sharedpref" path="appsflyer-data"/>
    </device-transfer>
</data-extraction-rules>

Merge backup rules in Android 11 and below

If you’re also targeting Android 11 and lower, and you have your own backup rules specified (android:fullBackupContent="@xml/my_rules"), in addition to the instructions above, please merge your backup rules with the AppsFlyer rules manually by adding the following rule:

<full-backup-content>
    ...//your custom rules
    <exclude domain="sharedpref" path="appsflyer-data"/>
</full-backup-content>

Ajouter des bibliothèques de référents de store

Le SDK AppsFlyer prend en charge différentes bibliothèques de référents de store. Utiliser un référent de store augmente la précision de l’attribution.

Il vous suffit d'ajouter la dépendance du référent et le SDK s'occupe du reste.

Google Play Install Referrer

Add the following dependency to your build.gradle:

dependencies {
    // ...
    implementation "com.android.installreferrer:installreferrer:2.2"
}

Règles ProGuard de référent d'installation Google Play

-keep public class com.android.installreferrer.** { *; }

Meta Install Referrer

Meta install referrer allows AppsFlyer to receive ad campaign metadata from a device’s local storage.

Meta Install Referrer basic flow

The basic flow of the Meta install referrer mechanism is as follows:

  1. Once the SDK initializes, it uses the app's Facebook App ID to make a request to the Meta Content Provider API, retrieving the stored metadata from the Facebook app.
  2. AppsFlyer SDK sends the install event, along with the attribution data, to the AppsFlyer servers.

Conditions préalables

To support the Meta install referrer, the following is required:

  • SDK: Integrate with Android SDK version 6.12.6 or higher.
  • Facebook App Version: Users must have version 428.x.x or above installed on their device.
  • Instagram App Version: Users must have version 296.x.x or above installed on their device.

Configure Meta Install Referrer Support

To enable Meta install referrer support make the Facebook App ID available to the SDK by adding it to the AndroidManifest.xml. This can be done either when integrating the Facebook SDK with the app or when integrating the AppsFlyer SDK with the app.

With Facebook SDK integrated

Refer to Facebook’s official guide to learn how to add the Facebook App ID to AndroidManifest.xml. The SDK will read the Facebook App ID from the meta-data .

Without Facebook SDK integration

Include the following tag in AndroidManifest.xml 

<meta-data android:name="com.appsflyer.FacebookApplicationId" android:value="@string/facebook_application_id" />

Include in your strings.xml file:

<string name="facebook_application_id" translatable="false"><YOUR_FACEBOOK_APP_ID></string>

Huawei Install Referrer

Huawei Referrer is supported in SDK v6.14.0 and above.
Due to changes in the Huawei AppGallery store, previous versions of the AppsFlyer SDK are not able to fetch the referrer from the store.

Add the following repository to your Project's build.gradle:

repositories {
    //...
    maven { url 'https://developer.huawei.com/repo/' }
}

Add the following dependency in the app's build.gradle:

dependencies {
    // ...
    implementation 'com.huawei.hms:componentverifysdk:13.3.1.301'
}

Xiaomi GetApps store referrer

V6.9.0
Add the following dependency to your build.gradle:

dependencies {
  // ...
  implementation "com.miui.referrer:homereferrer:1.0.0.6"
}

Règles ProGuard des référents de store Xiaomi GetApps

-keep public class com.miui.referrer.** {*;}

📘

Remarque

Samsung store referrer is supported out-of-the-box starting SDK V6.1.1 and does not require any additional integration.

Problèmes connus

Missing resource files

SDK V5
If you are using Android SDK V5 and above, make sure that in the APK file, in addition to the classes.dex and resources files, you also have a com > appsflyer > internal folder with files a- and b- inside.
Note: Before SDK 5.3.0, file names are a. and b.

Vérifiez que vous disposez des fichiers requis en ouvrant votre APK dans Android Studio.

En cas d'absence de ces fichiers, le SDK ne pourra pas lancer de requête réseau à notre serveur, et il vous faudra contacter votre CSM ou le centre d'assistance.

Boot Complete

If your app listens for LOCKED_BOOT_COMPLETED, make sure that all interactions with the SDK are initiated from the launcher activity. This precaution prevents the SDK from crashing when attempting to access SharedPreferences on a device that is still locked.