web-dev-qa-db-fra.com

Code Pixel de conversion Facebook: CORPS vs HEAD

Puis-je placer le pixel de conversion Facebook à l'intérieur du corps (par opposition à l'intérieur de la tête, ce que Facebook suggère dans leurs spécifications?

Je ne vois pas pourquoi pas. Quelqu'un l'a-t-il essayé?

Voici un exemple du code

<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>
28
cockypup

Selon cette réponse ici: https://www.facebook.com/help/community/question/?id=10200354561858276

vous pouvez le placer à l'intérieur du <BODY> élément mais FB recommande de le conserver au début de <BODY> ou dans le <HEAD> car la conversion sera alors comptée même si la page ne se charge pas complètement ou si l'utilisateur ferme la page.

18
Michal Trojanowski

Vous pouvez mettre du code pixel fb n'importe où dans le document. Ça va marcher. testé

Si vous mettez à la fin du corps, il y a un inconvénient, vous n'obtiendrez pas le nombre de pixels si l'utilisateur ferme le navigateur (cas - la page n'est pas complètement chargée).

Mais s'il est présent dans la tête, vous obtiendrez le nombre de pixels au cas où la page ne serait pas chargée correctement.

7
Vaibhav Kumar

Apparemment, oui. Cela fonctionne dans le CORPS. Testé.

6
cockypup

Ce que j'ai fait, c'est de placer le <script> une partie du code dans la section HEAD et <noscript> partie à la fin de la section BODY. Pourquoi?

Si le Javascript est activé, et s'il est important pour vous de compter chaque hit sur votre page, que la page soit entièrement chargée ou non, cela fonctionnera toujours.

Si Javascript n'est pas activé, le <noscript> une partie sera également exécutée, sans provoquer de perturbation dans la disposition du modèle dom (sur ma page, elle a ajouté une certaine hauteur fausse à cette image 1px, Dieu sait quelle raison) et, plus important encore, elle sera validée dans le HTML W3C validateur. Si vous laissez la partie noscript dans la section head, la balise img dans noscript provoquera une erreur de validation.

1
Mladen B.

Le code fourni placera de toute façon la référence au script FB avant la première occurrence d'une balise, voir:

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

Quelle est exactement la raison pour laquelle vous souhaitez changer cela?

1
Tobi