Facebook转换像素代码:BODY vs HEAD

问题描述 投票:23回答:5

我可以将Facebook转换像素置于BODY内部(而不是HEAD里面,这是Facebook在其规格中的建议吗?

我不明白为什么不。有人试过吗?

这是代码的一个例子

<script type="text/javascript">
        var fb_param = {};
        fb_param.pixel_id = '123456789';
        fb_param.value = '10';
        fb_param.currency = 'USD';
        (function(){
            var fpw = document.createElement('script');
            fpw.async = true;
            fpw.src = '//connect.facebook.net/en_US/fp.js';
            var ref = document.getElementsByTagName('script')[0];
            ref.parentNode.insertBefore(fpw, ref);
        })();
    </script>
    <noscript><img height="1" width="1" alt="" style="display:none" src="https://www.facebook.com/offsite_event.php?id=1234566&amp;value=10&amp;currency=USD" /></noscript>
html facebook tracking
5个回答
16
投票

根据这里的答案:https://www.facebook.com/help/community/question/?id=10200354561858276

您可以将它放在<BODY>元素内,但FB建议将其保留在<BODY>的开头或<HEAD>中,因为即使页面未完全加载或用户关闭页面,转换也将被计算。


6
投票

您可以将fb像素代码放在doc中的任何位置。它会工作。经测试

如果你放在身体的末端,有一个缺点,如果用户关闭浏览器,你将无法获得像素数(例如 - 页面未完全加载)。

但如果它存在于头部,则在页面未正确加载的情况下,您将获得像素数。


4
投票

显然,是的。它适用于BODY。测试。


1
投票

提供的代码将在标记第一次出现之前放置对FB脚本的引用,请参阅:

var ref = document.getElementsByTagName('script')[0];
ref.parentNode.insertBefore(fpw, ref);

究竟是什么原因让你想改变这个?


1
投票

我所做的是将<script>部分代码放在HEAD部分,<noscript>部分放在BODY部分的末尾。为什么?

如果启用了Javascript,并且如果您对页面的每次点击都很重要,那么无论页面是否已经完全加载,这仍然有效。

如果未启用Javascript,<noscript>部分也将被执行,而不会导致dom模型布局中的干扰(在我的页面上,它为该1px图像添加了一些虚假高度,因为上帝知道是什么原因),最重要的是,它将在W3C HTML验证器中验证。如果将noscript部分保留在head部分中,则noscript中的img标记将导致验证错误。

© www.soinside.com 2019 - 2024. All rights reserved.