web-dev-qa-db-ja.com

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

この回答によると: https://www.facebook.com/help/community/question/?id=10200354561858276

<BODY>要素内に配置できますが、FBは<BODY>の先頭または<HEAD>に保持することをお勧めします。ページが完全に読み込まれなくても変換がカウントされるためですまたは、ユーザーがページを閉じます。

18

ドキュメントの任意の場所にfbピクセルコードを配置できます。それが動作します。 テスト済み

本文の最後に入力すると、1つの欠点があります。ユーザーがブラウザーを閉じた場合、ピクセルカウントを取得できません(ケース-ページが完全に読み込まれない)。

しかし、それが頭にある場合、ページが適切にロードされていない場合のピクセル数を取得します。

7
Vaibhav Kumar

どうやら、はい。 BODYで動作します。テスト済み。

6
cockypup

私がしたことは、<script>HEADセクションのコードの一部と<noscript>BODYセクションの最後の部分。どうして?

Javascriptが有効になっていて、ページへのすべてのヒットをカウントすることが重要な場合、ページが完全にロードされているかどうかに関係なく、これは機能します。

JavaScriptが有効になっていない場合、<noscript>パートも実行されますが、domモデルレイアウトを乱すことなく(私のページでは、その1px画像に偽の高さを追加しました。神は理由を知っているため)バリデーター。 noscript部分をheadセクションに残すと、noscript内のimgタグにより検証エラーが発生します。

1
Mladen B.

提供されたコードは、とにかくタグが最初に現れる前にFBスクリプトへの参照を配置します。

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

これを変更する理由は何ですか?

1
Tobi