开始使用安卓 SDK
我们即将发布最新版本的安卓 SDK。想要抢先体验新功能?具体优化内容:
强化对拥有超级应用和单独 BI 系统用户的支持力度
调取 adid
信息更灵活,提高事件去重上限,优化对 SDK 发送信息的缓存和重发。
精炼归因回传信息,简化调试过程,使用更加简单直白的方法名称
点击此处申请体验! 🚀
通过 Adjust 安卓 SDK,您可以在自己的安卓应用中跟踪归因、事件及更多数据。请按照本指南中说明的步骤操作,在应用内设置 Adjust SDK。您还可以在GitHub 上查看我们的示例应用。
要开始使用 Adjust SDK,您首先要将其作为 dependency 添加至项目中。
Adjust SDK 集成支持的最低安卓 API 级别为 9 (Gingerbread)。web view 扩展支持的最低安卓 API 级别为 17 (Jelly Bean)。
全部展开
添加下列行至您的 build.gradle
文件:
dependencies {
implementation 'com.adjust.sdk:adjust-android:4.38.3'
implementation 'com.android.installreferrer:installreferrer:2.2'
// Add the following if you are using the Adjust SDK inside web views on your app
implementation 'com.adjust.sdk:adjust-android-webbridge:4.38.3'
}
您可以分别通过 AAR archive 和 JAR 格式下载 Android SDK 和 web view SDK。这些可从我们的发布页面 中下载。
Google Play 商店中的应用需要使用 Google 广告 ID 来识别设备。要为我们的 SDK 启用 Google 广告 ID,您需要集成 Google Play 服务 。为此请将 Google Play 服务库加入您的项目。将下列 dependency 加入build.gradle
文件的 dependencies
部分。
dependencies {
implementation 'com.google.android.gms:play-services-ads-identifier:18.0.1'
}
Adjust SDK 并不与任何版本的
play-services-analytics
dependency 绑定。您可以使用任意版本的 Google Play 服务库。
Adjust SDK v4.33.5 及更新版本中包含 App Set ID。
App Set Identifier 是一个唯一标识符,用户在设备上安装您的应用后,您可以通过此标识符监测这些应用的信息。同一位开发者开发的所有应用共享同一个 App Set ID,也就是说您可以从所有应用中收集有用的洞见。要记录设备的 App Set ID,您需要向build.gradle
文件中添加下列权限:
dependencies {
implementation 'com.google.android.gms:play-services-appset:16.0.2'
}
如果您的应用定向到儿童,则应当移除
AD_ID
权限,防止 Adjust SDK 读取该信息。请参阅
设置儿童应用 。
Adjust SDK 需要下列权限。(如尚未添加) 请将其添加至您的 AndroidManifest.xml
文件中:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
如果您的应用并非面向 Google Play 商店,请添加以下权限:
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
如果您在应用中使用 Proguard,请将如下行添加至您的 Proguard 文件:
-keep class com.adjust.sdk.**{ *; }
-keep class com.google.android.gms.common.ConnectionResult {
int SUCCESS;
}
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient {
com.google.android.gms.ads.identifier.AdvertisingIdClient$Info getAdvertisingIdInfo(android.content.Context);
}
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient$Info {
java.lang.String getId();
boolean isLimitAdTrackingEnabled();
}
-keep public class com.android.installreferrer.**{ *; }
应用不在 Google Play 商店发布,请添加下列 com.adjust.sdk
规则:
-keep public class com.adjust.sdk.**{ *; }
Install Referrer 是一种唯一标识符,可用来将应用安装归因至来源。Adjust SDK 需要该信息进行归因。您可以用下列 4 种方法收集 install referrer:
全部展开
Adjust SDK v4.12.0 及更新版本支持 Google Play Referrer API。
要支持 Google Play Referrer API,请确保您的 build.gradle
文件中包含以下内容:
dependencies {
implementation 'com.android.installreferrer:installreferrer:2.2'
}
如果您使用的是 Proguard,请务必将下列设置加入您的 Proguard 文件:
-keep public class com.android.installreferrer.**{ *; }
如果您合作的应用商店支持 INSTALL_REFERRER
intent,则可以用广播接收器获取该信息。将下列 receiver
添加至 AndroidManifest.xml
中的 application
标签:
<receiver android:name="com.adjust.sdk.AdjustReferrerReceiver" android:permission="android.permission.INSTALL_PACKAGES" android:exported="true" >
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
接收器会调取 install referrer 并发送至 Adjust 后端。
如果您使用的是不同的广播接收器,则需要进行设置,以与 Adjust 进行通讯。请按照说明 操作,启用与 Adjust 广播接收器的通讯。
从版本 v4.21.1 开始,Adjust SDK 将支持对装有华为 App Gallery 10.4 或更新版本的设备进行安装跟踪。您无需其他调整和变更,就可以开始使用华为 Referrer API。
Adjust SDK v4.36.0 及更高版本支持Meta Install Referrer 。要启用该功能:
在应用控制面板 中找到您的 Meta app ID。更多信息,请参考 Meta 的应用控制面板文档 。 将应用 ID 作为 字符串 参数传递至AdjustConfig.setFbAppId
方法。
adjustConfig.setFbAppId(<fb_app_id_string>);
Adjust SDK v4.33.0 及以上版本支持使用Samsung referrer 插件 监测 Samsung Galaxy 商店 install referrer 值。
Adjust SDK v4.31.0 及以上版本支持使用小米 referrer 插件 监测 Xiaom install Referrer。
如果您要将 Adjust SDK 集成至标准应用,请按照标准 SDK 设置步骤 操作。如果您要将 SDK 集成到使用 web view,请按照 Web view SDK 设置步骤 操作。
全部展开
我们建议您使用全局安卓Application 类进行 SDK 初始化。如果您的应用中还没有此类,请按照下列步骤操作:
创建一个扩展 Application
的类。 打开 AndroidManifest.xml
文件,找到 <application>
元素。 添加 android:name
属性,并将其设置为 Application 类的名称。例如,如果您的 Application
类名称为 GlobalApplication
:
<application
android:name=".GlobalApplication"
<!-- ... -->
</application>
在 Application 类中找到或添加 onCreate
方法。添加下列代码初始化 Adjust SDK:
import com.adjust.sdk.Adjust;
import com.adjust.sdk.AdjustConfig;
public class GlobalApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
String appToken = "{YourAppToken}";
String environment = AdjustConfig.ENVIRONMENT_SANDBOX;
AdjustConfig config = new AdjustConfig(this, appToken, environment);
Adjust.onCreate(config);
}
}
您可以在 Adjust 控制面板上找到自己的应用识别码。
将 environment
变量设置为 sandbox 或 production 模式。
在进行测试时,应当确保将环境设置为
AdjustConfig.ENVIRONMENT_SANDBOX
。请在向 App Store 提交应用程序前将此设为
AdjustConfig.ENVIRONMENT_PRODUCTION
。
String environment = AdjustConfig.ENVIRONMENT_SANDBOX;
String environment = AdjustConfig.ENVIRONMENT_PRODUCTION;
在开始前,您需要获得 WebView
对象的引用。获得引用后:
调用 webView.getSettings().setJavaScriptEnabled(true)
在 web view 中启用 Javascript。 调用 AdjustBridge.registerAndGetInstance(getApplication(), webview)
,启动 AdjustBridgeInstance
的默认实例。这会将 Adjust bridge 注册为 web view 的 Javascript 接口。 如有必要请调用 AdjustBridge.setWebView()
设置新的 WebView
。 调用 AdjustBridge.unregister()
来注销 AdjustBridgeInstance
和 WebView
。 完成以上步骤后,您的 activity 应如下:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView webView = (WebView) findViewById(R.id.webView);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebChromeClient(newWebChromeClient());
webView.setWebViewClient(newWebViewClient());
AdjustBridge.registerAndGetInstance(getApplication(),webview);
try {
webView.loadUrl("file:///android_asset/AdjustExample-WebView.html");
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
protected void onDestroy() {
AdjustBridge.unregister();
super.onDestroy();
}
}
太棒了!您已经将 Adjust bridge 加入自己的应用。现在,Javascript bridge 将能在您的页面与 Adjust SDK 之间通讯了。
在您的 HTML 文件中,从 SDK 导入 Adjust Javascript 文件:
<script type="text/javascript" src="adjust.js"></script>
<script type="text/javascript" src="adjust_event.js"></script>
<script type="text/javascript" src="adjust_third_party_sharing.js"></script>
<script type="text/javascript" src="adjust_config.js"></script>
添加对 Javascript 文件的引用,然后在 HTML 文件中使用它们来初始化 Adjust SDK:
let yourAppToken = '{YourAppToken}';
let environment = AdjustConfig.EnvironmentSandbox;
let adjustConfig = new AdjustConfig(yourAppToken, environment);
Adjust.onCreate(adjustConfig);
您可以在 Adjust 控制面板上找到自己的应用识别码。
在进行测试时,应当确保将环境设置为
AdjustConfig.EnvironmentSandbox
。请在向 App Store 提交应用程序前将此设为
AdjustConfig.EnvironmentProduction
。
let environment = AdjustConfig.EnvironmentSandbox;
let environment = AdjustConfig.EnvironmentProduction;
您需要设置会话跟踪,SDK 才能向 Adjust 后端传送会话信息。请按照下列说明操作,在应用中进行会话跟踪设置。
全部展开
添加一个私有类 (private class) ,以部署 ActivityLifecycleCallbacks
接口。如果您不能访问该接口,则表示应用仅支持安卓 API level 14 以下版本。您需要按照以下 说明 更新每个活动。如果您的应用活动中有 Adjust.onResume
和 Adjust.onPause
调用,请将其移除。 编辑 onActivityResumed(Activity activity)
方法,添加 Adjust.onResume()
调用。编辑 onActivityPaused(Activity activity)
方法,添加 Adjust.onPause()
调用。 将 onCreate()
方法添加至您的 Adjust SDK 配置步骤。使用已创建 ActivityLifecycleCallbacks
类的实例调用 registerActivityLifecycleCallbacks
:
import com.adjust.sdk.Adjust;
import com.adjust.sdk.AdjustConfig;
public class GlobalApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
String appToken = "{YourAppToken}";
String environment = AdjustConfig.ENVIRONMENT_SANDBOX;
AdjustConfig config = new AdjustConfig(this, appToken, environment);
Adjust.onCreate(config);
registerActivityLifecycleCallbacks(new AdjustLifecycleCallbacks());
}
private static final class AdjustLifecycleCallbacks implements ActivityLifecycleCallbacks {
@Override
public void onActivityResumed(Activity activity) {
Adjust.onResume();
}
@Override
public void onActivityPaused(Activity activity) {
Adjust.onPause();
}
//...
}
}
如果 gradle 文件中的 minSdkVersion
在 9 - 13 之间,请考虑将其变更为 14 或更高,这样可以简化集成流程。请查看 安卓控制面板 了解目前市场上各主要版本的占比。
在暂停或恢复 Activity 时,您需要调用特定方法。这样,Adjust SDK 才不会错过会话的开始或结束。为此,请针对应用中的每个 Activity 进行下列步骤操作:
在活动的 onResume
方法中调用 Adjust.onResume()
。如有必要请创建该方法。 在活动的 onPause
方法中调用 Adjust.onPause()
。如有必要请创建该方法。 完成以上步骤后,您的 Activity 应如下:
import com.adjust.sdk.Adjust;
public class YourActivity extends Activity {
protected void onResume() {
super.onResume();
Adjust.onResume();
}
protected void onPause() {
super.onPause();
Adjust.onPause();
}
}
对您的应用中的每个 Activity 重复以上步骤。取决于编码方式,您也可通过添加所有 Activitiy 的通用超类来实现它。
要设置日志级别请调用 config 实例的 setLogLevel
方法 。
adjustConfig.setLogLevel(LogLevel.WARN);
如果您想禁用所有日志,请将日志级别设置为 suppress
:
AdjustConfig config = new AdjustConfig(this, appToken, environment, true);
config.setLogLevel(LogLevel.SUPRESS);
Adjust.onCreate(config);
太好了!您现在可以创建并运行应用了。请启用日志,检查可能存在的问题。您现在已经准备就绪,可以使用 Adjust SDK 归因用户了。