クリックトラッキングの不正防止(簡易版)
ASP-Rankerやpv4u等の相互リンクでアクセスランキングとかを掲載しているとwget
系コマンドで不正にカウントを回す輩がいる。
そういうのを放置しているとそっちにアクセスが流れていってしまうので、悪い事した者勝ちみたいな風潮になるので嫌い。かといってジャンプページを作って「入口はこちら」みたいなのはユーザーの利便性に反するし、結果的に離脱率が上がるだけなのでやりたくない。
というわけで、wget
系コマンドがJavaScriptを解析できない点を利用して、location.href
で自動的に移動させるスクリプトを書いたジャンプページを置く事にした。
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-xxxxxxxx-x', 'auto');
ga('send', {
'hitType': 'event',
'eventCategory': 'click tracking',
'eventLabel': 'asp-ranker',
'eventAction': document.referrer,
'hitCallback': function() {
location.href = '#enterlink#';
}
});
</script>
Google Analyticsでイベントとして記録した後にlocation.href
している。
PhantomJSみたいなヘッドレスブラウザを使われてる場合には対応できないけど、こういうのはいたちごっこなので相手側に余計な手間をかけさせられたらそれで十分かと。
そもそもPhantomJSみたいなのを使いこなせるような層は、こんな下らない策でアクセスアップとか狙わないと思うし。