如何修复重复的 Facebook 像素 ID 错误?

How to fix Duplicate Facebook pixel ID error?

添加了 facebook 像素,就像他们在此处显示的那样 here 现在出现错误:

fbevents.js:9 Facebook Pixel Error: Duplicate Pixel ID: some-pixel-id

无法理解导致此错误的原因。即使我 运行 他们示例中的代码在控制台中从 html 中删除了像素代码,我也会得到相同的结果。

有人知道这意味着什么以及如何解决这个错误吗?

此错误通常意味着 fbq('init', <pixel_id>) 使用相同的像素 ID 被多次调用。

我实际上在 this 页面上找到了解决方案。

Its because everytime you send an event the code is initialized with the same pixel id. Actually initialization should happen only once."

此修复有效。您可以在 Chrome.

中使用 Facebook Pixel Helper 作为扩展来验证这一点
if(typeof fbq === 'undefined') {
    !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
    n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
    n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;
    t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,
    document,'script','https://connect.facebook.net/en_US/fbevents.js');

    fbq('init', '123123123213121');
    fbq('track', 'PageView');
    fbq('track', '{{fBPixelType}}');
  }
  else {
    fbq('track', '{{fBPixelType}}');
  }

在 Google 论坛中找到的另一个答案: “你必须检查你的 Facebook Pixel 代码是否每页(而不是每个事件)只初始化一次。转到你的 FB Pixel 代码所在的标签并打开高级设置。标签触发选项 - >每页一次(不是事件) !)."

我在我的 shopify 商店遇到了同样的问题,但我研究并发现 Trackify fb pixel 应用程序是我的选择。我删除了我过去创建的所有像素和事件(正在试验)并安装了有助于创建多个事件和像素的应用程序

只有当您多次尝试初始化像素 ID 时才会出现此错误,因此您需要检查您网站上加载的所有 JavaScript 代码,并找到多次调用 [=10] 的位置=] 您的像素 ​​ID 来自。

要检查的关键区域是右键单击您的站点并单击 "View page source." 然后检查所有引用的 JavaScript 文件和您引用的任何 GTM 容器。我听说开发人员将 Facebook 像素代码包含在网站 <head> 和 GTM 容器中的 中,这会导致此错误。

如果您无法找到这两个 init 调用,在网站上查找特定 JavaScript 代码的最简单方法之一是使用 Chrome 开发人员工具。按F12打开工具,按Ctrl+Shift+F 打开搜索面板,然后键入 fbq 或您要查找的任何内容。它将遍历为站点加载的源代码并查找该代码。

我遇到了同样的问题,将 GTM 上的 facebook 像素初始化标签更改为 "once per page" 就成功了。

我知道有人已经回答了这个问题,但由于提供的解决方案不止一种,而且 "selected" 答案对我来说似乎比这个答案更复杂,我想我会在这里发表评论,以便其他人同样的问题有信心尝试这种更简单的方法。

您应该在调用 init 之前检查 fbq 是否未定义。

if (typeof fbq === 'undefined') {
    fbq('init', 'your-pixel-ID');
}

请注意:不要用这个 if 语句包装完整的脚本!

在研究破解任何代码之前,有必要检查一下新的 trackSingle 调用:

fbq('trackSingle', 'pixel-id1', 'PageView');
fbq('trackSingle', 'pixel-id2', 'Purchase');

它允许在一个脚本中使用具有不同范围('PageView'、'Purchase')的多个 fbq 函数,如果两个像素的范围相同(例如'PageView'), 那么你可以像这样调用:

fbq('init', 'pixel-id1');
fbq('init', 'pixel-id2');
fbq('track', 'PageView');