IPアドレスなしで関係者のアクセスをGoogle Analyticsのデータから除外する方法

関係者(自分)によるサイトのアクセスをGoogle Analytics(GA)のデータから除外したいがIPアドレスの情報が利用できない場合,カスタムディメンションとフィルタを使いどのようなことを行うか(GAの設定方法など)や注意点・問題点などを紹介します.

 

1.はじめに

Google Analyticsを使う目的はサイトを利用するユーザー(顧客,読者など)の訪問やそのサイト内で行動を対象とするデータの有効利用だと思いますが,サイトにアクセスする人の中にはサイトの運用者や制作者など業務として関わる人がいます.またサイトには直接関わっていなくても,そのサイトの管理・運用する会社の社員も,業務としてサイトにアクセスすることがあります.このような「いわゆる関係者」のサイトへのアクセス(トラフィック)を,Google Analyticsの計測データから除外する(含めない)ことが望まれます.

そこで,「いわゆる関係者」のトラフィックをGoogle Analyticsの計測データから事前に除外するための方法をいくつか紹介したいと思います.今回は,「固定グローバルIPアドレス」がない,つまりIPアドレスの情報を使えない場合の方法の一つであるGoogle Analyticsのカスタムディメンションとフィルタを使った関係者を除外する方法を紹介します.なお紹介する設定方法は,書籍「できる逆引き Googleアナリティクス Web解析の現場で使える実践ワザ」(インプレス,木田和廣氏)を参考にしていますが,私なりの情報もかなり加えています(例えば書籍はユニバーサルアナリティクスの場合のみですが,グローバルサイトタグの場合の対応もあります).

 

2Google Analyticsのカスタムディメンションの設定

今回の関係者のトラフィックを除外するために,Google Analyticsのカスタムディメンションという機能を使います.Google Analyticsの管理画面の「プロパティの設定」で「カスタム定義 > カスタムディメンション」を選択します(図1赤枠参照).図2の画面で赤いボタンの「+新しいカスタムディメンション」をクリックし,カスタムディメンションを追加の画面(図3参照)を表示させます.そして

1)名前の欄に例えば「AccessType」と入力(図3の赤枠参照),

2)範囲を「ユーザー」と選択(図3緑枠参照),

とし下の「作成」ボタンを押してカスタムディメンションを作成します.この例では名前を「AccessType」としていますが,他の用語でもかまいません.範囲は必ず「ユーザー」にしてください.こうすることで,Google AnalyticsのCookie(クライアントID)が有効な期間でこのカスタムディメンションに与えた値が保存されます(ただし,後で書きますが実際はそうでない現象も確認しています).

結果として,この例ではカスタムディメンション「AccessType」は図4のようにインデックスの番号が「1」として作成されたことにします.

図1.Google Analyticsの管理画面のプロパティのカスタムディメンションの項目

 

図2.カスタムディメンションの一覧・追加画面

 

図3.カスタムディメンション「AccessType」の作成

 

図4.カスタムディメンションの一覧

 

3.サイト内に関係者除外用ページを作る

上記で作成したカスタムディメンション「AccessType」に関する情報を関係者(の使用するブラウザのCookie)に与えるために,サイト内に関係者しかアクセスしないようなページ(このページを「関係者除外用ページ」と呼ぶことにします)をつくります.この「関係者除外用ページ」は,サイト内からリンクを作らず,アドレスを知らないとアクセスできないようなものにします.また検索エンジンからのクロールも拒否するようなmetaタグなどの設定をしておきましょう.このページに,

3)「関係者除外用ページ」に,カスタマイズしたGoogle Analyticsのトラッキングコードを貼り付けます.

Google Analyticsがグローバルサイトタグ(下記の例ではトラッキングIDは「UA-12345678-X」としています)ならば,「関係者除外用ページ」のhtmlコードは,例えば

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="robots" content="noindex,nofollow">
<title>GA関係者除外</title>

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

gtag('config', 'UA-12345678-X', {
'custom_map': {'dimension1': 'state'},
'state': 'internal'
});
</script>
</head>

<body>
<p><strong>Googleアナリティクスで内部トラフィックを除外するためのページ</strong></p>
<p>&nbsp;</p>
<p>このページにアクセスした場合,クッキーがGoogleアナリティクスの計測対象外になります.</p>
<p>解除したい場合はこのサイトのクッキーを削除してください. </p>
</body>
</html>

のようなものとなります(ブラウザでの表示は図5のようになります).Google Analyticsのトラッキングコードが赤色と青色のフォント部分で,青色の部分がデフォルトのコードからカスタマイズした箇所で,黄色のハイライトの箇所は2節で設定したカスタムディメンションのインデックスが「1」なので「dimension1」とします(図4参照).

