ニガくて難しいアクセス解析を、たっぷりのミルクでふわふわの贅沢ラテ的な仕上がりに

GAタグを上に貼ればいいってもんじゃないという話

ga.jsが非同期版になって、ページのどこに貼っても動作するようになりました。というのが去年の年末くらいか。それまでは、body閉じタグ(</body>)の直前というのが通説でしたね。

で、最近は<head>タグ内に書くというのが常識になっています。
なので<head>の一番上に書いちゃってもいいよね、と思って貼ってたら、トンでもないことになってしまいました。

ページタイトルがトラッキングされない

ひとつのGAアカウントで2つのブログのログを取っている(サブドメイン違い)ので、GA管理画面ではフィルタによってプロファイルを2つ作って区別してるんですが、そのせいかなあ、フィルタがおかしいのかなあ、などと思っていましたが、今日になってようやく原因がわかりました。
わかりましたっていうかタグを見直しただけなんですけどね。

headタグの中身です。ga.jsの位置を直接指定しているのは、ブログにhttpのページしかないからです。httpにもhttpsにも対応する場合はちゃんとGA規定のコードを使いましょう。あと、規定のコードの場合はJSで条件分岐→scriptタグ作成→リクエスト、という処理がある分、一瞬だけ(それこそナノ秒単位で)以下のほうが早くなるはずです。

before

<script type="text/javascript" src="//www.google-analytics.com/ga.js"></script>
<script type="text/javascript">
  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-6879121-1']);
  _gaq.push(['_setDomainName', '.ryow.net']);
  _gaq.push(['_trackPageview']);
</script>
<title>ページタイトルタイトル</title>

after

<title>ページタイトルタイトル</title>
<script type="text/javascript" src="//www.google-analytics.com/ga.js"></script>
<script type="text/javascript">
  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-6879121-1']);
  _gaq.push(['_setDomainName', '.ryow.net']);
  _gaq.push(['_trackPageview']);
</script>

GAタグがtitle要素よりも上に貼ってあったから取れなかった

つまり、そういうことです。具体的には、GAへのリクエストビーコンを投げるときに「utmdt」というパラメータが存在していませんでした。なので管理画面では、ページタイトルはすべて「not set」でした。
でも今日から取れるようになりました。取り始めて30分ほどですが、もう結果が見えてきてますね。

Home > 03.初級メニュー > GAタグを上に貼ればいいってもんじゃないという話

このページの上へ