我可以将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&value=10&currency=USD" /></noscript>
根据这里的答案:https://www.facebook.com/help/community/question/?id=10200354561858276
您可以将它放在<BODY>
元素内,但FB建议将其保留在<BODY>
的开头或<HEAD>
中,因为即使页面未完全加载或用户关闭页面,转换也将被计算。
您可以将fb像素代码放在doc中的任何位置。它会工作。经测试
如果你放在身体的末端,有一个缺点,如果用户关闭浏览器,你将无法获得像素数(例如 - 页面未完全加载)。
但如果它存在于头部,则在页面未正确加载的情况下,您将获得像素数。
显然,是的。它适用于BODY。测试。
提供的代码将在标记第一次出现之前放置对FB脚本的引用,请参阅:
var ref = document.getElementsByTagName('script')[0];
ref.parentNode.insertBefore(fpw, ref);
究竟是什么原因让你想改变这个?
我所做的是将<script>
部分代码放在HEAD
部分,<noscript>
部分放在BODY
部分的末尾。为什么?
如果启用了Javascript,并且如果您对页面的每次点击都很重要,那么无论页面是否已经完全加载,这仍然有效。
如果未启用Javascript,<noscript>
部分也将被执行,而不会导致dom模型布局中的干扰(在我的页面上,它为该1px图像添加了一些虚假高度,因为上帝知道是什么原因),最重要的是,它将在W3C HTML验证器中验证。如果将noscript部分保留在head部分中,则noscript中的img标记将导致验证错误。