自分のホームページやクライアントのホームページを作成またはメンテナンスをする際に、自分からのアクセスをGoogleアナリティクスでカウントしないようにしたいと思うことがあります。
パソコンが固定IPアドレスの場合は、Googleアナリティクスの管理画面でIPを指定してアクセスを除外設定をすることができますが、動的IPアドレス(毎回IPが変わる)の場合はそれができません。
僕もフリーランスになり、自宅のネット回線を使って作業をしているのですが、固定IPの提供がされていないため、IPアドレスが毎回変わってしまうという状況になりました。
この記事では、動的IPでも自分からのアクセスを除外できる方法をご紹介したいと思います。
ちなみに、この方法は以下のようなサイトに使える(または向いている)方法です。
- PHPが使えるサーバである
- ファイルの拡張子が.phpである
- ページ数が少ない または WordPressなどパーツテンプレートが使える
PHPとGETパラメータを使う
結論からいうと、「特定のGETパラメータを使った場合にGoogleアナリティクスのコードを出力させない」という処理をPHPで行います。
Googleアナリティクスのコードは現在headタグの直後に置くようになっています。
通常のコードの設置例
したがって、通常はこのような形でコードを記述します。
<head> <!-- Global site tag (gtag.js) - Google Analytics --> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-XXXXXXXXX-X"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-XXXXXXXXX-X'); // 自分のトラッキングID </script>
もちろん、このままではすべてのアクセスをカウントしてしまいます。
そこで、以下のようにコードを付け加えます。
変更したコード
<head> <?php if( !$_GET ["mode"] == "admin") { ?> <!-- Global site tag (gtag.js) - Google Analytics --> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-XXXXXXXXX-X"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-XXXXXXXXX-X'); // 自分のトラッキングID </script> <?php } ?>
付け加えたのは、以下の2行です。
それぞれ、上記コードの2行目と最後の行です。
<?php if( !$_GET ["mode"] == "admin") { ?>
<?php } ?>
この2つに挟むと、URLの最後に「?mode=admin」というGETパラメータが付けられた場合にGoogleアナリティクスのトラッキングコードが出力されなくなります。
たとえば、ホームページのURLが「http://example.com/」なら「http://example.com/?mode=admin」の場合のアクセスがカウントされなくなるということになります。
つまり、自分が開発中や確認時にホームページを閲覧するときに、このGETパラメータが付いたURLでアクセスすればいいのです。
注意点
この方法を使う場合の注意点としては、GETパラメータが付いたページから他のページへ移動した場合に、(何も対処しなければ)パラメータなしのページが表示され、アクセスがカウントされてしまいます。単一のページを確認したいときには使いやすい方法ですね。
GETパラメータが付いている場合にサイト内の他のページへのリンク(aタグのhref属性)にすべて同じパラメータを付けるということもできますが、この記事ではその方法は割愛します。
WordPressを使っている場合は
WordPressのテンプレートであれば、WordPressにログインしているときはGoogleアナリティクスのコードを出力しないという方法もありますが、今回ご紹介した方法ならログインの有無にかかわらずGETパラメータを付けておけばアクセスをカウントしないようにすることができます。
Googleアナリティクスのビュー設定内にある「除外するURLクエリパラメータ」は除外ではないので注意!
ちなみに、Googleアナリティクスの管理画面の「ビューの設定」の中に「除外するURLクエリパラメータ」という設定項目があります。
これを使えば、さっきのPHPのコードをわざわざ打ち込まなくてもいいように思えます。
しかし、これは除外(カウントしない)というよりURLを統合する(まとめてカウントする)ための設定なのです。
たとえば、上の画像のように「mode」と入力した場合、
http://example.com/test.php?mode=admin
http://example.com/test.php?mode=sample
http://example.com/test.php?mode=hogehoge
のようにmodeという名前のパラメータがついたアクセスはすべて
http://example.com/test.php
↑のGETパラメータがついていない元のファイル名のアクセスとしてカウントされるようにするための設定なので、これは今回の目的には使えません。