【发布时间】:2020-06-04 12:43:15
【问题描述】:
我的意图
我的意图是不让 Facebook 像素接收作为主要目标的 URL 字符串中提到的电子邮件。我想通过在 Facebook Pixel 被触发之前在谷歌标签管理器中使用自定义 Javascript 来解决这个问题。
我的问题
我正在尝试从通过 Facebook Pixel 提供给 Facebook 的 URL 中删除电子邮件部分。我不是开发人员,Facebook Pixel 是通过 GTM 使用的。我可以看到上面的字符串会触发例如位置。 href、document.location.href 和 window.location.href
我的问题
我要修改的 URL 字符串(注意我已从 URL 中删除敏感部分):
代码
function removeEmail(url, window.location.href) {
var urlparts = url.split('&Email');{
var prefix = encodeURIComponent(window.location.href) + '&Email';
var pars = urlparts[1].split(/[&;]/g);
return urlparts[0];
}
return url;
}
编辑(2020 年 2 月 20 日):
- 根据反馈进行了一些调整
- 添加代码(代码基于此问题:How can I delete a query string parameter in JavaScript?)
我知道最好的解决方案是在后端修复它,但是在后端修复它需要很长时间,因此我正在寻找一个临时解决方案以符合 GDPR 等。
【问题讨论】:
-
请阅读How to Ask。您说您正在尝试 - 我们希望看看您的实际尝试。
-
@CBroe;感谢您的反馈。我很认真,我对结构做了一些调整+添加了代码。
-
如果 URL 中的
email是小写的,那么您也必须使用小写拼写进行拆分。并且将encodeURIComponent应用于整个 URL 没有什么意义,这可能会使大部分内容无效。 -
从
window.location.hash开始操作可能更有意义。 -
经过一些实际测试后,解决方案按预期工作。我没有删除或编辑任何内容。我所做的是 1. 确保我有一个单独的自定义 HTML 标记,其中 可以在 FB Pixel 和 Tag Sequencing 之前触发 .. 然后 2.fire FB 像素,然后电子邮件将在像素触发之前被删除,因此 facebook 不知道它存在并且不会在他们的系统中注册它。感谢您对一个真正想知道编码但不知道如何编码的人的耐心。虽然我明白其中的逻辑。那么..我如何将其标记为已解决?
标签: javascript facebook google-tag-manager facebook-pixel