为什么 google UTM 代码在初始登陆页面后消失了?

Why does google UTM code disappear after initial landing page?

我 运行 是一个自托管的 wordpress 网站,我正在尝试根据 utm 代码中的参数定制用户看到的辅助内容。我所做的只是 <?php if (isset($_GET['utm_source'])) {dynamic_sidebar( 'sidebar-1' );}else {dynamic_sidebar( 'sidebar-2' );} ?>

用于测试 UTM 婴儿车或字符串变量以显示一个小部件与另一个小部件。完成此操作并进行测试后,我意识到在用户单击下一页或任何其他页面后,UTM 代码会消失。即 utm 查询从栏中 URL 的末尾消失(但 google 当然仍在跟踪会话,只是没有可见的 utm)。所以在初始着陆页之后,条件不再为真

我想知道是否有人知道它为什么这样做?因为我去过 UTM 附加到 URL 的网站,当它消失时,就像它对我一样。我假设标签由 wordpress 保存在数据库 table 中,但找不到答案。我想弄清楚发生了什么。以及我是否应该通过声明一个新变量来检查来解决我的问题,或者我是否应该告诉 wordpress 使用重写规则继续附加 UTM。

UTM 参数(与任何其他参数一样)仅在着陆页上使用是正常的。

Google Analytics 仅在着陆页上需要它们;这些是基于会话的值,因此在第一个页面调用中看到它们就足够了。 Google Analytics 会自动将该会话中的所有后续网页浏览归因于同一访问者(由存储在 cookie 中的客户端 ID 标识)。你可以看到它是如何工作的 in the documentation。当广告系列参数更改时 Google 将启动新会话。

由于归因发生在 Google 服务器上,因此 GA 代码将不会在客户端保留 utm 参数。来自 link 的参数不会通过站点传递是很正常的 - 如果您想要,您必须进行一些编程并自己添加它们。实际上,最好用 utm 值设置一个 cookie,这样它们就不会在 URL 中可见(看起来很奇怪)。

但只在传入link中显示是正常的。如果您希望参数保持附加状态,您必须自己附加它们。