34

像他们在这里显示的那样添加了 facebook 像素 现在出现错误:

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

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

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

4

8 回答 8

34

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

这是因为每次您发送事件时,代码都会使用相同的像素 ID 进行初始化。实际上初始化应该只发生一次。”

此修复程序有效。您可以通过使用 Facebook Pixel Helper 作为 Chrome 中的扩展来验证这一点。

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}}');
  }
于 2016-07-20T11:01:29.123 回答
21

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

于 2016-03-30T18:12:19.400 回答
4

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

于 2018-01-16T21:42:49.237 回答
2

我遇到了同样的问题,将 GTM 上的 facebook 像素初始化标签更改为“每页一次”就可以了。

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

于 2019-03-14T14:21:57.357 回答
0

仅当您尝试多次初始化像素 ID 时才会出现此错误,因此您需要检查网站上加载的所有 JavaScript 代码,并找出对init您的像素 ​​ID 的多次调用来自何处。

检查的关键区域是右键单击您的站点,然后单击“查看页面源代码”。然后检查所有引用的 JavaScript 文件和您引用的任何 GTM 容器。我听说开发人员在<head>网站GTM 容器中都包含 Facebook 像素代码,这会导致此错误。

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

于 2018-04-21T22:53:09.733 回答
0

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

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

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

于 2020-12-19T10:22:57.207 回答
0

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

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

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

fbq('init', 'pixel-id1');
fbq('init', 'pixel-id2');
fbq('track', 'PageView');
于 2021-03-11T04:47:21.017 回答
-1

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

于 2018-03-27T09:36:16.673 回答