かずきち。の日記

サーバサイドエンジニアのつぶやき

Googleタグマネージャーのデータレイヤーを使って、特定のIPからのアクセス解析を除外する方法

潮干狩りや砂金採りはしたことありますか?


引用:
https://camp.hidayume.com/experience/pan_gold/

これは砂金採りの様子の写真です。
男の子が持っている特殊なボールで砂に紛れている砂金を採取するための道具です。

www.youtube.com
引用:
https://www.youtube.com/watch?v=Vl15sdNLOLo&ab_channel=%E5%8F%B2%E8%B7%A1%E5%9C%9F%E8%82%A5%E9%87%91%E5%B1%B1


多段階になっているボールを回すことで遠心力が働き、比重の小さい砂がなくなり、砂金だけがボールの中に残る仕組みです。
いらないただの砂は遠心力で飛ばしてしまいます。
インターネットも同様でウェブサイトに訪れる訪問客のうち、見込み客とそれ以外の客に分別する必要があります。

まだ少しわかりづらいので、あなたは高級外車の営業だとして考えてみましょう

手元に近隣の住民の電話帳があったとします。
しかし高級外車を売るので、単純に住民の電話帳だけではだめで
住民の平均年収などのリストがないと高級外車の営業リストとしては無意味です。
絶対に車を買ってもらえないお客に電話をしても意味がありません。
車を買ってもらうこと=営業にとってコンバージョンしているということです。

CV(コンバージョン)はWebマーケティング用語でユーザーが最終目標人達したことを意味します。
ブログで言えば       閲覧者が記事の最後まで見てくれた
ネットショッピングで言えば 閲覧者が商品を買ってくれた
保険の営業だとすれば    保険の契約にこぎつけた
と文脈によってコンバージョンの具体的意味は異なりますが、最終目標に達したことを意味します。

契約が取れること=コンバージョンする=CVすると言いますが、


引用:
https://www.ga4.guide/explore/report-type/path-analysis/

自分自身に「広告を表示したり」「自分が保険を売っているのに、自分自身で保険を購入する」のは意味がないわけです。

そのためには自分自身を対象からシステマティックに除外する必要があります。
ページアクセス時に裏で利用者のIPアドレスを抜く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['UserIP']) return hostipInfo['UserIP'];
    return false;
}

12行ほど書きます。
これでjavascriptのUserIPという変数にアクセス者のIPが格納されます。

あとはタグの発火条件でこのIPを除外して発火させます。

今回、利用者のIPアドレスを格納した箱のことをデータレイヤーという

データレイヤーとは耳慣れないことばですが…


引用:
https://www.cotta.jp/products/detail.php?product_id=088194

データレイヤーとは料理において後で使う材料をボールなどに入れておくことを意味します。
料理をしていて、じゃがいもを下ごしらえして、10分後にじゃがいもを使う時に、主婦はボールの中にじゃがいもを入れておきます。
プログラミングも同様で、プログラムを書いているとき、1000行後にhogehogeという変数を変数を使いたい時に、エンジニアはhogehogeという変数をxという変数の中に入れておきます。
このようにパソコンの一時的な箱の中にアクセス元のUPを格納しておくことで、この人には広告を出す、この人には広告を出さないみたいな挙動ができるのです。
しかも閲覧者側からはそんなトリックが使われているなんて気づきもしません。
でも広告掲載者はあの手この手でクリック単価が最大化になるような方法で広告を仕込んできます。

注目記事