【GA4版】Googleアナリティクスで動的IPでも自分のアクセスを除外する方法
アクセス解析,Google Analytics,Web,マーケティング | 2022年4月20日

2022年…、Googleが現行のGoogleアナリティクス(ユニバーサルアナリティクス)を2023年7月で使えなくするという衝撃のアナウンスを出してWeb業界に激震が起こりました。たぶん。。。
中には既にGA4に切り替えている方もいらっしゃるとは思いますが、私的に切り替えが進まなかった一番の理由は「GA4で関係者アクセスを除外するには固定IPアドレスが前提」となっていることです。
とは言えいよいよ切り替えざるを得ない状況となりましたので、動的IPアドレスでも関係者アクセスを除外する方法を模索した結果、「コレでできそうだ」という方法が見つかりましたのでシェアしていきます。
基本的な考え方と処理の流れ
GA4ではデータフィルタという機能があり、このフィルタを使って不要なデータを除外することができます。ただし、ここでフィルタできるのは「内部トラフィック」または「デベロッパートラフィック」の2種類しかなく、その判定はGA4がページビューイベントなどを送信する際のパラメーター次第になります。
| トラフィックの種類 | パラメーター | 値 |
|---|---|---|
| 内部トラフィック | traffic_type | internal |
| デベロッパートラフィック | debug_mode | true(たぶんなんでも良い) |
となると、必要な作業は次のようになります。
- GA4側で、内部トラフィック(or デベロッパートラフィック)を除外するように設定する。
- 関係者が使用するブラウザーに、関係者であることを示すCookieを埋める。
- 関係者Cookieを保持しているブラウザーからGA4にイベントを送る際は、内部トラフィック(or デベロッパートラフィック)用のパラメーターを付与する。
とすれば、動的IPアドレス環境でもアクセスから除外することができます。
1. GA4側の設定で内部トラフィックを除外する
GA4の初期設定では、内部トラフィックを除外するようになっていないため、手動でフィルタを有効にしてやります。
手順は、GA4の管理画面より、
[管理] > [プロパティ]の[データ設定] > [データフィルタ] > [内部トラフィック]
とクリックしていくと、内部トラフィックの設定画面が出てきます。
初期状態では画面下の方にある「フィルタの状態」が「テスト」になっているので、ここを「有効」に切り替えた上で画面右上の「保存」をクリックしてください。
これで、GA4が内部トラフィックと認識したアクセスは除外されるようになります。
なお、デベロッパートラフィックとして処理したい場合は、データフィルタの一覧画面右上の「フィルタを作成」から行えます。
2. 関係者のブラウザーにCookieを埋める。
続いて、関係者が使用するブラウザーにCookieを埋めていきます。
gtag.jsを使った場合のざっくりとしたコードはこんな感じですが、Cookieが使えるかどうかの判定などは省略していますのでそのあたりは適宜修正してご使用ください。
<script>
var ga4_cookie_name = '_ga4_parties'; // 関係者を示すCookie名
var exp = 60 * 60 * 24 * 730; // Cookieの有効期間(2年間)
// 関係者Cookieを埋め込み
document.cookie = ga4_cookie_name + '=true; max-age=' + exp + ';';
// 関係者Cookieがなければ再読み込み
if (document.cookie.indexOf(ga4_cookie_name + '=true') < 0) {
location.reload();
}
</script>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-**********"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-**********', {'traffic_type':'internal'});
</script>
すぐに使ってみたいという方は、当サイトで長年ご愛顧いただいている「no_report.html」形式で用意しましたので、このファイルをダウンロードの後GA4の測定IDを書き換え、FTPでアップロードしてご使用ください。
GA4用関係者除外HTMLのダウンロード(ZIP圧縮)
3. 関係者アクセスの場合、パラメーターを付与してGA4に送信する。
あとは、各ページに埋め込むgtag.js内で、Cookieの有無に応じて送信内容を変更すれば完了です。コードはこちら。
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-**********"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
// 関係者Cookie判定
if (document.cookie.indexOf(ga4_cookie_name + '=true') < 0) {
gtag('config', 'G-**********');
} else {
gtag('config', 'G-**********', {'traffic_type':'internal'});
}
</script>
先程のno_report.html同様に、「G-**********」となっている3箇所をGA4の測定IDに書き換えてご使用ください。
以上で動的IPアドレスでもGA4から除外する方法の説明となります。
GTM(Googleタグマネージャー)を使う場合は・・・?
前述した方法ではgtag.jsを用いた方法ですが、最近ではGTMをご使用の方も多いと思います。
GTMを用いて上記実装をする方法ですが、ブログを書く気力が付きたのでエッセンスだけ記載しておきます。
下準備
gtag.jsを使った方法の手順2(Cookie埋め込み)までは、同じでOK。もしCookie埋め込み部分もGTMでやる場合は、ファイル名をトリガーにしてカスタムHTMLで埋め込むことも可能。
GTMの変数設定
| 変数名 | タイプ | 設定値 |
|---|---|---|
| GA4_関係者 | ファーストパーティCookie | Cookie名:_ga4_parties |
GTMのトリガー設定
| トリガー名 | タイプ | 設定値 |
|---|---|---|
| All Pages_一般 | ページビュー | 条件:GA4_関係者 / 含まない / true |
| All Pages_関係者 | ページビュー | 条件:GA4_関係者 / 含む / true |
GTMのタグ設定
| タグ名 | タイプ | 設定値 | トリガー |
|---|---|---|---|
| GA4設定_一般 | GA4設定 | (なし) | All Pages_一般 |
| GA4設定_一般 | GA4設定 | 設定フィールド名:traffic_type 値:internal |
All Pages_関係者 |
こんな感じで実装できます。
