参考这篇分步指南,在 Android 端 Adobe Experience 应用中集成和配置 Adjust Extension,并通过该扩展无缝集成 Adjust 和 Adobe Experience SDK,捕捉并发送归因数据和应用内事件信息。
通过该扩展,您可以向 Adjust 发送安装、会话、自定义应用内事件和其他类型的数据。参考本指南,设置和配置 Adjust Extension,并验证您是否能向 Adjust 正常发送安装信息。
设置您的项目
按照以下步骤操作,设置您的项目,支持适用于 Adobe Experience SDK 的 Adjust Extension。
安装 Adjust Extension
要开始使用针对 Adobe Experience SDK 的 Adjust Extension,您首先要以依赖形式,将 Extension 添加至项目中。相关包可通过 Maven 获取。
添加下列行至您的 build.gradle
文件:
com.adjust.adobeextension:adobeextension
-
适用于 Adobe Experience 的 Adjust Extension。
com.adjust.sdk:adjust-android
-
Adjust Android SDK。
com.android.installreferrer:installreferrer
-
Android Install Referrer API。
dependencies { implementation 'com.adjust.adobeextension:adobeextension:3.0.0' implementation 'com.adjust.sdk:adjust-android:5.4.2' implementation 'com.adobe.marketing.mobile:core:3.2.0' implementation 'com.android.installreferrer:installreferrer:2.2'}
添加 Google Play 服务
定向到 Google Play 商店的应用必须使用gps_adid
(Google 广告 ID) 来识别设备。要访问 gps_adid
,请将 play-services-ads-identifier
AAR 添加至您的项目。
如果您使用的是 Maven,请将 com.google.android.gms:play-services-ads-identifier
实装添加到 build.gradle
文件。
dependencies { implementation 'com.google.android.gms:play-services-ads-identifier:18.0.1'}
配置许可权限
针对 Adobe Experience SDK 的 Adjust Extension 已默认包含所有必要的权限许可。您无需为扩展添加任何权限。
如果您要让应用符合 COPPA (儿童在线隐私保护法) 规定,或者应用并不面向 Google Play 商店,请务必在您的 AndroidManifest.xml
文件中使用 remove
命令移除 com.google.android.gms.permission.AD_ID
权限。
<uses-permission android:name="com.google.android.gms.permission.AD_ID" tools:node="remove"/>
集成指南
完成项目设置后,您就可以按照下列指南,集成 Adjust SDK 了:
- 将 Adjust Extension 添加至您的 Adobe Experience 应用。
- 请将日志级别设置为 详细 ,以便从 Extension 中调取尽可能多的信息。
- 在 sandbox 模式下测试 Extension,确保数据能正常发送至 Adjust。
- 允许应用打开深度链接。
- 注册 Adobe Experience SDK。
为此,您需要创建两个文件:
MainApp.java
: 在此文件中配置并注册 Adjust SDK。MainActivity.java
: 在此文件中配置深度链接处理方法。
导入类
首先,您需要将一些类导入到应用程序文件中。请将以下类导入您的 MainApp.java
文件:
android.app.Application
-
用于创建主应用程序。
android.util.Log
-
用于输出日志。
com.adjust.adobeextension.AdjustAdobeExtension
-
用于注册 Adjust Extension。
com.adjust.adobeextension.AdjustAdobeExtensionConfig
-
用于配置 Adjust Extension。
com.adobe.marketing.mobile.AdobeCallback
-
在注册扩展时使用。
com.adobe.marketing.mobile.Extension
-
用于创建扩展列表。
com.adobe.marketing.mobile.Analytics
-
用于在 Adobe Experience SDK 中启用数据分析。
com.adobe.marketing.mobile.Identity
-
用于在 Adobe Experience SDK 中管理用户身份。
com.adobe.marketing.mobile.LoggingMode
-
用于在 Adobe Experience SDK 中配置日志。
com.adobe.marketing.mobile.MobileCore
-
用于与 Adobe Experience SDK 的通讯。
import android.app.Application;import android.util.Log;
import com.adjust.adobeextension.AdjustAdobeExtension;import com.adjust.adobeextension.AdjustAdobeExtensionConfig;import com.adobe.marketing.mobile.AdobeCallback;import com.adobe.marketing.mobile.Extension;import com.adobe.marketing.mobile.Analytics;import com.adobe.marketing.mobile.Identity;import com.adobe.marketing.mobile.LoggingMode;import com.adobe.marketing.mobile.MobileCore;
请将以下类导入您的 MainActivity.java
文件:
android.content.Intent
-
用于从 Android 获取操作 intent。
android.net.Uri
-
用于输入深度链接。
android.os.Bundle
-
用于输入应用的已保存实例状态。
android.view.View
-
用于输入应用的视图。
androidx.appcompat.app.AppCompatActivity
-
用于创建主要活动。请参考
AppCompatActivity
文档。 com.adjust.sdk.Adjust
-
用于访问 Adjust API。
com.adjust.sdk.AdjustDeeplink
-
用于创建 Adjust 深度链接。
import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.view.View;
import androidx.appcompat.app.AppCompatActivity;
import com.adjust.sdk.Adjust;import com.adjust.sdk.AdjustDeeplink;
创建全局 Application 类
为 Adobe Experience SDK 注册 Adjust Android Extension 时,我们推荐使用全局 Android Application 类。如果您尚未创建 Application,请按照下列步骤操作:
- 在
MainApp.java
文件中,创建扩展Application
的新类。
public class MainApp extends Application {}
-
打开
AndroidManifest.xml
,找到<application>
元素。 -
将新类的名称添加为
android:name
属性。在此示例中,新Application
类的名称为MainApp
。<application android:name=".MainApp"></application> -
在
Application
类中找到或添加onCreate
方法。
public class MainApp extends Application { @Override public void onCreate() { super.onCreate(); }}
配置 Adjust Extension
创建 Application
类并调用 onCreate
后,请按照以下步骤操作,配置针对 Adobe Experience SDK 的 Adjust Android Extension:
- 在您的
onCreate
函数中调用MobileCore.setApplication(this)
,以注册应用程序上下文。
public void onCreate() { super.onCreate();
MobileCore.setApplication(this);}
- 使用以下参数调用
MobileCore.setLogLevel
方法来设置日志级别:
logLevel
:String
- The level of logging you want to enable.
LoggingMode.VERBOSE
: 启用完整日志。LoggingMode.DEBUG
: 禁用详细日志。LoggingMode.WARNING
: 仅记录错误和警告。LoggingMode.ERROR
: 仅记录错误。
public void onCreate() { super.onCreate();
MobileCore.setApplication(this); MobileCore.setLogLevel(LoggingMode.VERBOSE);}
- 新建
try...catch
块来配置 Adjust Extension:
public void onCreate() { super.onCreate();
MobileCore.setApplication(this); MobileCore.setLogLevel(LoggingMode.VERBOSE);
try { } catch (Exception e) { Log.e("example", "Exception occurred during configuration: " + e.getMessage()); }}
- 在
try
块中调用MobileCore.configureWithAppID
,发送您的 Adobe app ID。
try { MobileCore.configureWithAppID("your_adobe_app_id");} catch (Exception e) { Log.e("example", "Exception occurred during configuration: " + e.getMessage());}
- 在
try
块中,使用以下参数创建AdjustAdobeExtensionConfig
的新实例:
environment
:String
- The environment in which your device is running.
- Pass
AdjustAdobeExtensionConfig.ENVIRONMENT_SANDBOX
when testing. - Pass
AdjustAdobeExtensionConfig.ENVIRONMENT_PRODUCTION
when running the app in production.
- Pass
try { MobileCore.configureWithAppID("your_adobe_app_id");
AdjustAdobeExtensionConfig config = new AdjustAdobeExtensionConfig(AdjustAdobeExtensionConfig.ENVIRONMENT_SANDBOX);} catch (Exception e) { Log.e("example", "Exception occurred during configuration: " + e.getMessage());}
- 以参数形式使用
AdjustAdobeExtensionConfig
实例,调用AdjustAdobeExtension.setConfiguration
。
try { MobileCore.configureWithAppID("your_adobe_app_id");
AdjustAdobeExtensionConfig config = new AdjustAdobeExtensionConfig(AdjustAdobeExtensionConfig.ENVIRONMENT_SANDBOX); AdjustAdobeExtension.setConfiguration(config);} catch (Exception e) { Log.e("example", "Exception occurred during configuration: " + e.getMessage());}
注册 Adjust Extension
配置好 Adjust Extension 后,您需要将其注册到 Adobe Experience SDK。为此,请进行下列操作:
- 在配置块下新建
try...catch
块。
public class MainApp extends Application { @Override public void onCreate() { super.onCreate();
MobileCore.setApplication(this); MobileCore.setLogLevel(LoggingMode.VERBOSE);
try { MobileCore.configureWithAppID("your_adobe_app_id");
AdjustAdobeExtensionConfig config = new AdjustAdobeExtensionConfig(AdjustAdobeExtensionConfig.ENVIRONMENT_SANDBOX); AdjustAdobeExtension.setConfiguration(config); } catch (Exception e) { Log.e("example", "Exception occurred during configuration: " + e.getMessage()); }
try { } catch (Exception e) { Log.e("example", "Exception occurred while registering Extension: " + e.getMessage()); } }}
- 在
try
块中创建要注册扩展程序的新列表。除AdjustAdobeExtension
外,本指南中的示例还导入了Analytics
和Identity
扩展。
extensions
:List<Class<? extends Extension>>
- Your list of extensions.
try { List<Class<? extends Extension>> extensions = Arrays.asList( Analytics.EXTENSION, Identity.EXTENSION, AdjustAdobeExtension.EXTENSION);} catch (Exception e) { Log.e("example", "Exception occurred while registering Extension: " + e.getMessage());}
- 在
try
块中,使用扩展列表和以下回传参数调用MobileCore.registerExtensions
方法:
completionCallback
:AdobeCallback
- A callback function that fires when registration completes.
try { List<Class<? extends Extension>> extensions = Arrays.asList( Analytics.EXTENSION, Identity.EXTENSION, AdjustAdobeExtension.EXTENSION); MobileCore.registerExtensions(extensions, new AdobeCallback<object>() { @Override public void call(Object o) { Log.d("example", "Adjust Adobe Extension SDK initialized"); } });} catch (Exception e) { Log.e("example", "Exception occurred while registering Extension: " + e.getMessage());}
设置您的 activity 文件
下一步,请设置您的 MainActivity.java
文件,以备稍后设置 Adjust 功能。在本指南中,我们仅设置 onCreate
函数,用来处理应用程序的启动。
- 创建一个名为
MainActivity
的新公共类。该类应当继承AppCompatActivity
类。
public class MainActivity extends AppCompatActivity {}
- 创建一个名为
onCreate
的新 protected override 函数。该函数会接收savedInstanceState
并返回void
。
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) {}}
- 在
onCreate
函数中,使用savedInstanceState
调用super.onCreate
来创建活动。
@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);}
- 然后调用
setContentView
,将您的活动映射到应用布局。在本示例中,布局文件名为activity_main.xml
。
@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);}
设置深度链接处理
要为深度链接打开配置针对 Adobe Experience SDK 的 Adjust Android Extension,请按照下列步骤操作:
- 在
onCreate
函数中创建一个名为intent
的新Intent
变量,并将getIntent()
的输出指定给它。
@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
Intent intent = getIntent();}
- 创建一个名为
data
的新Uri
变量,并为其指定intent.getData()
的输出。
@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
Intent intent = getIntent(); Uri data = intent.getData();}
- 使用
data
变量构建新的AdjustDeeplink
实例。
@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
Intent intent = getIntent(); Uri data = intent.getData(); AdjustDeeplink adjustDeeplink = new AdjustDeeplink(data);}
- 要打开 URL,请将您的
AdjustDeeplink
实例和getApplicationContext()
传递至Adjust.processDeeplink
方法。
@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
Intent intent = getIntent(); Uri data = intent.getData(); AdjustDeeplink adjustDeeplink = new AdjustDeeplink(data); Adjust.processDeeplink(adjustDeeplink, getApplicationContext());}
如果您使用的是品牌化短链接,那么可以选择使用 Adjust.processAndResolveDeeplink
方法解析短链接,并将其返回至回传函数。
@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
Intent intent = getIntent(); Uri data = intent.getData(); AdjustDeeplink adjustDeeplink = new AdjustDeeplink(data); Adjust.processAndResolveDeeplink(adjustDeeplink, getApplicationContext(), new OnDeeplinkResolvedListener() { @Override public void onDeeplinkResolved(String s) { Log.d("example", "Unwrapped short link: " + s); } });}
完成上述步骤后,请创建并运行应用。在日志查看器中,设置过滤器tag:Adjust
,仅显示与 Adjust Extension 相关的日志。启动应用后,您应当看到 Install tracked
信息。