Facebook转换像素代码:BODY vs HEAD

时间:2014-01-29 19:33:35

标签: html facebook tracking

我可以将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>

5 个答案:

答案 0 :(得分:17)

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

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

答案 1 :(得分:7)

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

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

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

答案 2 :(得分:4)

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

答案 3 :(得分:1)

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

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

您想要更改此内容的原因究竟是什么?

答案 4 :(得分:1)

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

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

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