【问题标题】:Firebase dynamic links campaign tracking not workingFirebase 动态链接广告系列跟踪不起作用
【发布时间】:2020-09-19 19:43:15
【问题描述】:

在工作中,我们在通过 firebase 门户创建动态链接时尝试使用可选的活动跟踪 UTM 参数。

动态链接工作正常,据我从所有官方文档中得知,在创建动态链接时的最后一个可选步骤中添加 UTM 值应该会导致这些值与 dynamic_link_app_open 一起发送事件。

但是,当我们查看 dynamic_link_app_open 事件的事件或转化标签时,我们没有看到任何归因值。我们看到正在发送该事件,但我们只是没有获得广告活动属性值,因此我们不知道是什么广告活动导致了这些事件和转化。

该特定功能的文档确实缺乏,这让我们的营销部门感到沮丧,最终以开发人员(即我)告终。

我已经开发了一个解决方法,但它是一个 hack:

在 Firebase 门户上创建动态链接时,我将 utm_sourceutm_mediumutm_campaign 查询字符串直接放入深层链接中(出于安全原因,不是我们实际的深层链接,但你明白了):

https://www.example.com?utm_source=Test&utm_medium=Test&utm_campaign=Test

然后在客户端中,在通过 firebase 动态链接 SDK 传递动态链接后,我添加了代码以将这些从生成的深层链接中提取出来。有了这 3 位信息,我可以通过 FirebaseAnalytics SDK 将 app_open 事件发送到 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);
    }
});

虽然这可行,但它引出了一个问题;创建动态链接时,可选的活动跟踪部分有什么意义?大概将utm_sourceutm_mediumutm_campaign 放在那里应该允许firebase 使用所述活动跟踪数据自动填充dynamic_link_app_open 事件,但事实并非如此。

例如,这是我如何设置可选的最后一步:

然后我多次按照动态链接进入应用程序,并要求测试人员也这样做。我已经等了 36 多个小时(因为我知道这些事件可能需要一些时间才能传播到云),我们看到 dynamic_link_app_open 事件正在累积,表明我们的动态链接记录了一个事件,但是当我们钻取时在该事件中没有收集 UTM 信息。

firebase 的这个功能坏了吗?

我可以从官方 firebase 文档 (https://firebase.google.com/docs/dynamic-links/analytics) 中看到这一点:

这表明 Firebase 不支持从动态链接点击中收集 UTM 数据,但 google 分析支持。这一点都不令人困惑(/讽刺)。 所以大概我们的一些数据(即与活动跟踪有关的数据)是由谷歌分析收集/托管的?

为了进一步混淆,firebase 动态链接的官方文档指出:

“如果您将动态链接事件标记为转化,您可以在归因页面上查看动态链接的效果。”

然后显示与现实不符的 Firebase 门户 UI 图像:

我在 firebase 控制台上搜索并搜索了一个归因选项卡,但没有一个...这些文档足以让开发人员发疯。

【问题讨论】:

  • 谢谢弗兰克!哇,你在 firebase 项目上工作,请原谅我有点无头的鸡咆哮:3 你有什么见解吗?
  • 如何检查归因数据?您是在 Firebase 用户界面还是在 BigQuery 中执行此操作?在 Firebase 用户界面中应该可以正常工作,并且您不应该手动发送广告系列数据。
  • 好的,我明白了。因此,在 UI 中,您会在左侧面板的 Analytics -> Conversions 部分中看到该数据。在那里,您可以选择您的转化,如“dynamic_link_first_open”或“dynamic_link_app_open”,您可以在下方看到归因数据。如果您在那里没有看到它们,则意味着它们没有被标记为转化,因此 Analytics -> Events -> 每个事件附近都有一个开关将其标记为转化。或者,您可以为该事件打开参数报告,但将其标记为转化可能更容易。
  • 在 BigQuery 中,这些数据将在事件“dynamic_link_first_open”或“dynamic_link_app_open”的自定义参数中提供
  • BigQuery 中的数据至少应与 Firebase 用户界面大致对齐。我假设在 BigQuery 中您正在检查 app_first_open 的事件参数,因此此处“dynamic_link_first_open”右侧列出的参数:support.google.com/firebase/answer/…?如果是这种情况,那么它看起来像一个错误,我会联系 Firebase 支持,他们应该能够进行额外的验证:firebase.google.com/support

标签: android firebase firebase-analytics firebase-dynamic-links event-tracking


【解决方案1】:

根据this answer

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

【讨论】:

  • 您链接到恕我直言的答案是指深层链接(如果点击者不想跟随链接进入应用程序或在桌面浏览器上,则为后备)。然而,两次添加相同的参数也是非常非常令人困惑的。
【解决方案2】:

我能理解您的沮丧,我们几个月来都在同一个问题上。我也认为它不应该是您需要手动获取 UTM 参数的工作方式。我确实找到了一个较旧的屏幕截图(来自 2019 年),显示动态链接应该自行执行此操作: [

这第一部分仍然有效,但来源/媒介/广告系列从未进入获取/归因报告。他们过去确实这样做过:

(屏幕截图中的示例是第一个屏幕截图中的另一个动态链接,抱歉)

在与 Google 的谈判中,他们似乎确实意识到这是一个错误,但没有提供是否或何时修复此问题的具体细节。

所以我只能确认你不是一个人遇到你的问题...

【讨论】:

  • 太好了,感谢您抽出宝贵时间回复。他们的文件真是一大堆垃圾……
  • 我们最终使用 AppsFlyer 进行动态链接,因为他们的归因工作。但是不得不在我们的应用程序中使用另一个烦人的云服务是很烦人的。现在,我们的数据专家/开发人员将不得不将数据从 AppsFlyer 导入 Firebase/Google Analytics,并将其与我们的其他事件拼接在一起,以便通过动态链接将应用程序中的内容归因于新用户/回访用户。 GRRRRR
【解决方案3】:

2021 年更新答案:

我想问题已经解决了,现在您可以从 DebugView 中看到带有所有参数的动态链接的事件(正如@Lukas Oldenburg 所说)

【讨论】:

    【解决方案4】:

    我联系了 Google,因为问题似乎仍未解决。答案如下:

    “目前,由于 iOS 平台的指纹匹配机制限制,不支持 iOS 平台的 Firebase Dynamic Links UTM 事件跟踪。作为一项行动,我已将此支持票链接到我们现有的功能请求,以让我们的工程团队知道在 FDL 的 iOS 平台上实现这种 utm_ 跟踪机制的兴趣越来越大。我无法分享发布的确切细节或时间表,但我们希望您有兴趣继续改进此功能。您可以查看我们的任何更新的发行说明。”

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-13
      相关资源
      最近更新 更多