かずきち。の日記

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

データレイヤーで抽出された閲覧者のIPアドレスによって広告の非表示を切り分けてクリック単価をあげよう

インターネットは広告のまやかしが効いている

インターネット広告は広告の中でも特に面白く、誰が?どこから見るかによって見え方が変わる。
相対性理論のようなもので、光より早く進めば時間は戻り、光より遅く進めば時間は進む。

「光より早く進めば」「光より遅く進めば」

ものの見え方が変わってくると主張したのがかの有名なアインシュタインである。

ja.wikipedia.org

広告も誰が見るかによって、見え方が変わる

今回は自宅から ウェブサイトを見たときに、広告の配信を削除し
   自宅外からウェブサイトを見たときに、広告の配信をする 悪魔的タグを配信していこうとする。
そのためにはウェブサイト自身がこの閲覧者は自宅からの閲覧・自宅外からの閲覧と分ける必要がある。
このタグを配信するために1ヶ月ほど試行錯誤したがようやく完成した。

https://jsonip.com/というサイトはjsonでアクセス元のIPアドレスを返してくれるウェブサイトでここのjsonの仕組みを使う。

UserIPというデータレイヤーにjsonの返り値を代入する
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;
}

ソース自体は非常に短いが、このソースで閲覧者のIPアドレスをぶっこ抜きデータレイヤー「ip」という箱に返却する。
あとはそのソースが管理者が保有するIP群か否かで広告タグの配信・広告タグの削除を行う。
たったこれだけで閲覧元によってウェブサイトの挙動を変えることがjavascriptで実装ができた。


この閲覧者のIPによって挙動を切り替えられるのはなぜいいか?

利用者を切り分けるのは年齢・性別・職業・地域などで切り分けるのだが…
一般にこの手のマーケティングは人手によって行われるのを機械で完全に自動で切り分けられているのが嬉しい。
この商品を今まで買ったことがない人に広告を打ちたいのに、関係ない人にも広告を出向しているのではクリック単価が下がってしまう。
というわけで上記のタグで見込みのある利用者に絞って広告配信を行っている。

注目記事