Firebase动态链接活动跟踪不起作用。

15
在工作中,我们试图通过firebase门户创建动态链接时使用可选的广告系列跟踪UTM参数。动态链接正常工作,据我了解,只需在创建动态链接的最终可选步骤中添加UTM值即可使这些值随着dynamic_link_app_open事件一起发送。然而,当我们查看dynamic_link_app_open事件的事件或转化选项卡时,我们没有看到任何归因值。我们看到该事件正在被发送,但我们只是没有得到广告系列归因值,因此我们不知道哪些广告系列导致了这些事件和转化。文档在这个特定功能上确实缺乏,这让我们的市场营销部门感到沮丧,最终让开发人员(即我)处理。我已经开发了一个解决方法,但它是一个hack:在firebase门户上创建动态链接时,我直接将utm_source、utm_medium和utm_campaign查询字符串放入deep link中,就像这样(出于安全原因,这不是我们实际的deep link,但你可以理解):
https://www.example.com?utm_source=Test&utm_medium=Test&utm_campaign=Test

接下来,在客户端中,我添加了代码通过Firebase动态链接SDK将动态链接传递后从生成的深度链接中提取这些信息。有了这3个信息,我可以通过FirebaseAnalytics SDK向Firebase分析发送一个app_open事件,如下所示:

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);
    }
});

虽然这样做是有效的,但问题是:创建动态链接时选择性添加广告系列跟踪部分的目的是什么?假设在那里放置utm_sourceutm_mediumutm_campaign应该允许Firebase自动使用所述广告系列跟踪数据填充dynamic_link_app_open事件,但它没有这样做。
例如,这是我如何设置可选的最后一步:

Campaign Tracking Section

我已经多次跟踪动态链接进入应用程序,并要求测试人员执行相同操作。我等待了36个小时以上(因为我知道这些事件需要一些时间才能传播到云端),我们看到dynamic_link_app_open事件增加,表明我们的动态链接已记录事件,但是当我们深入研究该事件时,没有收集到UTM信息。firebase文档中(https://firebase.google.com/docs/dynamic-links/analytics)是否存在此功能问题?

enter image description here

这段文字涉及到IT技术相关内容,意思是在Firebase上不支持从动态链接点击收集UTM数据,但在Google Analytics上支持。这可能会让人感到困惑(/讽刺)。因此,我们的一些数据(即与广告系列跟踪相关的部分)可能由Google Analytics收集/托管。
更令人困惑的是,Firebase动态链接的官方文档指出:“如果您将动态链接事件标记为转化,则可以在归因页面上查看您的动态链接的表现。”然后展示了一个与实际不符的Firebase门户UI图像。

enter image description here

我在 Firebase 控制台上搜索了很久,但没有找到归因选项卡... 这些文档足以让开发人员发疯。


1
你如何检查归因数据?你是在Firebase UI还是在BigQuery中进行的?在Firebase UI中,这肯定会起作用,你不需要手动发送任何活动数据。 - michalbrz
1
好的,我明白了。因此,在用户界面中,您可以在左侧面板的“分析”->“转化”部分中查看该数据。在那里,您可以选择您的转化,例如“dynamic_link_first_open”或“dynamic_link_app_open”,然后在下面可以看到归因数据。如果您在那里看不到它们,这意味着它们没有标记为转化,因此在“分析”->“事件”中,每个事件旁边都有一个开关来将其标记为转化。或者,您可以为该事件打开参数报告,但将其标记为转化可能更容易。 - michalbrz
1
在BigQuery中,该数据将在事件“dynamic_link_first_open”或“dynamic_link_app_open”的自定义参数中可用。 - michalbrz
1
BigQuery中的数据应该至少与Firebase UI大致对齐。我假设在BigQuery中,您正在检查app_first_open的事件参数,因此在此处列出了“dynamic_link_first_open”右侧的参数:https://support.google.com/firebase/answer/6317485?hl=en&ref_topic=6317484 ?如果是这种情况,那么看起来像是一个错误,我会联系Firebase支持,他们应该能够进行额外的验证:https://firebase.google.com/support - michalbrz
是的,你的假设是正确的,我们正在使用BigQuery查找事件app_first_open上的事件参数,但数据与Firebase UI上动态链接表中看到的完全不一致。所以,很可能是一个错误。我会向Google支持团队提出此问题。感谢您在此评论线程中回复@michalbrz。 - Thomas Cook
显示剩余10条评论
4个回答

4

我联系了谷歌,但问题似乎仍未得到解决。以下是回复:

“目前,由于 iOS 平台指纹匹配机制的限制,Firebase 动态链接不支持 UTM 事件追踪。作为一个措施,我已经将这个支持票据与我们现有的特性请求关联起来,让我们的工程团队知道对于在 FDL 的 iOS 平台上实现此 utm_ 追踪机制的需求越来越高。我不能分享发布的明确细节或时间表,但是我们正在考虑您未来的兴趣,以改进这个特性。您可以查看我们的发行说明以获取任何更新。”

我不理解“指纹匹配机制”的确切含义。但我明白这个问题需要几年时间才能得到解决。


3
我能理解你的沮丧,我们已经遇到了同样的问题好几个月了。我也认为手动选择 UTM 参数不应该是它的工作方式。我确实找到了一张旧截图(来自 2019 年),显示动态链接应该自动完成这个过程: [Dynamic Link Event automatically generating campaign, source, and medium]
第一部分仍然有效,但来源/媒介/广告系列从未出现在获取/归因报告中。它们曾在过去做到过: Report (截图示例是另一个动态链接,不是第一张截图中的那一个,抱歉)
在与谷歌交流中,他们似乎意识到这是一个 bug,但并未提供任何关于修复时间或方式的具体信息。
所以我只能确认你并不是唯一遇到这个问题的人...

非常感谢您抽出时间回复。他们的文档真是一堆大便... - Thomas Cook
我们最终选择了AppsFlyer作为动态链接的方案,因为他们的归因效果很好。但是在我们的应用程序中使用另一个烦人的云服务真的很让人恼火。现在,我们的数据团队/开发人员将不得不从AppsFlyer导入数据到Firebase/Google Analytics,并将其与我们的其他事件一起拼接,以通过动态链接将应用程序中的内容归因给新用户/回头客。真是气死人了! - Thomas Cook

1

2021年更新答案:

我猜问题已经解决,现在您可以从DebugView中查看动态链接的事件和所有参数(如@Lukas Oldenburg所说)。

enter image description here


我在实时测试中使用DebugView看到这些内容,但在转换方面,它们显示为“(直接)”,而不是显示正确的广告系列。 - powerj1984

0
根据此答案所述:

在UI中选择的UTM参数是用于移动跟踪的参数。如果你想将UTM参数传递到你的“备选”网站,你需要将它们添加到备选地址本身。


我认为你提供的答案是指深度链接(如果点击者不想跟随链接进入应用程序或在桌面浏览器上,则会回退)。然而,必须两次添加相同的参数也非常令人困惑。 - Lukas Oldenburg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接