Преобразование Facebook Пиксельный код: BODY vs HEAD

Можно ли разместить пиксель преобразования 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>

Ответы

Ответ 1

В соответствии с этим ответом здесь: https://www.facebook.com/help/community/question/?id=10200354561858276

вы можете поместить его внутри элемента <BODY>, но FB рекомендует сохранить его в начале <BODY> или в <HEAD>, поскольку преобразование будет подсчитано, даже если страница не загружается полностью или пользователь закрывает страницу.

Ответ 2

Вы можете поместить код пикселя fb в любом месте документа. Это будет работать. Испытано

Если вы положите конец тела, есть один недостаток, вы не получите счетчик пикселей, если пользователь закрыл браузер (случай - страница не загружена полностью).

Но если он присутствует в голове, вы получите подсчет пикселей в случае неправильной загрузки страницы.

Ответ 3

Видимо, да. Он работает в ТЕЛО. Испытано.

Ответ 4

Предоставленный код поместит ссылку на FB script до первого появления тега в любом случае, см.

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

В чем именно причина, по которой вы хотите изменить это?

Ответ 5

То, что я сделал, - это разместить часть <script> кода в разделе HEAD и <noscript> в конце раздела BODY. Почему?

Если Javascript включен, и если вам важно посчитать каждый удар на вашу страницу, независимо от того, была ли страница полностью загружена или нет, это все равно будет работать.

Если Javascript не включен, часть <noscript> также будет выполнена, не вызывая нарушения в макете модели dom (на моей странице она добавила некоторую фиктивную высоту к этому 1px-изображению, поскольку бог знает, в чем причина) и, самое главное, он будет проверяться в валидаторе HTML W3C. Если вы оставите часть noscript в разделе главы, тег img в noscript вызовет ошибку проверки.