2017-03-28 4 views
0

にはGoogleタグマネージャスニペットに関するいくつかの質問があります。私はGoogle Demo Shopウェブサイトで探していた場合はGTMの実装は、このようなものです:GoogleデモショップのようにGoogleタグマネージャが常に実装されているわけではありません。

<head> 
    <script async="" src="//www.googletagmanager.com/gtm.js?id=GTM-XXXXX"></script> 
      ... some stuff ... 
    <noscript> &lt;iframe src="//www.googletagmanager.com/ns.html?id=GTM-XXXX" height="0" width="0" style="display:none;visibility:hidden"&gt;&lt;/iframe&gt; 
    </noscript> 
    <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','GTM-5Q5LZH'); 
    </script> 
</head> 

だから、基本的にすべてがヘッダです。だから、最初の質問は、この行です:

<noscript> &lt;iframe src="//www.googletagmanager.com/ns.html?id=GTM-XXXX" height="0" width="0" style="display:none;visibility:hidden"&gt;&lt;/iframe&gt; 
</noscript> 
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','GTM-5Q5LZH'); 
</script> 

だけbodyタグの開封後実装することができ...:

<script async="" src="//www.googletagmanager.com/gtm.js?id=GTM-XXXXX"></script> 

2番目の質問は、私は以下のコードがあることを読みました私はこれをたくさん見てきました。

これらの異なる種類の実装にはいくつかの大きな違いがありますか? Googleタグアシスタントには違いはありません。 ありがとう!

答えて

2

は当初 Googleタグマネージャは、それが<head>にするためにしかし、それは最近、recomendationを更新した、GTMスニペットは<body>に位置することをお勧めします。

これは、2つの理由が考えられます。

1)明らかに、GTMライブラリがIE7以前のコンフリクトを引き起こす可能性のあるドキュメントオブジェクトモデルを変更する方法には懸念がありました。

2)<noscript>内のは、文書の<head>では許可されていないHTMLにではなく、埋め込まれた内容です。

最近 Googleは<head><script><body><noscript><iframe>中で、分割実装を示すために、そのガイドとドキュメントを更新しました。

asynchonrous JavaScriptライブラリが<body>にある必要がある理由がないので、これは理にかなっています。すべての場合と同様に、ユーザがウェブサイトとやりとりする前にトラッキングが利用可能であることを確実にするために、できるだけ早く依存関係をロードすることが理想です。しかし、理由2のためにはまだ<body>に配置することをお勧めします。

ので、は、あなたの質問にお答えします

1)Googleのデモストアの実装が間違っている、全体のコードは<head>に置くべきではありません。

2)タグアシスタントの<script async="" src="//www.googletagmanager.com/gtm.js?id=GTM-XXXXX"></script>は、実際のコードではなく、タグ管理拡張機能がどのようにコードを解釈するかを示します。

3)<body>の実装は、これまでに推奨されていた実装でした。そのため、多くのことがわかりました。

4)Googleタグマネージャコンテナを設定するときに、<head><body>の間にプレースメントを配置することをおすすめします。これは、必要に応じてiframeバックアップを使用してGTMができるだけ早くロードされることを意味します。

5)タグアシスタントは、内線内で手動で設定されたルールに対してコードをチェックするだけです。これの明らかな注意点は、拡張機能を最新の状態に保つ必要があることです。たとえば、GTMのコンテナIDが6文字から7文字に変更されたが、拡張が更新されなかったため、Tag AssistantにコンテナIDが間違っているとのエラーが発生していました。

+0

ありがとうございます。 2番目の質問について '' Tag Assistantから取得できませんでしたが、実際のコードでは、タグアシスタントのために実際のコードにある可能性がありますか? –

+1

あなたが見ているソースの行は何ですか? – sdhaus

+0

それは変だけど、分かりません。私がchrome開発ツールのElementsを見ているなら、私はこのコード行を持っていますが、私がコードソースを見ていると、私はそれを見つけることができません...なぜですか? –

関連する問題