GoogleAnalyticsで自分のアクセスを除外
という罠
ググると、IPによる方法とCookieを使う方法のヘルプが
社内からのアクセスを除外するにはどうすればよいですか?-アナリティクスヘルプ
しかし実はこれ古いヘルプで、記載のタグでCookieによる除外はできません。
僕は動的IPなのでCookieで除外しようとしてがっつりはまりました。こういう一見簡単な作業でつまると悲しいのでメモ書きを。
ブラウザはChrome20.0です。
Cookieによるアクセスの除外
必要なのは3ステップ。
- ・除外用のページを作成する
- ・除外するブラウザでページにアクセスし、Cookieをset
- ・Analytics設定でフィルタを作成する
除外用のページを作成する
Cookieをsetするためのページを作ってアップします。
ページに必要な条件は以下の3つ。
- ・除外したいドメイン上にアップする
- ・Analyticsのトラックタグを記載する
- ・bodyタグを下記に
アップして動作確認できたコードです。UAは自分のものを設定してください。
<head>
<title>No Report Cookie Setter</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="robots" content="noindex,nofollow">
</head>
<body onLoad="javascript:_gaq.push(['_setVar', 'test_value']);">
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXXXX-X']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</body>
</html>
onloadはもちろんimgタグでも動きます。WAFを使っている場合、レイアウトテンプレをカットするのがちょっと手間で、bodyタグは面倒だったりします。
※念のためですが、bodyタグを変更するのは、Cookieセット用のページのみです。テンプレートに突っ込んで、サイト全体に適用しないようにします。
Analytics設定でフィルタを作成する
- フィルタ名 : 任意
- フィルタの種類 : カスタム フィルタ→ 除外
- フィルタ フィールド : ユーザー定義
- フィルタ パターン : さっきの文字列(例だとtest_value)
- 大文字と小文字を区別 : いいえ
うまくいかない場合
Cookieを見る
Chromeの場合
右クリック→要素の検証→Resources→Cookies→サイトドメイン で確認。
Name : __utmv
Value : xxxxxxxxx(数字).test_value
みたいなのがあればCookieは正しく設定されています。
これでフィルタが間違っているのか、ページのコードが間違っているのかあたりをつけます。
リアルタイムだと除外されない
Analyticsのベータ機能リアルタイムでは、Cookieとフィルタを正しく設定しても除外されていないので注意。当日分のコンテンツあたりで確認すると良いのでは。
トラックコード内で設定する方法
やっていることは同じですが、一応別の記載方法も
var _gaq = _gaq || [];
_gaq.push(['_setVar', 'test_value']);
_gaq.push(['_setAccount', 'UA-XXXXXXXX-X']);
_gaq.push(['_trackPageview']);
// etc...
</script>