如何使用 setCampaignParamsFromUrl() 为 Google Analytics 设置活动
How can I set campaign with Google Analytics using setCampaignParamsFromUrl()
更新
这是由 Google 已在 "Release Version 4.5 - Google Play Services 7.3 (May 1, 2015)" 中修复的 bug 引起的。使用 Google Play Services 7.3 或更高版本时,应该可以按预期使用完整的 URL 调用 setCampaignParametersFromUrl()
。
原题
我在 Android 应用程序中使用 Google Analytics V4。启动时,我向 Google Analytics 发送屏幕浏览点击,然后在我的 HitBuilders.ScreenViewBuilder by calling setCampaignParamsFromUrl()
上设置广告系列参数,如下所示:
String url = "http://example.com/?referrer=utm_source%3Down-build%26utm_campaign%3Dinternal-testing";
builder.setCampaignParamsFromUrl(url);
这似乎有效,因为我可以看到该活动包含在 Google 分析的日志中:
V/GAV4﹕ Thread[GAThread,5,main]: Sending hit to service ..., cn=internal-testing...
然而,当我第二天在 Google Analytics 网络界面上查看我的数据时,此活动并未显示。我只有使用广告系列“(未设置)”的用户。
我卸载了我的应用程序,清除了广告 ID 并重新安装了该应用程序,我在 Google Analytics 网络界面中将此安装视为新用户,因此我知道数据已发送到那里。但是我使用的活动没有出现。
我是在错误地使用 setCampaignParamsFromUrl()
还是漏掉了什么?我是否必须在某处配置我的活动,或者 Google Analytics 是否应该自动选择它以前没有看到的值作为新活动?
(至于为什么我不听安装引荐来源事件见:)
尝试使用营销活动开发指南末尾提供的表格构建您的 URL:
https://developers.google.com/analytics/devguides/collection/android/v4/campaigns
此外,请确保您没有启用采样。如果您从单个 device/emulator 进行测试并且您启用了抽样,您的广告系列数据可能会被忽略。
更新:issue 596 已被 Google 修复,现在可以在使用最新版本时使用 URL 调用 setCampaignParamsFromUrl()
Google Play 服务(2015 年 5 月 1 日发布的 7.3)
经过一些测试后,我设法弄清楚发生了什么,以及 URL 传递给 setCampaignParamsFromUrl()
的确切格式应该是什么。
TL;DR:使用 Google Play URL Builder 生成 URL,但仅将引用字符串(referrer=
之后的部分)传递给 setCampaignParamsFromUrl()
.
当调用 setCampaignParamsFromUrl()
时,它会从“?”之后的所有内容开始。并将其拆分为每个“&”以获得应发送给 GA 的所有参数的列表。
对于每个参数,它然后在“=”上拆分,并将第一个子字符串作为参数,将第二个子字符串作为该参数的值。
通常这很好用,但它不适用于 Google Play URL 生成器生成的 URLs。在对原始问题中使用的 URL 的参数字符串进行反转义后,我们得到字符串:
referrer=utm_source=own-build&utm_campaign=internal-testing
在 '&' 上拆分后,我们得到以下两个字符串
1. referrer=utm_source=own-build
2. utm_campaign=internal-testing
第二个可以很好地处理,其中 utm_campaign
被分配值 "internal-testing",但第一个有问题。在那里我们得到参数 referrer
和值 "utm_source"。由于 referrer
不是有效的活动参数,因此不会向 GA 报告,并且由于 utm_source 是必需的参数,GA 会将此活动数据视为无效并忽略同时报告的所有其他参数。
因此,要使 setCampaignParamsFromUrl()
正常工作,您可以仅传入引用字符串,即 Google 生成的 URL 中 referrer=
之后的所有内容播放 URL 建设者。所以原题中使用的URL应该是
utm_source%3Down-build%26utm_campaign%3Dinternal-testing
URL 构建器生成的 URL 中的包名称根本不需要,因为 GA SDK 会自动选择包。
由于这种行为对我来说像是一个错误,因此在 GA 错误跟踪器中将其报告为 issue 596。
更新
这是由 Google 已在 "Release Version 4.5 - Google Play Services 7.3 (May 1, 2015)" 中修复的 bug 引起的。使用 Google Play Services 7.3 或更高版本时,应该可以按预期使用完整的 URL 调用 setCampaignParametersFromUrl()
。
原题
我在 Android 应用程序中使用 Google Analytics V4。启动时,我向 Google Analytics 发送屏幕浏览点击,然后在我的 HitBuilders.ScreenViewBuilder by calling setCampaignParamsFromUrl()
上设置广告系列参数,如下所示:
String url = "http://example.com/?referrer=utm_source%3Down-build%26utm_campaign%3Dinternal-testing";
builder.setCampaignParamsFromUrl(url);
这似乎有效,因为我可以看到该活动包含在 Google 分析的日志中:
V/GAV4﹕ Thread[GAThread,5,main]: Sending hit to service ..., cn=internal-testing...
然而,当我第二天在 Google Analytics 网络界面上查看我的数据时,此活动并未显示。我只有使用广告系列“(未设置)”的用户。
我卸载了我的应用程序,清除了广告 ID 并重新安装了该应用程序,我在 Google Analytics 网络界面中将此安装视为新用户,因此我知道数据已发送到那里。但是我使用的活动没有出现。
我是在错误地使用 setCampaignParamsFromUrl()
还是漏掉了什么?我是否必须在某处配置我的活动,或者 Google Analytics 是否应该自动选择它以前没有看到的值作为新活动?
(至于为什么我不听安装引荐来源事件见:
尝试使用营销活动开发指南末尾提供的表格构建您的 URL: https://developers.google.com/analytics/devguides/collection/android/v4/campaigns
此外,请确保您没有启用采样。如果您从单个 device/emulator 进行测试并且您启用了抽样,您的广告系列数据可能会被忽略。
更新:issue 596 已被 Google 修复,现在可以在使用最新版本时使用 URL 调用 setCampaignParamsFromUrl()
Google Play 服务(2015 年 5 月 1 日发布的 7.3)
经过一些测试后,我设法弄清楚发生了什么,以及 URL 传递给 setCampaignParamsFromUrl()
的确切格式应该是什么。
TL;DR:使用 Google Play URL Builder 生成 URL,但仅将引用字符串(referrer=
之后的部分)传递给 setCampaignParamsFromUrl()
.
当调用 setCampaignParamsFromUrl()
时,它会从“?”之后的所有内容开始。并将其拆分为每个“&”以获得应发送给 GA 的所有参数的列表。
对于每个参数,它然后在“=”上拆分,并将第一个子字符串作为参数,将第二个子字符串作为该参数的值。
通常这很好用,但它不适用于 Google Play URL 生成器生成的 URLs。在对原始问题中使用的 URL 的参数字符串进行反转义后,我们得到字符串:
referrer=utm_source=own-build&utm_campaign=internal-testing
在 '&' 上拆分后,我们得到以下两个字符串
1. referrer=utm_source=own-build
2. utm_campaign=internal-testing
第二个可以很好地处理,其中 utm_campaign
被分配值 "internal-testing",但第一个有问题。在那里我们得到参数 referrer
和值 "utm_source"。由于 referrer
不是有效的活动参数,因此不会向 GA 报告,并且由于 utm_source 是必需的参数,GA 会将此活动数据视为无效并忽略同时报告的所有其他参数。
因此,要使 setCampaignParamsFromUrl()
正常工作,您可以仅传入引用字符串,即 Google 生成的 URL 中 referrer=
之后的所有内容播放 URL 建设者。所以原题中使用的URL应该是
utm_source%3Down-build%26utm_campaign%3Dinternal-testing
URL 构建器生成的 URL 中的包名称根本不需要,因为 GA SDK 会自动选择包。
由于这种行为对我来说像是一个错误,因此在 GA 错误跟踪器中将其报告为 issue 596。