在 Google 跟踪代码管理器和 Google Analytics 4 (GA4) 中手动触发 page_view 的规范方法是什么?
What is the canonical way to manually fire page_view in Google Tag Manager and Google Analytics 4 (GA4)?
我的网站是一个单页应用程序 (SPA),从不更改浏览器历史记录或页面标题。因此,据我了解,如果我想捕获 page_view 事件,我有两个选择:
- 为每个虚拟页面添加浏览器历史记录和唯一标题。
- 在 SPA 代码中手动触发 page_view。
我选择选项 2。
我已经阅读了很多关于如何做到这一点的文章,它们倾向于集中在相似的建议上,但它们之间总是有一点不同。这可能是因为大多数是在 GA4 发布后不久编写的。在尝试了这些文章中的大部分步骤后,我不确定自己是否正确设置了虚拟综合浏览量。不幸的是,the official documentation provides little guidance:
Alternatively, you can always explicitly set page parameters when sending a page_view event to ensure accuracy and clarity.
当谈到官方文档时,I've only been able to find guidance on doing this with gtag.js,但我没有使用它。我正在使用 Google 跟踪代码管理器 (GTM)。以下是我采取的步骤以及我采取这些步骤的理由(除了一篇告诉我这样做的文章)。在此列表之后,我将解释为什么我认为它无法正常工作。
- 登录 GTM
- 创建 Google Analytics GA4 配置,但 取消选中 “加载此配置时发送页面查看事件”。我这样做是因为,如果我要手动发送
page_view
事件,我不希望此配置发送重复项。
- 创建一个名为“页面已加载”的自定义事件触发器。这使我可以控制何时触发此触发器。目前还没有什么特别之处。这是它的样子:
- 在我的 SPA 上,我在
<header>
中的 GTM 标签上方添加了这一行:
<script>
window.dataLayer = window.dataLayer || [];
</script>
<!-- Google Tag Manager -->
- 在我的代码的其他地方,我手动使用
dataLayer
来触发我的触发器:
dataLayer.push({
'event': 'Page Loaded',
'page_url': ...,
'page_title': ...,
});
- 回到 GTM,我为这两个
page_*
字段创建了数据层变量:
- 我创建了一个
page_view
标签来响应这个触发器并使用这些变量。
- 我单击预览按钮以查看它的工作原理。
现在,据我所知,这个标签在正确的时间触发并传递了所有正确的信息。但这就是我认为有问题的原因:
如果我查看我的 other 标签,google 分析命中 信息有 Page Location
和 Page Title
实际 页面的值,而不是虚拟页面(也就是我创建的自定义事件)。此其他标签的触发器如下所示:
标签如下所示:
Google 分析命中如下所示(在 Tag Assistant 页面上):
那些红色箭头具有实际页面的值。
有没有一些 step/configuration 我不见了?我希望所有标签都使用我的 page_view
标签的 Page Title
。
是的,那是因为字段没有从设置变量继承(我之前注意到 GA4 中的行为)或者你的 DL 变量的值在那个时候没有设置(这不太可能)。
一个明显的解决方法是将您的字段添加到点击标签并完成它。
我制作 GA4 标签的方式是制作一个标签。为了一切。它的所有内容都是变量,包括事件的名称。它的所有逻辑要么在正则表达式查找表中,要么在 CJS 中。或者两者兼而有之:使用 rLUT 的 CJS。
现在它可能看起来复杂和过度设计,但现在你的 GA4 设置的大小很小(记住:容器的大小是有限的),如果你喜欢你的 JS,它很容易管理(所有逻辑都在一个地方)并且您不需要每次需要触发新事件时都遍历所有维度。
所以我基本上将 GA4 事件代码视为配置变量。在您的情况下,您甚至可以将综合浏览量和点击事件合并为一个。
此外,不更改历史记录是一种非常糟糕的做法,我会完全切换站点引擎。它会在其他地方引起戏剧性的问题,比如 SEO。
好吧,您新创建的 Event tag
不是 Configuration tag
,并且您还没有将 Configuration tag
的 page title/location
设置为您想要的值。
由于您的所有其他事件仅引用 Configuration tags
,它们必然会 继承其默认设置 ,而不是您在 Event tag
.[=28 中设置的内容=]
如果您想更改所有活动的 page_title
和 page_location
,我认为您应该:
- 在
Configuration tag
的 Fields to Set 菜单中设置 page_title
和 page_location
参数值,不 在 Event tag
-> 这样 all 您的事件 page title and locations
将被设置为您希望的任何值
->参考https://support.google.com/analytics/answer/11262438
- 通过配置>修改事件菜单
手动修改page_title
和page_location
->参考https://support.google.com/analytics/answer/10085872?hl=en&ref_topic=9756175#zippy=%2Cin-this-article
和 https://support.google.com/analytics/answer/11091026?hl=en#zippy=%2Cin-this-article
顺便说一句,我建议只标记您需要的内容,并为每个目的使用不同的标签。如果您捕获了太多数据,GA 将对其进行采样,从而使其无用。此外,为每个目的使用不同的标签,可以更轻松地根据情况修改您希望收集的数据。
我的网站是一个单页应用程序 (SPA),从不更改浏览器历史记录或页面标题。因此,据我了解,如果我想捕获 page_view 事件,我有两个选择:
- 为每个虚拟页面添加浏览器历史记录和唯一标题。
- 在 SPA 代码中手动触发 page_view。
我选择选项 2。
我已经阅读了很多关于如何做到这一点的文章,它们倾向于集中在相似的建议上,但它们之间总是有一点不同。这可能是因为大多数是在 GA4 发布后不久编写的。在尝试了这些文章中的大部分步骤后,我不确定自己是否正确设置了虚拟综合浏览量。不幸的是,the official documentation provides little guidance:
Alternatively, you can always explicitly set page parameters when sending a page_view event to ensure accuracy and clarity.
当谈到官方文档时,I've only been able to find guidance on doing this with gtag.js,但我没有使用它。我正在使用 Google 跟踪代码管理器 (GTM)。以下是我采取的步骤以及我采取这些步骤的理由(除了一篇告诉我这样做的文章)。在此列表之后,我将解释为什么我认为它无法正常工作。
- 登录 GTM
- 创建 Google Analytics GA4 配置,但 取消选中 “加载此配置时发送页面查看事件”。我这样做是因为,如果我要手动发送
page_view
事件,我不希望此配置发送重复项。 - 创建一个名为“页面已加载”的自定义事件触发器。这使我可以控制何时触发此触发器。目前还没有什么特别之处。这是它的样子:
- 在我的 SPA 上,我在
<header>
中的 GTM 标签上方添加了这一行:<script> window.dataLayer = window.dataLayer || []; </script> <!-- Google Tag Manager -->
- 在我的代码的其他地方,我手动使用
dataLayer
来触发我的触发器:dataLayer.push({ 'event': 'Page Loaded', 'page_url': ..., 'page_title': ..., });
- 回到 GTM,我为这两个
page_*
字段创建了数据层变量: - 我创建了一个
page_view
标签来响应这个触发器并使用这些变量。 - 我单击预览按钮以查看它的工作原理。
现在,据我所知,这个标签在正确的时间触发并传递了所有正确的信息。但这就是我认为有问题的原因:
如果我查看我的 other 标签,google 分析命中 信息有 Page Location
和 Page Title
实际 页面的值,而不是虚拟页面(也就是我创建的自定义事件)。此其他标签的触发器如下所示:
标签如下所示:
Google 分析命中如下所示(在 Tag Assistant 页面上):
那些红色箭头具有实际页面的值。
有没有一些 step/configuration 我不见了?我希望所有标签都使用我的 page_view
标签的 Page Title
。
是的,那是因为字段没有从设置变量继承(我之前注意到 GA4 中的行为)或者你的 DL 变量的值在那个时候没有设置(这不太可能)。
一个明显的解决方法是将您的字段添加到点击标签并完成它。
我制作 GA4 标签的方式是制作一个标签。为了一切。它的所有内容都是变量,包括事件的名称。它的所有逻辑要么在正则表达式查找表中,要么在 CJS 中。或者两者兼而有之:使用 rLUT 的 CJS。
现在它可能看起来复杂和过度设计,但现在你的 GA4 设置的大小很小(记住:容器的大小是有限的),如果你喜欢你的 JS,它很容易管理(所有逻辑都在一个地方)并且您不需要每次需要触发新事件时都遍历所有维度。
所以我基本上将 GA4 事件代码视为配置变量。在您的情况下,您甚至可以将综合浏览量和点击事件合并为一个。
此外,不更改历史记录是一种非常糟糕的做法,我会完全切换站点引擎。它会在其他地方引起戏剧性的问题,比如 SEO。
好吧,您新创建的 Event tag
不是 Configuration tag
,并且您还没有将 Configuration tag
的 page title/location
设置为您想要的值。
由于您的所有其他事件仅引用 Configuration tags
,它们必然会 继承其默认设置 ,而不是您在 Event tag
.[=28 中设置的内容=]
如果您想更改所有活动的 page_title
和 page_location
,我认为您应该:
- 在
Configuration tag
的 Fields to Set 菜单中设置page_title
和page_location
参数值,不 在Event tag
-> 这样 all 您的事件 page title and locations
将被设置为您希望的任何值
->参考https://support.google.com/analytics/answer/11262438
- 通过配置>修改事件菜单 手动修改
page_title
和page_location
->参考https://support.google.com/analytics/answer/10085872?hl=en&ref_topic=9756175#zippy=%2Cin-this-article 和 https://support.google.com/analytics/answer/11091026?hl=en#zippy=%2Cin-this-article
顺便说一句,我建议只标记您需要的内容,并为每个目的使用不同的标签。如果您捕获了太多数据,GA 将对其进行采样,从而使其无用。此外,为每个目的使用不同的标签,可以更轻松地根据情况修改您希望收集的数据。