在 Android 中使用 Branch.io 进行无归因的事件



我已经实现了iOS和Android SDK,现在我正在测试环境中测试我的应用程序配置。虽然在 iOS 中一切似乎都运行良好,但我注意到在 Android 中,install事件正确归因于我的快速链接,我发送的任何其他事件(即使我可以在实时视图中正确看到它们(都没有归因于用于打开应用程序的快速链接。

这是我的依赖:

com.android.tools.build:gradle:3.1.1 
com.google.gms:google-services:4.2.0 
io.fabric.tools:gradle:1.31.0 
com.android.support:appcompat-v7:28.0.0 

这里是主要代码行:

@Override
protected void handleOnStart() {
super.handleOnStart();
Branch.enableDebugMode();
// Branch object initialization
Branch.getAutoInstance(this.getActivity().getApplication());
branchInstance = Branch.getInstance();
branchInstance.disableTracking(trackingDisabled);
branchInstance.initSession(new Branch.BranchReferralInitListener() {
@Override
public void onInitFinished(JSONObject referringParams, BranchError error) {
if (error != null) {
log("onInitFinished - " + error.getMessage());
} else {
log("onInitFinished invoked with " + referringParams.toString());
testEvent();
// Retrieve deeplink keys from 'referringParams' and evaluate the values to determine where to route the user
// Check '+clicked_branch_link' before deciding whether to use your Branch routing logic
}
}
}, getActivity().getIntent().getData(), getActivity());
}
@Override
public void onNewIntent(Intent intent) {
this.setIntent(intent);
}
private void testEvent() { 
BranchEvent event = new BranchEvent(BRANCH_STANDARD_EVENT.VIEW_ITEM); 
event.logEvent(this.getActivity()); 
} 

我的AndroidManifest.xml看起来像这样:

<application android:launchMode="singleTask" .....>
<meta-data android:name="io.branch.sdk.BranchKey" android:value="@string/branchio_key_live" />
<meta-data android:name="io.branch.sdk.BranchKey.test" android:value="@string/branchio_key_test" />
<meta-data android:name="io.branch.sdk.TestMode" android:value="@bool/branchio_test_mode" />
<receiver android:enabled="@bool/branchio_track_referral_active" android:name="io.branch.referral.InstallListener" android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
</application>

看起来您的代码与我们在我们的 Android 文档中推荐的代码略有不同,因此我建议您尽可能使您的代码与我们的代码片段保持一致。例如,我们建议在 onStart(( 方法中进行初始化,而您在 handleOnStart(( 中执行初始化。以下是安卓文档: https://docs.branch.io/apps/android/

如果您执行此操作但仍遇到困难,请发送电子邮件给 support@branch.io 并提供您的应用程序 ID,该 ID 可在仪表板上的帐户设置中找到,以便我们进一步调查。

最新更新