Google Tag Manager のイベント計測で特定のIPを弾く


背景

会社のサイト上であるボタンがどれだけクリックされているのか知りたいと思い、 Google Tag Manager で一通りタグを作り終わって Google Analytics を確認してみると、、、

「めっちゃクリックされてる??!!いや、、でも待てよこのサイト公開したばっかりのはずなんやけど、、、」

社員がクリックしまくってるからでした。ということでイベント計測で社内アクセスを弾く設定をしていきたいと思います。

手順

変数の作成

左サイドバーにある変数 > ユーザー定義変数から新規カスタムJavaScript変数を作成します。

ここでアクセスして来たユーザーのIPアドレスを取得するようなJSをかいてあげます。IPアドレスを返してくれるいい感じのサービスを見つけてきて、そこにXMLHttpRequestでリクエストを飛ばします。サイトがHTTPSなのでリクエスト先がSSL化してくれているとMixed Contentにならなくて嬉しい!また入力するのは

「return」ステートメントを使って値を返す JavaScript 関数を指定してください

とのことなのでコードは以下のようになります。

function () {
    if (window.XMLHttpRequest) xmlhttp = new XMLHttpRequest();
    else xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

    xmlhttp.open("GET","https://jsonip.com/",false);
    xmlhttp.send();

    hostipInfo = (new Function("return " + xmlhttp.responseText))();

    if (hostipInfo['ip']) return hostipInfo['ip'];
    return false;
}

入力が済んだら適当な名前をつけて保存します。

トリガーの設定

サイドバーのトリガーから制約をかけたいものを選択し、これらすべての条件が true の場合にこのトリガーを有効化に以下のように入力します。

一番左のテキストボックスには先ほどつけた変数の名前を、一番右のテキストボックスには会社のIPアドレスを入力。IPアドレスはここのサイトなどで確認できます。弾きたいIPアドレスが複数ある場合は適宜真ん中のセレクトボックスで正規表現に一致を選ぶなり、条件のレコードを複数作るなりやってください。

あとはこのトリガーをもとにタグを作って、公開して完了です。

サイト上のあるボタンのクリック数知りたい!読了率測りたい!!内部の人のアクセスデータいらん!!!というのはビジネス要求としてよくあるものですよね。先ほどと同様に設定すれば汎用的に使える設定ですのでぜひお試しください。