Hatena::ブログ(Diary)

XXXannex このページをアンテナに追加 RSSフィード

2012-03-12

はてなブックマークボタンが行動情報の取得をしている、という話

この辺の話でしょうか。

マイクロアド版とオプトアウト版のdiffを取ると、こんな感じ。

$ diff bookmark_button.js bookmark_button_wo_al.js
745,755d744
<
< (function () {
<     var domains = 'www.toyokeizai.net member.toyokeizai.net excite.co.jp exblog.jp mainichi.jp jp.msn.com *.jp.msn.com itmedia.co.jp bizmakoto.jp atmarkit.co.jp eetimes.jp ednjapan.cancom-j.com ednjapan.com barks.jp www.asahi.com *.asahi.com jp.techcrunch.com japanese.engadget.com jp.autoblog.com celebrity.aol.jp www.nikkei.com *.nikkeibp.co.jp japan.cnet.com japan.zdnet.com builder.japan.zdnet.com japan.gamespot.com www.re-source.jp www.yomiuri.co.jp groupon.jp';
<     var pattern = '^(?:' + domains.replace(/\./g, '\\.').replace(/\*\\\./g, '(?:[^.]+\\.)+').replace(/\s+/g, '|') + ')$';
<     if (isLocal || !/^https?:$/.test(location.protocol) || new RegExp(pattern).test(location.hostname)) return;
<     window.mad_partner_id = '6';
<     var script = E('script', { type: 'text/javascript', src: '//send.microad.jp/js/conv0000.js' });
<     var anchor = document.getElementsByTagName('script')[0] || document.getElementsByTagName('head')[0].firstChild;
<     anchor.parentNode.insertBefore(script, anchor);
< })();
<

で、これは何をやってるのかというと。

ちなみに isLocal の判定はこの辺。

var isLocal = /\.hatena\.ne\.jp:3000$/.test(location.host);

で、conv0000.js では何をやってるのかというと。

var mad_host="http://track.send.microad.jp";
if(document.location.protocol=="https:"){
	mad_host="https://send.microad.jp";
}
var var_client_id='';
if (typeof(mad_client_id) != 'undefined') {
	var_client_id="&clientid="+mad_client_id;
}

var var_group_id='';
if (typeof(mad_group_id) != 'undefined') {
	var_group_id="&group="+mad_group_id;
}

var var_partner_id='';
if (typeof(mad_partner_id) != 'undefined') {
	var_partner_id="&partnerid="+mad_partner_id;
}

var var_user_key='';
if (typeof(mad_user_key) != 'undefined') {
	var_user_key="&userkey="+mad_user_key;
}

var var_demographics='';
if (typeof(mad_demographics) != 'undefined') {
	var_demographics="&demographics="+mad_demographics;
}

var var_attributes='';
if (typeof(mad_attributes) != 'undefined') {
	var_attributes="&attributes="+mad_attributes;
}

var encode_url="prereferrer="+escape(document.referrer);
var mad_query=encode_url+var_client_id+var_group_id+var_partner_id+var_user_key+var_demographics+var_attributes;

var mad_url=mad_host+"/track.cgi?"+mad_query;
var mad_target=new Image();
mad_target.src=mad_url;

最近Web技術にはさっぱり疎いのですが、IMGタグCGI埋め込みとかWeb1.0時代Tips現在も使われてるんですね。

mad_attributes というのが良く分からないけど、その他のmad_*は特にきな臭い感じではなさそう。あと、その他に送信されるのはreferrerのようです。

はてなブックマークボタンは、2011年9月1日より興味関心に基づく広告の掲載を目的とした行動情報の取得(個人情報以外)をしています

この行動情報株式会社マイクロアドプラットフォームを利用し、Cookie を用いて取得されます

はてなブックマークボタンを表示する - はてなブックマークヘルプ

cookie って document.cookie で取得するんじゃなかったっけ?最近は window.* にエクスポートされるようになってるのだろうか。javascriptはよく分からないな。それとも、javascriptじゃなくて track.cgi 側でやってるのかな?

ともかく重要なのは、bookmark_button.js を読み込んでるページを見た時点で影響があるということ。はてブを使わなきゃおっけー、とか思ってる人は注意したほうがいいんじゃないかな。まあ知らんけど。

追記

現在マイクロアドへの行動情報提供自体を廃止しているようです。

機能自体を停止しちゃうと行動情報提供そのものが悪だと思われちゃう可能性があるなあ。ま、自分としては、しないに越したことはないけど。広告最適化されようとも関係ないしね。

rnarna 2012/03/12 19:11 track.cgi にアクセスする際にブラウザが付けるクッキーに謎の数値の列が含まれていたので、それがトラッキング用のIDか何かだと思います。

kkobayashi_akkobayashi_a 2012/03/12 19:28 コメントありがとうございます。
ブラウザのクッキーを見てみると、確かに何やら謎の文字列が入ってました。
リクエストの時点でデータを生成するのではなく、取得済みのcookieから何らかの情報を取り出してる・・・ということなのでしょうね。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/kkobayashi_a/20120312/p1
リンク元