Adobe启动Android SDK

将Branch深度链接接的功能和属性添加到Adobe Marketing Cloud应用程序。借助Branch 的链接平台,移动开发人员和营销人员可以通过世界一流的深度链接接和归因来发展其移动业务。

Google Play服务版本17+

2019年6月进行的一次重大Google Play服务更改导致Branch的Android SDK(以及其他各种跨平台SDK,例如Unity)停止收集Android AID。

为确保Branch深度链接接和归因继续有效,您必须遵循Google的更新说明这里

如果您运行的Google Play服务版本低于17,则无需更新。

特征

  1. 使用Adobe SDK跟踪的所有事件将自动发送到Branch,而无需进行任何其他工作
  2. 所有核心Branch功能均可访问

要求

  • Android API级别16或更高
  • Adobe核心平台

不需要Branch SDK

由于Adobe Branch扩展是自动包含Branch SDK的子依赖项的包装,因此您不需要-我们也不建议在应用中单独实现Branch SDK。

示例应用

可以在Adobe BranchExtension-Android存储库的AdobeBranchExample
项目中找到一个示例应用程序。

安装&使用

请注意,Adobe Experience Platform(AEP)SDK和AdobeMobileLibrary不能共存于同一项目中。

这里简要概述了如何在您的应用程序中使用AdobeBranchExtension:

  1. 您将需要配置您的应用程序,并在Branch指标仪表板获得一个BranchAPI密钥。您可以在此处的Branch文档中阅读有关配置仪表板的更多信息。

  2. 对于应用程序集成,您'将需要按照此处Branch文档中所述的说明进行操作(忽略部分"加载Branch"和"初始化Branch" ):

  3. 要进行深度链接接,您需要将Branch域,应用URI方案和Branch键添加到app的清单文件中。

  4. 在Adobe仪表板中,激活Branch并将您的Branch键添加到您的app的配置中。

图像

  1. 将AdobeBranchExtension添加到您的应用的build.gradle中。
    implementation 'io.branch.sdk.android:adobebranchextension:1.+'

  2. MobileCore in configureWithAppID注册BranchAdobeBranchExtension

public class CustomApplicationClass extends Application {
    private static final String MY_ADOBE_APP_ID = "launch-{adobe app guid}-development";

    @Override
    public void onCreate() {
        super.onCreate();

        MobileCore.setApplication(this);

        try {
            AdobeBranchExtension.registerExtension(this);
            MobileCore.start(new AdobeCallback () {
                @Override public void call(Object o) {
                    MobileCore.configureWithAppID(ADOBE_APP_ID);
                }
            });
        } catch (InvalidInitException ignored) {}
    ...
    }
  1. 初始化Branch会话,并在启动器活动' s onStart 方法中注册BranchReferralInitListener 。您可以在此文档看到有关深度链接路由的最佳实践
AdobeBranch.initSession(new Branch.BranchReferralInitListener() {
  @Override
    public void onInitFinished(JSONObject referringParams, BranchError error) {
    try {
      // Retrieve deep link params and route to content appropriately
      if (referringParams.has("+clicked_branch_link") && referringParams.getBoolean("+clicked_branch_link")) {
        // Handle your Branch deep link routing in the callback
      }
    } catch (JSONException e) {
      // referringParams property doesn't exist
    }
  }
}, getIntent().getData(), this);

默认情况下, AdobeBranch 将延迟会话初始化750毫秒,以等待Adobe Launch初始化并从中收集Adobe ID。如果您不希望延迟会话初始化,请在以下方法中将0作为delay参数传入。

AdobeBranch.initSession(Branch.BranchReferralInitListener callback, Uri data, Activity activity, int delay)

实现Branch功能

一旦你'已经添加的AdobeBranchExtension和分支,可以始终使用分公司直接提供(以下除外getAutoInstanceinitSessionreInitSessionsessionBuilder 的方法)。您可以在 Android版的Branch文档中了解有关使用Branch功能的信息。

自动:跟踪动作和状态

当您在Adobe Launch中跟踪动作和状态时,动作和状态消息也会发送到Branch,并显示在
Branch仪表板上。这使您可以在应用程序'的操作中跟踪深层链接活动和病毒共享的有效性。

If the trackAction function is used to track Adobe events, custom events will come under "Analytics Track" on the Branch dashboard. If dispatchEvent function is used to track Adobe events, custom events will come under the custom names on the Branch dashboard.

private void doPurchase(View view) {
        Long timestamp = System.currentTimeMillis()/1000;

        Map<String, Object> eventData = new HashMap<>();
        eventData.put(AdobeBranch.KEY_AFFILIATION, "Branch Metrics Company Store");
        eventData.put(AdobeBranch.KEY_COUPON, "SATURDAY NIGHT SPECIAL");
        eventData.put(AdobeBranch.KEY_CURRENCY, "USD");
        eventData.put(AdobeBranch.KEY_DESCRIPTION, model.getDescription());
        eventData.put(AdobeBranch.KEY_REVENUE, model.getPrice());
        eventData.put(AdobeBranch.KEY_SHIPPING, 0.99);
        eventData.put(AdobeBranch.KEY_TAX, (model.getPrice() * 0.077));
        eventData.put(AdobeBranch.KEY_TRANSACTION_ID, UUID.randomUUID().toString());

        eventData.put("category", "Arts & Entertainment");
        eventData.put("product_id", model.getId());
        eventData.put("sku", "sku-be-doo");
        eventData.put("timestamp", timestamp.toString());

        eventData.put("custom1", "Custom Data 1");
        eventData.put("custom2", "Custom Data 2");

        Event newEvent = new Event.Builder("PURCHASE",
                "com.adobe.eventType.generic.track",
                "com.adobe.eventSource.requestContent")
                .setEventData(eventData).build();

        // dispatch the analytics event
        MobileCore.dispatchEvent(newEvent, this);
    }

请注意,默认情况下会处理所有Adobe Events。要有选择地使用自定义名称跟踪事件,您可以按以下步骤注册白名单:

List<AdobeBranch.EventTypeSource> apiWhitelist = new ArrayList<>();
apiWhitelist.add(new AdobeBranch.EventTypeSource("com.adobe.eventType.generic.track", "com.adobe.eventSource.requestContent"));
apiWhitelist.add(new AdobeBranch.EventTypeSource("io.branch.eventType.generic.track", "io.branch.eventSource.requestContent"));

AdobeBranch.registerAdobeBranchEvents(apiWhitelist);

其他白名单配置实施说明:

  • 白名单配置必须在Adobe初始化完成后进行。
  • 空的白名单将不会监听任何事件。
  • 白名单为空(默认)将侦听所有Adobe事件。
  • 非空白名单将仅侦听列表中的那些事件。

更新7 天前

Adobe启动Android SDK


建议的编辑仅限于API参考页

您只能建议对Markdown正文内容进行修改,而不能建议对API规范进行修改。