アナリティクスから自分のアクセスデータを除く-「ga.js」と「analytics.js」

Googleアナリティクスを導入している人は多いと思います。
最近になって「自分のアクセスデータを除外しておこう」と思い立ち、参考記事を読みながらやってみたのですが、なんと悪戦苦闘で3日もかかってしまいました。

時間がかかった原因は、導入しているトラッキングコードが数種類あり、アナリティクスの世代によって方法が違うことでした。
最新のトラッキングコードは「gtag.js」ですが、「ユニバーサルアナリティクス(analytics.js)」や、それ以前の「ga.js」では、Cookieファイルの作り方が違うので気を付けたいです。
ここでは、トラッキングコード別に「自分のアクセスデータを除外」する方法をまとめました。

自分のアクセスデータを除外する方法のまとめ

話を進める前にまず「自分のアクセスデータを除外」する方法にはいくつかあるので、簡単におさらいです。

  1. アナリティクス側でIPアドレスのフィルターを設定する
  2. Cookieファイルを作成し、特定ユーザーのアクセスを除外するフィルターを設定する
  3. 除外したいサイトのリンク集を作り、リンク集のドメインを参照元フィルターで除外する
  4. Chromeの拡張機能「Google Analytics オプトアウト アドオン」を追加する

以上4つの方法がありますが、ここでお話するのは2番目の方法についてです。

1番目の「IPアドレス」は固定IP(静的IP)でなければ有効ではありません。個人のユーザーや小さな事業所では「固定IPアドレス」は使用していないので使えません。

3番目のリンク集は、アクセスデータを除外したいサイトの数が多い時にはいい方法です。

4番目の拡張機能は、自分のサイトを含めたすべてのサイトのアクセスデータの送信がされなくなるので、お勧めできません。
理由:日本中のネットユーザーが全員このアドオンを導入すると、アクセス解析そのものが出来なくなるから。

トラッキングコードの種類

次にトラッキングコードの種類をおさらいします。

最新のコードは下のようなものになっています。

gtag.jsのコード

<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-XXXXXXXX-X"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'UA-XXXXXXXX-X');
</script>

これまでのトラッキングコードでは無く、タグマネージャーを設置するケースも多くなっており、コードもタグマネージャーベースに変わったようです。
計測の方法や、今回のテーマである「自分のアクセスデータを除外する」方法など、サポートページにもまだ記載が無いので自分で調べるしかありません。
「gtag.js」に関しては情報が集まったら改めて投稿します。

その前がユニバーサルアナリティクスでした。
下のようなコードです。

analytics.jsのコード

<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-XXXXXXXX-X', 'auto');
  ga('send', 'pageview');

</script>

そしてその前のコードが以下のようなものです。

ga.jsのコード

<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>

「ga.js」の場合のアクセス除外フィルターの作り方

アナリティクスのフィルター設定をします。

アナリティクスの管理画面で「すべてのフィルタ」をクリックします。

アクセスフィルター

「フィルタを追加」ボタンを押し

  1. フィルタ名は「関係者除外」とか「自分除外」とか分かりやすい名前をつけます
  2. フィルタの種類は「カスタム」にして「除外」のラジオボタンをクリック
  3. フィルタフィールドは「ユーザー定義」を選択
  4. フィルタパターンには「no_report」としますは、ここは文字列に意味は無いので分かりやすい名前で構いません。ネットでは“no_report”としているサイトが多いですが、「noreport」でも「jogai」でも大丈夫です
  5. 最後に使用可能なビューを選択します。ほとんどは「すべてのウェブサイトのデータ」になると思います
  6. 保存ボタンを押す

アクセスフィルター

つづいてCookie用のファイルを作ってアップロードします。

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="robots" content="noindex">
<title>Cookieで関係者を除外</title>
</head>
<body>
<p>関係者のクッキーを保存しました。</p>

<script type="text/javascript">
  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-XXXXXXXX-X']);
  _gaq.push(['_setVar', 'no_report']); /* 追加する */
  _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>

