【发布时间】:2022-01-12 16:05:15
【问题描述】:
我正在尝试从 Google 跟踪代码管理器注册的单页应用程序 (SPA) 中的 URL 中删除个人身份信息 (PII)。
网址的格式为/customer/1234/invoice/5678,我想将其作为/customer/(redacted)/invoice/(redacted)发送到GA4
我所做的如下:
- 在 GTM 中,我创建了一个名为
Page location without ids的自定义 JavaScript 变量,其内容如下。 (注意:这里使用{{Page URL}},但也尝试了window.location.href,效果相同。)
function() {
// including timestamp for debugging purposes
var url = Date.now() + {{Page URL}}.replace(/\d{4}/g, '(redacted)');
// outputting to console for debugging purposes
console.log(url);
return url;
}
- 在 GA4 配置标签(在
All Pages上触发)中,我打开了Fields to set并将字段名称page_location更改为{{Page location without ids}}。 - 我在 GTM 中启动了预览,并让 GTM 加载网站。 Tag Assistant 出现在页面上,GTM 报告它已连接。
- 到目前为止一切似乎都很好:
- 我打开网站上的开发者控制台,看到由我的 GTM 脚本生成的带有时间戳的起始页 URL 的大约 20 行输出。
- 在 GTM 的 Tag Assistant 中,我可以在 GTM 和 GA4 容器的变量下看到修改后的 URL。 (在分配给
Page location without ids的GTM 容器中,在分配给dl的GA4 容器中(页面位置)。 - 在 GA4 中,我可以在 DebugView 中看到修改后的 URL,分配给
page_location参数。
- 但是,当我导航到 URL 中包含 id 的页面时:
- 控制台输出编辑后的 URL,很好。 (实际上是 4 次,不知道为什么。)
- 但是,
collect调用的有效负载显示了dl参数的(已编辑)起始页 URL。不包括实际页面 URL(无论是否编辑)。 - GTM 显示由 GTM 容器记录的历史事件,其中
Page location without ids变量中的编辑 URL 很好。Page Path和Page URL变量没有被编辑,不知道这是好是坏。 - GTM 为 GA4 容器显示一个页面视图,其中包含
dl(页面位置)参数的(已编辑)起始页面 URL! - DebugView 中的 GA4 也将 起始页 URL 显示为
page_location参数。
因此,出于某种原因,我无法将编辑后的 URL 推送到 GA4 的 dl 参数中,而是 GA4 继续使用编辑后的初始(起始页)URL。
【问题讨论】:
-
好的,这样好一点。现在查看网络选项卡并查看 ?collect 调用中的哪些字段包含经过编辑的 url 变体以及哪些 - 未经过编辑。啊,您看到多个控制台日志的原因也是因为预览获取每个事件的所有变量的值,无论是否需要。为了您的方便。并且当您覆盖 dl 时,您不会触摸页面路径和页面 url 因为它们在 GTM 中,而不是在 GA 中。
-
查看网络选项卡,每个对方付费电话都包含一个
dl参数,该参数是经过编辑的初始(起始页)URL(即,不是正确的 URL)和一个dr(引荐来源网址)参数是未经编辑但实际的上一页 URL。 -
好吧,覆盖博士。除非在网络调用中发送,否则 GA 无法知道真实页面。你的罪犯在那里。另外,请确保调用中的 tid 等于您的属性测量 id。
-
你能提供一些关于如何“覆盖博士”的信息吗?这可以在 GTM 中完成吗?这对静态
dl(位置)参数有帮助吗?tid参数包含正确的 GA4 测量 ID。 (记住我正在接收数据,它只是未更新的位置字段。) -
是的,我要求查看 tid 的原因是为了确保您正在查看正确的呼叫。也许你有几个不同的 GA4 属性跟踪。这很常见。您完全按照您覆盖 dl 的方式覆盖 dr。在 GTM 中。 dl 是文档位置,dr 是文档引用者。哦,还要确保您覆盖这些维度,不仅针对综合浏览量,还针对事件。
标签: single-page-application google-tag-manager pii