从 SPA 中的 URL 中删除 PII (GTM/GA4)

Posted

技术标签:

【中文标题】从 SPA 中的 URL 中删除 PII (GTM/GA4)【英文标题】:Removing PII from URL in an SPA (GTM/GA4) 【发布时间】: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(/\d4/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 PathPage 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 是文档引用者。哦,还要确保您覆盖这些维度,不仅针对综合浏览量,还针对事件。 【参考方案1】:

嗯,不,真的不需要。 GA4 配置+pageview 标签只需要调用一次。之后,它开始观察历史变化并跟踪大多数 SPA 上的每次综合浏览量。您只需要使用真正的页面视图触发器,并且如果您的 SPA 不发布导航历史更改,则仅添加更多。但绝大多数 SPA 引擎不会再犯这种错误了。

您实际上应该尝试实施它,然后提出您的问题。当您遇到非理论问题时更新您的问题,我们会提供帮助。

【讨论】:

你是对的,应该更详细地说明我到底尝试了什么。立即更改帖子。

以上是关于从 SPA 中的 URL 中删除 PII (GTM/GA4)的主要内容,如果未能解决你的问题,请参考以下文章

React SPA - GTM Analytics React-Helmet 上一页标题

GTM 数据层限制

如何使用 vue spa 应用程序删除 url 中的查询字符串?

谷歌标签管理器无法在 Ionic+Angular 应用程序中工作

从 Spring Boot 中的基本身份验证中删除 WWW-authenticate 标头

Flutter Web:SPA:在元数据标签中使用 URL 参数