1 min read

Google Analyticsでローカルからのアクセスを集計させない方法

今ままではサイトやこのブログへのアクセス履歴を確認するためにscriptタグでふつうにアナリティクスのタグを貼り付けていました
そしてGoogle AnalyticsのほうのビューのフィルタにLAN除外という名前でサーバーのグローバルIP(うちのIP)を集計させないように設定していました

しかしどう考えてもアクセスが多い。
いろいろビューの設定などを見返したらフィルタのところにこんな記述が。

Google アナリティクスでは、このフィルタでプレビューを表示できません。アドバンス フィルタや位置情報に関するフィルタ(IP アドレスや国など)でのプレビューは、現在サポートされていません。

これってつまり設定しても意味ないってことですよね・・・
ということでサーバーサイドで対応することにしました

幸いサイトもこのブログもphpで出来ているので対応はとても簡単でした

$regex = '/(^127\.)|(^169\.254\.)|(^10\.)|(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.)|(^192\.168\.)/';
$ip = $_SERVER['REMOTE_ADDR'];
$isLocal = preg_match($regex, $ip);
if ($isLocal === 0) {
    echo <<< EOM
// Analyticsのscriptタグ
EOM;
}

超簡単ですね。
$ipはアクセス元IP
正規表現にてローカルIPかどうかを判定、trueなら$isLocalは1、falseなら0
$isLocalが0、つまりローカルからのアクセスでない場合はechoせよ。

こんな簡単に実装できるとは思いませんでした・・・