经过几天尝试不同的方法,我们已经没有选择了。我们的目标是拥有一个可以使用分支链接打开/安装的 Reach Native 应用程序。用户的使用情况以及他们如何进入应用程序(属性)的数据最终发送到 Mixpanel。由于我们还有其他几个地方要分析使用数据,并且我们希望保持平台耦合较弱,因此我们选择使用 Segment。
关键挑战是让 Branch 确定的归因数据应用于 Mixpanel 中与一般应用程序使用相同的不同 ID。
例如,“已查看文章 123”的事件分配给用户 ABC,而来自同一个人、同一部电话、同一会话期间的事件,即“通过 QR 码打开应用程序”的事件分配给用户 DEF。(这些事件名称只是说明性的,上下文实际上在元数据中。)
到目前为止,我已经尝试使用 React Native led 设置
import analytics from '@segment/analytics-react-native';
import branch from '@segment/analytics-react-native-branch';
import mixpanel from '@segment/analytics-react-native-mixpanel';
analytics.setup(WRITE_KEY, {
using: [branch, mixpanel]
});
我们还尝试了一种更原生的方法,其中初始化 Segment 和 Branch 并在其中共享 idMainApplication.java
Analytics analytics = new Analytics.Builder(this, WRITE_KEY).trackApplicationLifecycleEvents().recordScreenViews().build();
Analytics.setSingletonInstance(analytics);
Branch.getInstance().setRequestMetadata(
"$mixpanel_distinct_id",
Analytics.with(this).getAnalyticsContext().traits().anonymousId()
);
Branch.getInstance().setRequestMetadata(
"$segment_anonymous_id",
Analytics.with(this).getAnalyticsContext().traits().anonymousId()
);
我们还尝试了另一个版本,其中也初始化了 Mixpanel,MainApplication.java
并从那里传递了不同的 Id。
MixpanelAPI mp = MixpanelAPI.getInstance(this, MP_KEY);
Branch.getInstance().setRequestMetadata("$mixpanel_distinct_id", mp.getDistinctId());
在试验这些原生设置(在几种不同的排列中)时,我们调用了 SegmentsuseNativeConfiguration
方法。
有了实际云路由的记录,我们也尝试了我们能想象到的每一个合理的设置。包含:
- 段 -> MP AND 分支 -> MP
- 段 -> MP AND 段 -> 分支 -> MP
- Segment -> MP AND Segment <-> Branch -> MP(注意 Branch 正在导入和导出 Segment 数据)
- 段 -> 分支 -> MP
我们已经尝试了可能配置的许多不同排列,但没有一个能够创建正确连接的数据。我们愿意用替代方案替换 Segment 或 Branch,但由于业务限制,无法替换 Mixpanel 和 React Native。
“Segment -> Branch -> MP”的最新云配置显示出最大的希望,但即使文档说识别调用已传递给 Branch,但在调试时它们不是。这意味着永远无法在 Mixpanel 中填充用户的个人资料。
任何可以提供的帮助将不胜感激。