<p><a href="./">トップへ戻る</a></p>

</body>
</html>

上のソースを使ってテキストエディタでページを作ります。
ページの名前は「jogai.html」とか、分かりやすい名前にします。

<head>内に<meta name=”robots” content=”noindex”>を記載してインデックスを回避します。

「ga.js」のトラッキングコードを貼りますが、「_gaq.push([‘_trackPageview’]);」の手前に「_gaq.push([‘_setVar’, ‘no_report’]);」を追加します。

‘no_report’の部分はフィルタで設定したフィルタパターンの文字列通りにします。ここを間違えるとフィルタは働きません。

最後にトップページへのリンクを作っておくと便利です。

アップロードするディレクトリはどこでもいいですが、ルートディレクトリ内の方が分かりやすいと思います。

ここまで準備ができたら、Cookie用のファイルをアップロードして、ブラウザでアクセスします。

この瞬間にCookieが保存されて2年間は、アクセスデータから除外されます。
試しにトップページにアクセスしてから、アナリティクスの「ホーム」でアクティブユーザーがカウントされていないことを確かめて下さい。

「analytics.js」の場合のアクセス除外フィルターの作り方

アナリティクスの管理画面のプロパティにある「カスタム定義」をクリックします。

アクセスフィルター

「カスタムディメンション」を新規作成します。

  1. カスタムディメンションの名前を分かりやすく「関係者除外」とします
  2. 範囲は「ユーザー」を選択します
  3. 「アクティブ」にチェックが入っていることを確認して「作成」ボタンを押します

フィルター

サンプルコードが表示されます。
サンプルコードはPC用、アンドロイド用、iPhone用の3種類表示されます。
スマホからのアクセスも除外したい場合は、スマホ用のコードを使います。

アクセスフィルター

PC用のサンプルコードは以下の通りですが

var dimensionValue = ‘SOME_DIMENSION_VALUE’;
ga(‘set’, ‘dimension1’, dimensionValue);

このコードをコピーしてメモ帳に保存します。

次にアクセスデータを除外する設定です。

「ga.js」の場合はアカウントの「すべてのフィルタ」でフィルタを追加しましたが、「analytics.js」の場合は「ビュー」にある「フィルタ」で設定します。

  1. フィルタ名は「関係者除外」とか「自分除外」とか分かりやすい名前をつけます
  2. フィルタの種類は「カスタム」にして「除外」のラジオボタンをクリック
  3. フィルタフィールドの選択ボタンを押し下にスクロールします。一番下に「カスタムディメンション」の項目があり、そこに先ほど作成した「関係者除外」があるのでそれを選択します
    アクセスフィルター
  4. フィルタパターンには「ga.js」の場合と同様「no_report」とします
  5. 最後に使用可能なビューを選択します。ほとんどは「すべてのウェブサイトのデータ」になると思います
  6. 保存ボタンを押す

アクセスフィルター

つづいてCookie用のファイルを作ってアップロードします。

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="robots" content="noindex">
<title>Cookieで関係者を除外</title>
</head>
<body>
<p>関係者のクッキーを保存しました。</p>

<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-XXXXXXXX-X', 'auto');
  var dimensionValue = 'no_report'; /* 追加する */
  ga('set', 'dimension1', dimensionValue); /* 追加する */
  ga('send', 'pageview');

</script>

<p><a href="./">トップへ戻る</a></p>

</body>
</html>

「analytics.js」のトラッキングコードに先ほどの「カスタムディメンション」のサンプルコードを追加します。

「SOME_DIMENSION_VALUE」を「no_report」に変えて下さい。
その他<head>内やトップページへのリンクなど、「ga.js」の場合と同じです。

Cookie用のファイルをアップロードしてアクセスし、Cookieを保存します。
2年間は有効ですので、時々Cookie用のファイルにアクセスした方がよいと思います。

尚、「analytics.js」の場合はすぐに反映されないみたいで、リアルタイムではアクセスが記録されますが、一日たつとデータから消えますので、翌日に確認して下さい。