Google開発者ガイドは次のように述べています。
グローバルトラッキングスニペットをインストールするには、次のコードをコピーして貼り付けますタグの直後をサイトのすべてのページに貼り付けます。 GA_TRACKING_IDを、データの送信先となるGoogleアナリティクスプロパティのトラッキングIDに置き換えます。 1ページに必要なグローバルスニペットは1つだけです。
https://developers.google.com/analytics/devguides/collection/gtagjs/
HTMLを好きなように編集できる理想的な世界では、これはもちろん問題ではありません。多くのサイトで使用するプラグインを作成するとすぐに、問題が発生しますIS。 WordPressたとえば。各テーマはフックするためにwp_head()
関数をサポートする必要があります。出力は各テーマの終了ヘッドタグの前です。同様にwp_footer()
と呼ばれます閉じる本体の前タグ。
さて、Google Analyticsをヘッダーに終了タグの前だけで挿入すると、SEOに悪影響を与えるのではないかと思います。
私のコードは次のとおりです:
function add_google_gtag_analytics() {
// tagmanager
wp_register_script(
'google-gtag', // handle name referred to in the "wp_enqueue_script" call below
'https://www.googletagmanager.com/gtag/js?id=' . $tracking_id, // location of your file
false, // no dependencies
'1.0', // version number
true // if true, the script is placed before the end tag
);
// google analytics
wp_register_script(
'google-analytics', // handle name referred to in the "wp_enqueue_script" call below
plugins_url('js/google_analytics', __FILE__), // location of your file
['google-gtag'], // no dependencies
'1.0', // version number
true // if true, the script is placed before the end tag
);
// pass analytics id variable
wp_localize_script('google-analytics', 'CIS_ANALYTICS_TRACKING_ID', $tracking_id);
// Enqueue the registered script file
wp_enqueue_script('google-gtag');
wp_enqueue_script('google-analytics');
}
add_action('wp_enqueue_scripts', 'add_google_analytics', 100);
// ensure tag manager async
add_filter('script_loader_tag', 'cis_gtag_async', 10, 3);
function cis_gtag_async($tag, $handle, $src) {
if ($handle !== 'google-gtag') {
return $tag;
}
return "<script src='$src' async></script>";
}
priority of 1は、それがヘッダーに埋め込まれる最後のスクリプトであることを確認します(WPドキュメントのadd_action()を参照)。上記のコードの結果は基本的に:
<head>
<!-- lots of meta, scripts and style tags -->
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=GA_TRACKING_ID"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.Push(arguments);}
gtag('js', new Date());
gtag('config', 'GA_TRACKING_ID');
</script>
</head>
<body>
これが追跡やSEOに悪影響を与える可能性があるかどうか誰かが知っていますか?
理想的な位置はできるだけ高く、その理由は、すべての情報を収集するために、このスクリプト(GTM、Gtagなど)を最初にロードする必要があるためです。技術的には頭の中にあり、本来あるべきように機能するでしょう。心配すべきことは、0.001%の確率で、サイトがクラッシュするか、ユーザー側のすべてのスクリプトが読み込まれないことです。したがって、一般的にはかなり正確なトラッキングが得られます。