最近イケイケでいろんな広告代理店が使いまくってるNendさん。
実にCVタグが実にウザい...
で、デフォルトだと
1つID設定して、js呼んで...
1つID設定して、js呼んで...
1つID設定して、js呼んで...
1つID設定して、js呼んで... 辛い
なので改良したぉ
nendってこれです。
http://nend.net/
Before
<問題点>
- 1つずつID設定とか死ねる
- そもそもtag_idって名前は他とぶつかるんじゃないの?
- UserAgentの判定が変。1つずつ文字列だけで判定するならsearchよりtypeOfじゃね?
もとのHTML
<script type="text/javascript">
var tag_id = 99999999999999999999999999999999999;
var nend_domain = "https://s.nend.net";
</script>
<script type="text/javascript" src="https://s2.nend.net/js/nendRt.js"></script>
もとのjavascript
if ("undefined" == typeof nend_domain) var nend_domain = "https://s.nend.net";
if ("undefined" == typeof nendRt) var nendRt = {
init: function() {
try {
if (-1 != document.cookie.indexOf("nendoptout")) return 0;
"undefined" != typeof tag_id && document.createElement("img").setAttribute("src", nend_domain + "/rt.php?tag_id=" + tag_id)
} catch (a) {
console.log(a)
}
}
};
var nend_user_agent = navigator.userAgent;
!navigator.cookieEnabled || (-1 == nend_user_agent.search(/AppleWebKit/) || -1 == nend_user_agent.search(/Android/) && -1 == nend_user_agent.search(/iPhone/) && -1 == nend_user_agent.search(/iPod/) && -1 == nend_user_agent.search(/iPad/)) || nendRt.init();
After
<直してみた箇所>
- 1つでも複数でもID設定できるようにした。(とりあえず安全のために終わったらundefinedで後片付けしてる)
- tag_idをnend_tag_idsに変えた
- UserAgentの判定をまとめた。こんなかんじでいいですよね。
HTMLの改修アイディア
<script type="text/javascript">
var nend_tag_id = 99999999999999999999999999999999999;
var nend_tag_ids = [1111111111111111111,2222222222222222,33333333333333333,44444444444444444];
</script>
<script type="text/javascript" src="https://s2.nend.net/js/nendRt.js"></script>
javascriptの改修アイディア
var nend_domain = nend_domain || "https://s.nend.net";
var nend_user_agent = navigator.userAgent;
var nendRt = {
init: function() {
try {
if (-1 != document.cookie.indexOf("nendoptout")) return 0;
if (typeof nend_tag_id != "undefined") {
this.request(nend_tag_id);
nend_tag_id = undefined;
}
if (Object.prototype.toString.call(nend_tag_ids) === '[object Array]') {
for(var i = 0, l = nend_tag_ids.length; i < l; i++) {
this.request(nend_tag_ids[i]);
}
nend_tag_ids = undefined;
}
} catch (e) {
console.log(e);
}
},
request: function(t){
console.log('test');
return document.createElement("img").setAttribute("src", nend_domain + "/rt.php?tag_id=" + t);
}
}
if ((navigator.cookieEnabled && /AppleWebKit|android|ip(hone|(a|o)d)/i.test(nend_user_agent))) nendRt.init();
以上、なかのプログラマさん見てたら直してください。