Facebook SDK 初始化创建第二个像素
Facebook SDK init creating a second pixel
尽管我只初始化了一个像素,但我的网站上正在初始化两个像素。我已将正在初始化的第二个像素指向用于初始化用于 Facebook 登录的 Facebook SDK 的 appId。如何阻止第二个像素被初始化。根据 and this,在一个网页上拥有多个像素并不是一个好主意。以下是我正在做的事情的详细信息。
我正在使用下面的标准 Facebook 像素代码在我的页眉中初始化一个 Facebook 像素
<script>
!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', '{pixel-id}');
fbq('track', 'PageView');
</script>
<noscript><img height="1" width="1" style="display:none"
src="https://www.facebook.com/tr?id={app-id}&ev=PageView&noscript=1"
/></noscript>
这很好用并且可以很好地初始化像素。问题是,当我使用我的应用程序 ID 初始化 facebook 登录时,它会创建另一个像素,但这次它使用我的应用程序 ID 作为像素 ID。我正在通过 facebook 的像素助手进行检查。
我用下面的代码初始化它:
(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = 'https://connect.facebook.net/en_US/sdk.js';
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
window.fbAsyncInit = () => {
FB.init({
appId: '{app-id}',
autoLogAppEvents: true,
xfbml: false,
version: 'v2.12'
});
The issue is that when I initialize facebook login with my app ID, it creates another pixel, but this time it is with my app ID as the pixel ID.
这就是
的效果
autoLogAppEvents: true,
在您的 FB.init 调用中初始化 SDK。删除它,那么额外的不需要的像素也应该消失。
尽管我只初始化了一个像素,但我的网站上正在初始化两个像素。我已将正在初始化的第二个像素指向用于初始化用于 Facebook 登录的 Facebook SDK 的 appId。如何阻止第二个像素被初始化。根据
我正在使用下面的标准 Facebook 像素代码在我的页眉中初始化一个 Facebook 像素
<script>
!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', '{pixel-id}');
fbq('track', 'PageView');
</script>
<noscript><img height="1" width="1" style="display:none"
src="https://www.facebook.com/tr?id={app-id}&ev=PageView&noscript=1"
/></noscript>
这很好用并且可以很好地初始化像素。问题是,当我使用我的应用程序 ID 初始化 facebook 登录时,它会创建另一个像素,但这次它使用我的应用程序 ID 作为像素 ID。我正在通过 facebook 的像素助手进行检查。
我用下面的代码初始化它:
(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = 'https://connect.facebook.net/en_US/sdk.js';
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
window.fbAsyncInit = () => {
FB.init({
appId: '{app-id}',
autoLogAppEvents: true,
xfbml: false,
version: 'v2.12'
});
The issue is that when I initialize facebook login with my app ID, it creates another pixel, but this time it is with my app ID as the pixel ID.
这就是
的效果autoLogAppEvents: true,
在您的 FB.init 调用中初始化 SDK。删除它,那么额外的不需要的像素也应该消失。