先のエントリで、検出テストをやってみたのですが、だいたい仕組みとかがわかってきたのでfuckadblockに頼らないお手軽対策をやってみたいと思います。
一応傾向値だけは知っときたいなと思って、設定してみました。これでほぼGAのブロック率は計測できるんじゃないかなと思います。
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
<script type="text/javascript">$(window).load(function(){
if(typeof window.ga.loaded == "undefined"){$("#header").append("<img src='http://example.com/analytics.php' />");}
}
);</script>
本来windowのロードが完了した時点では、gaのロードが概ね終わってるはずなので、そのタイミングに引っ掛けてwindow.ga.loadedプロパティの有無を調べるという方法です。
これで検出できた場合に、自分のドメインに設置したGAにサーバサイドでページビューを送信するスクリプトを読ませるようにします。Universal Analyticsをガラケーサイトに対応させるためのスクリプトみたいな感じです。
いちおうCookieでユニークユーザを計測できるようにしつつ、IPとUserAgentだけ送信しておきます(仕組み上GhosteryみたいなPC用のブロッカーも反応するので。)
ちゃんとやる場合はページパスも渡すようにしてもいいのですが、今回は傾向値を掴みたいだけなので固定パスでpageviewを送ります。ここは好みに合わせて、埋め込み元からパスやタイトル情報を渡したり、eventで送信してもいいですね。詳しくはMeasurement Protocolを読みましょう。
この方法で、GAのBlock率を計測することができます。なお、24時間での実験結果ではこんだけBlockerの記事書いててもGAブロック率7%程度でした。
広告屋さん向けに書いておくと、GTM/YTMなどのブロック率検知も同様に行えます。
GTMなら、window.google_tag_managerとか、YTMはちょっとわかりやすいパラメータが見当たらなかったのですが、window.BrightTag.V2_RESPONSEとかですかね。
PCでテストする場合は、Ghosteryの拡張でオン・オフしながらChromeのコンソールでconsole.dir(window)として、ブロック時と非ブロック時で違いが検出できそうかつwindow.loadイベントのタイミングで拾えそうなものを選びます。
ちなみに、解析用スクリプトはadとかanalyticsっていう単語を入れると引っかかる可能性があるので、自ドメインで無関係そうなファイル名にするのが無難だと思います。