Install SDK
了解如何下载和安装Android SDK。
开始之前
Get started with our SDK integration wizard
安装Android SDK
使用您喜欢的方法安装Android SDK:通过Gradle或手动安装。
Install using Gradle
第1步:声明存储库
In the Project build.gradle
file, declare the mavenCentral
repository:
// ...
repositories {
mavenCentral()
}
/// ...
步骤2:添加依赖项
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
- 在Android Studio中,将文件夹结构从Android切换到Project:
- 下载最新Android SDK并将其粘贴到Android项目中,在app > libs下。
- 右键点击粘贴的
jar
并选择添加为资料库 。当出现提示时,点击重构。If prompted to commit to git, click OK
.
设置所需权限
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.
注意
- If your app participates in the Designed for Families program:
- 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.- For apps that target API level 32 (Android 12L) or older, this permission is not needed.
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" />
Revoking the AD_ID permission
According to Google’s Policy, apps that target children must not transmit the Advertising ID.
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"/>
ProGuard规则
可选
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:
AppsFlyer SDK ProGuard rules
-keep class com.appsflyer.** { *; }
-keep class kotlin.jvm.internal.** { *; }
备份规则
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 backup 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>
Adding store referrer libraries
The AppsFlyer SDK supports several store referrer libraries. Using a store referrer improves attribution accuracy.
You only need to add the referrer dependency, the SDK takes care of the rest.
Google Play Install Referrer
Add the following dependency to your build.gradle
:
dependencies {
// ...
implementation "com.android.installreferrer:installreferrer:2.2"
}
Google Play Install Referrer ProGuard rules
-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:
- 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.
- AppsFlyer SDK sends the install event, along with the attribution data, to the AppsFlyer servers.
先决条件
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
tag.
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"
}
Xiaomi GetApps store referrer ProGuard rules
-keep public class com.miui.referrer.** {*;}
注意
Samsung store referrer is supported out-of-the-box starting SDK
V6.1.1
and does not require any additional integration.
已知问题
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.
在Android Studio中打开您的APK,检查您是否已经配置了必要文件。
如果这些文件缺失,SDK就无法向我们的服务器发出网络请求。发生这种情况时,您需要联系您的CSM或者技术支持人员寻求帮助。
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.
已更新 about 2 months ago