Google Analyticsがユニバーサルアナリティクス(下記の例ではトラッキングIDは「UA-12345678-X」としています)ならば,「関係者除外用ページ」のhtmlコードは,例えば,

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="robots" content="noindex,nofollow">
<title>GA関係者除外</title>

<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','//www.google-analytics.com/analytics.js','ga');

ga('create', ' UA-12345678-X', 'auto');
ga('set', 'dimension1', 'internal');
ga('send', 'pageview');

</script>
</head>

<body>
<p><strong>Googleアナリティクスで内部トラフィックを除外するためのページ</strong></p>
<p>&nbsp;</p>
<p>このページにアクセスした場合,クッキーがGoogleアナリティクスの計測対象外になります.</p>
<p>解除したい場合はこのサイトのクッキーを削除してください. </p>
</body>
</html>

のようなものとなります(ブラウザでの表示は図4のようになります).Google Analyticsのトラッキングコードが赤色と青色のフォント部分で,青色の部分がデフォルトのコードからカスタマイズした箇所で,黄色のハイライトの箇所は2節で設定したカスタムディメンションのインデックスが「1」なので「dimension1とします.

もし,対象サイトがGoogleタグマネージャーでユニバーサルアナリティクスのタグを使っている場合は,上記のユニバーサルアナリティクスのカスタマイズコードを用いてください(この関係者除外用ページにはGoogleタグマネージャーのスニペットを貼り付けるは必要ありません).

図4.関係者除外用ページの例

 

4.フィルタの設定

Google Analyticsの管理画面でトラフィックを除外したいビューの「ビューの設定」の「フィルタ(図6の赤枠参照)」をクリックし,図7の赤いボタンの「+フィルタを追加」をクリックします.

図8のような「ビューにフィルタを追加」という画面において,

4)「フィルタ名」に「関係者からのアクセス除外(固定IP不使用)」などと内容がわかるような名前を入力(図8の赤枠参照),

5)「フィルタの種類」で「カスタム」をクリック(図8の紫枠参照),「除外」を選択(図8の緑枠参照),

6)「フィールドタイプ」でカスタムディメンション「AccessType」を選択(図8の青色枠参照.ここは2節の(1)で作ったカスタムディメンションを選択),

7)「フィルタパターン」で「internal」と入力(図8の橙色枠参照.ここは3節で作った専用ページのトラッキングコードのピンク色のハイライト箇所の文字と一致させる)

して,最後に下の「保存」のボタンをクリックします.すると,一覧に作成されたフィルタが表示されます.

つまり,このフィルタはカスタムディメンション「AccessType」に該当する値に「internal」を持っているCookieのブラウザからのアクセスを除外するものです(補足:上記の例では値に「internal」を使っていますが,JavaScriptの予約語などでなければそれ以外の単語や英数字を使ってかまいません).

図6.管理画面・ビュー設定のフィルタ

 

図7.フィルタの追加

 

図8.新しいカスタムフィルタの作成

 

5.注意点など

準備が整って問題がなければ,トラフィックから除外したい関係者に3節で作った「関係者除外用ページ」のURLを知らせて(使用しているブラウザから)アクセスしてもらいます.その結果,そのブラウザのGoogle Analyticsのクッキーに情報が保存され,4節のフィルタを適用したビューからデータが除外されます.

記事「IPアドレスを用いて関係者のアクセスをGoogle Analyticsのデータから除外する方法」でも書きましたが,フィルタが適用されるのは,フィルタが適用された後のデータだけです.またフィルタで除外されたデータは修正できないことにも注意してください.IPアドレスの場合と違ってちょっと複雑(手間のかかる)このような場合では,「テスト環境」のビューでまず試すことをお薦めします(Google Analyticsにおいてビューは,フィルタ適用していないまっさらな「保存」のビュー,フィルタなどを試して問題が起きないかを試す「テスト環境」のビュー,そして普段使う「運用」のビューを作ることが推奨されています).もしそのようなビューがない場合は,普段使っているビュートをコピーして,このようなフィルタなどを適用してみる「テスト環境」のビューを作っておきましょう.

 

6.データの確認

設定が問題無く機能すれば,4節のフィルタを適用した(「テスト環境」の)ビューでは,3節で作った「関係者除外用ページ」にアクセスしたブラウザで対象サイトにアクセスしたデータが計測(保存)されず,フィルタを適用していない(「保存」の)ビューではそのデータが計測されます.このカスタムディメンションとフィルタが機能しているかを,Google Analyticsの「ユーザー > ユーザーエクスプローラ」のレポートで確かめてみましょう.

ユーザーエクスプローラ(図9参照)内でどれが自分のアクセスかを見つけるのは,アクセスで使用したブラウザの「クライアントID」がわからないと大変です.自分のクライアントIDを知るにはいいろいろと方法がありますが,ブラウザに保存されているクッキー情報で知る方法を紹介しておきます.

