Tho*_*ook 9 android event-tracking firebase firebase-analytics firebase-dynamic-links
在工作中,我们尝试在通过 firebase 门户创建动态链接时使用可选的活动跟踪 UTM 参数。
动态链接工作正常,据我从所有官方文档中得知,在创建动态链接时在最后一个可选步骤中添加 UTM 值应该会导致这些值与dynamic_link_app_open
事件一起发送。
但是,当我们查看事件的事件或转化选项卡时,我们没有看到任何归因值dynamic_link_app_open
。我们看到正在发送该事件,但我们只是没有获得广告系列归因值,因此我们不知道哪些广告系列导致了这些事件和转化。
这个特定功能的文档真的很缺乏,这让我们的营销部门感到沮丧,最终与开发人员(即我)合作。
我已经开发了一个解决方法,但它是一个黑客:
在 firebase 门户上创建动态链接时,我将utm_source
,utm_medium
和utm_campaign
查询字符串直接放入深层链接中(出于安全原因,不是我们实际的深层链接,但您明白了):
https://www.example.com?utm_source=Test&utm_medium=Test&utm_campaign=Test
Run Code Online (Sandbox Code Playgroud)
然后在客户端中,我添加了代码,在通过 firebase 动态链接 SDK 传递动态链接后,将这些代码从生成的深层链接中提取出来。有了这 3 位信息,我可以app_open
通过FirebaseAnalytics
SDK将事件发送到 Firebase 分析,如下所示:
FirebaseDynamicLinks.getInstance()
.getDynamicLink(getIntent())
.addOnSuccessListener(this, pendingDynamicLinkData -> {
if (pendingDynamicLinkData != null) {
Uri optionalDynamicDeepLink = pendingDynamicLinkData.getLink();
if (optionalDynamicDeepLink != null) {
List<String> utmSource = optionalDynamicDeepLink.getQueryParameters(UTM_SOURCE);
List<String> utmCampaign = optionalDynamicDeepLink.getQueryParameters(UTM_CAMPAIGN);
List<String> utmMedium = optionalDynamicDeepLink.getQueryParameters(UTM_MEDIUM);
if (!utmSource.isEmpty() && !utmCampaign.isEmpty() && !utmMedium.isEmpty()) {
String utmSourceParam = String.valueOf(utmSource);
String utmCampaignParam = String.valueOf(utmCampaign);
String utmMediumParam = String.valueOf(utmMedium);
Bundle params = new Bundle();
params.putString(FirebaseAnalytics.Param.SOURCE, utmSourceParam);
params.putString(FirebaseAnalytics.Param.CAMPAIGN, utmCampaignParam);
params.putString(FirebaseAnalytics.Param.MEDIUM, utmMediumParam);
FirebaseAnalytics.getInstance(this).logEvent(FirebaseAnalytics.Event.CAMPAIGN_DETAILS, params);
FirebaseAnalytics.getInstance(this).logEvent(FirebaseAnalytics.Event.APP_OPEN, params);
}
String dynamicDeepLink = optionalDynamicDeepLink.toString();
if (!handleDeepLink(dynamicDeepLink)) {
Generic.openLinkInCustomTabs(getApplicationContext(), deepLinkOptional);
}
} else {
if (!handleDeepLink(deepLinkOptional)) {
handleIntent(intent);
}
}
} else {
if (!handleDeepLink(deepLinkOptional)) {
handleIntent(intent);
}
}
}).addOnFailureListener(this, e -> {
if (!handleDeepLink(deepLinkOptional)) {
Generic.openLinkInCustomTabs(getApplicationContext(), deepLinkOptional);
}
});
Run Code Online (Sandbox Code Playgroud)
虽然这有效,但它引出了一个问题;创建动态链接时,可选的广告系列跟踪部分有何意义?大概把utm_source
,utm_medium
并utm_campaign
有应该允许火力以自动神奇地填充dynamic_link_app_open
与所述运动跟踪数据的事件,但事实并非如此。
例如,这是我如何设置可选的最后一步:
然后我多次跟随动态链接进入应用程序,并要求测试人员也这样做。我已经等了 36 多个小时(因为我知道这些事件可能需要一些时间才能传播到云中)并且我们看到dynamic_link_app_open
事件不断增加,这表明我们的动态链接记录了一个事件,但是当我们深入研究该事件时没有收集到 UTM 信息。
firebase的这个功能坏了吗?
我可以从官方 firebase 文档(https://firebase.google.com/docs/dynamic-links/analytics)中看到这一点:
这表明 firebase 不支持从动态链接点击中收集 UTM 数据,但谷歌分析支持。这一点都不令人困惑(/讽刺)。所以大概我们的一些数据(即与活动跟踪有关的数据)是由谷歌分析收集/托管的?
为了进一步混淆,firebase 动态链接的官方文档指出:
“如果您将动态链接事件标记为转化,您可以在归因页面上查看动态链接的表现。”
然后显示与现实不匹配的 firebase 门户 UI 的图像:
我在 firebase 控制台上搜索并搜索了一个归因选项卡,但没有一个……这些文档足以让开发人员发疯。
归档时间: |
|
查看次数: |
2129 次 |
最近记录: |