GoogleAnalyticsで自分のアクセスを除外

という罠

ググると、IPによる方法とCookieを使う方法のヘルプが
社内からのアクセスを除外するにはどうすればよいですか?-アナリティクスヘルプ
しかし実はこれ古いヘルプで、記載のタグでCookieによる除外はできません
僕は動的IPなのでCookieで除外しようとしてがっつりはまりました。こういう一見簡単な作業でつまると悲しいのでメモ書きを。
ブラウザはChrome20.0です。

Cookieによるアクセスの除外

必要なのは3ステップ。

  • ・除外用のページを作成する
  • ・除外するブラウザでページにアクセスし、Cookieをset
  • ・Analytics設定でフィルタを作成する
除外用のページを作成する

Cookieをsetするためのページを作ってアップします。
ページに必要な条件は以下の3つ。

  • ・除外したいドメイン上にアップする
  • ・Analyticsのトラックタグを記載する
  • ・bodyタグを下記に
  • <body onLoad="javascript:_gaq.push(['_setVar','test_value']);">


アップして動作確認できたコードです。UAは自分のものを設定してください。

<html>
<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とフィルタを正しく設定しても除外されていないので注意。当日分のコンテンツあたりで確認すると良いのでは。

トラックコード内で設定する方法

やっていることは同じですが、一応別の記載方法も

<script type="text/javascript">
    var _gaq = _gaq || [];
    _gaq.push(['_setVar', 'test_value']);
    _gaq.push(['_setAccount', 'UA-XXXXXXXX-X']);
    _gaq.push(['_trackPageview']);

 // etc...
 </script>
こちらもサイト全体のコードをこれにしないように注意です。