使用しているブラウザがChromeならば,「設定 > プライバシーとセキュリティ > すべてのCookieとサイトデータを表示」(ChromeのURL欄に「chrome://settings/siteData」と入力でも可)として,図10のような設定画面を表示してください

その設定画面(図10参照)で「Cookieを検索」で対象となるサイトのURLを検索して,そのサイトが出てきたらそれをクリックすると図11のような画面が出てきます.図11の_ga」が対象サイトのGoogle AnalyticsCookieなのでそれをクリックして展開すると図12のようになります.図12の場合は「コンテンツ」の欄の「GA1.4.1862059804.1479264776」の「1862059804.1479264776」がクラインとIDになります.このIDを使って,「ユーザーエクスプローラ」のレポートから自分のアクセスが見つけて(図13参照),うまく機能しているか(4節のフィルタを適用してないビューでは該当するクライアントIDのアクセスが見つかるが,4節のフィルタを適用したビューでは該当するクライアントIDが見つからないこと)を確認してみてください.

なお設定直後のアクセスのデータでは,うまく処理が出来てない場合があります(つまり,フィルタで除外されたはずなのにエクスプローラにてアクセスが確認できるなどの現象があることを確認しています.特に夕方近くになるとGoogle Analyticsのデータ反映が遅くなります).したがって,確認作業は時間をおいて(例えばアクセスをした翌日など)からやることをお薦めします.

図9.Google Analyticsのユーザーエクスプローラのレポート画面

 

図10.Chromeで「設定 > プライバシーとセキュリティ > すべてのCookieとサイトデータを表示」を開く

 

図11.該当サイトのCookieを表示

 

図12.Google AnalyticsのCookie(クライアントID)を確認

 

図13.ユーザーエクスプローラで該当するクライアントIDのユーザーを確認

 

7.この方法の問題点?

このカスタムディメンションとフィルタの方法を使えば,記事「IPアドレスを用いて関係者のアクセスをGoogle Analyticsのデータから除外する方法」でなくても関係者のアクセスデータをGoogle Analyticsで除外対象にできます.ですが,これまでの経験からこの方法にも問題があると感じています.

まず当然なのですが,ブラウザのCookieがなんらかの理由で消去された場合,再度「関係者除外用ページ」にアクセスしてブラウザのCookieに情報を持たせないと除外対象になりません

カスタムディメンション「AccessType」の設定で範囲を「ユーザー」にしました(図3参照)が,これはCookieの有効期限内ならこのカスタムディメンションが有効なデータとなる仕様(のはず)です.ですが,なぜかフィルタが有効でCookieが消去したとか有効期限が過ぎたわけでもないのにアクセスしたデータが計測された現象(カスタムディメンション「AccessType」に与えた値が消えた?)に何度か遭遇しました.原因は不明です.

この対象外の設定が無効になっていた(フィルタも有効でCookieが消去したとか有効期限が過ぎたわけでもないのにアクセスしたデータが計測された)現象は,あくまで個人的な経験なのですが一ヶ月ぐらいするとそのようなことがいつのまにか起きていたという感じです.この現象はデータをいろいろ扱っていたのでたまたま気づいたのですが,通常はこのような無効になってしまった状態は気づかないと思います(つまり,無効になっている状態なのに除外できていると思ってアクセスする状況になってしまうと思います).このような経験から対象サイトにアクセスするブラウザで一週間に1度ぐらいは「関係者除外用ページ」にアクセスするなどしたほうがいいと考えています.ただ常にサイトの関わる運用や作成者ならそのようなこともルーティンとすることも可能ですが,営業の人などはそのようなことをしてもらうのは難しいと感じました.

そして,AppleのITPの問題です.2019年9月にリリースされたITP2.3(iOS 13のSafariを始めAppleが提供するブラウザに実装されました)では,JavaScriptを用いたファーストパーティクッキーの有効期限が1日となりました.Google AnalyticsのCookie(クライアントID)は,JavaScriptを用いたファーストパーティクッキーに該当します.つまり,ITP2.3以降に該当するブラウザを用いている関係者は,対象サイトアクセスする前に(この記事で紹介した方法で除外対象になってもらうために)「関係者除外用ページ」に毎日アクセスする必要があります.とても現実的ではないと感じます(ただし簡単な方法として,業務ではSafariを使わないというのがありますね).

では,関係者を除外するにはどのようにする方法がいいのでしょうか?2020年の現状では,

記事「ブラウザの拡張機能や設定で関係者のアクセスをGoogle Analyticsの計測から除外する方法

で紹介する内容が現状の最適な方法ではないかと考えています.