はてなカウンターがカウントしないもの

これは前々から薄々感じていたことだが、はてなカウンターは、決してすべてのアクセスをカウントしている訳ではない。但し、感覚的にはそう感じていたが、実際に厳密に試してみたことはこれまでなかった。どのようなアクセスをカウントし、あるいはカウントしないのか、そろそろちゃんと調べておこうと思った。

環境

カウントする仕組み

まずはどのようにカウントしているのか、その仕組みを調べてみた。

カウンターを設置するコード
  • はてなダイアリーにおいては、管理 >> デザイン >> 詳細 >> ページのヘッダ内に以下のhatenaタグを設置する。
<hatena name="counter" cid="カウンターID(例:11)">
<script type="text/javascript"><!--
    hatena_counter_name = "はてなID(例:zariganitosh)";
    hatena_counter_id = "カウンターID(例:11)";
    hatena_counter_ref = document.referrer+"";
    hatena_counter_screen = screen.width + "x" + screen.height+","+screen.colorDepth;
//--></script>
<script type="text/javascript" src="http://counter.hatena.ne.jp/js/counter.js"></script>
<noscript><img src="http://counter.hatena.ne.jp/はてなID(例:zariganitosh)/カウンターID(例:11)" border="0" alt="counter"></noscript>
  • noscriptタグは、JavaScriptが動作しないブラウザ環境でのみ、表示される。(評価される)
    • つまり、http://counter.hatena.ne.jp/はてなID(例:zariganitosh)/カウンターID(例:11) の画像を表示する(アクセスする)ことで、カウントされるのだ。
  • 通常は、hatena_counter_XXXX変数に必要なアクセス情報をセットして、http://counter.hatena.ne.jp/js/counter.jsを実行することで、カウントしているのだ。
    • 今時のブラウザは、常時JavaScriptが有効な環境で動作していると思われるので。
実験
  • noscriptタグを削除して、imgタグで始めると、1回のアクセスで2カウントずつ増加した。
    • JavaScriptと、imgタグによる二重のカウントが実施されてしまうためと思われる。
  • scriptタグをすべて削除して、imgタグのみでもカウントされる。
    • 但し、カウンター数値は一切表示されない。
    • また、hatena_counter_XXXXに設定されるアクセス情報(リンク元URL・画面サイズ等)も取得できなくなる。

様々なアクセス

具体的なアクセス方法でいろいろ試してみた。

自分のアクセス
  • はてなカウンター >> 設定 >> カウンターID >> 自分のアクセス >> 記録しない を選択しておくことで、

AutoPagerize等のページ追記アクセス


∴カウントしない。

RSSリーダーによるアクセス


∴カウントしない。

curl等のコマンドによるアクセス
  • 以下のコマンドを何度か実行してみた。
$ curl 'http://d.hatena.ne.jp/zariganitosh/'


∴カウントしない。

  • 但し、出力をファイルに保存して、そのファイルを開くと、はてなカウンターは+1カウントされた。
AppleScriptの"URL Access Scripting"
  • AppleScriptを利用すると、以下のようにURLを指定して、ファイルをダウンロードできる。
      • ちなみに、OSX 10.7 Lion では、実行できない。("URL Access Scripting"が削除されてしまったらしいので)


do shell script "touch ~/Downloads/blog"
set newFile to (path to home folder as text) & "Downloads:blog" as alias

tell application "URL Access Scripting"
download "http://d.hatena.ne.jp/counter_test/" to newFile with progress
end tell


∴カウントしない。

  • 但し、ダウンロードしたファイルをテキストエディットで開くと、はてなカウンターは+1カウントされた。
  • また、AppleScriptSafari等のブラウザをコントロールしてアクセスしても、もちろんカウントされるはず。
検索エンジン等のロボットアクセス

たぶん、カウントしない。

上記現象の理解

  • つまり、URLにアクセスして、HTML(CSSJavaScriptも含む)データをダウンロードするだけでは、カウントされないのだ。
  • ダウンロードしたHTMLデータが、ブラウザ等によって視覚情報として評価された時、初めてカウントされるのだ。
    • 視覚情報として評価 = JavaScriptの実行、画像データの取得など。

所感

  • AutoPagerizeによるアクセスについては、ぜひ知りたい。
    • しかし、読む気がなくてもページ下方までスクロールすると次ページが読み込まれてしまうので、正しくカウントするには工夫が必要かもしれない。
  • 例えば、AutoPagerizeによる最初の追記分、つまり2ページ目のカウントは無視して、3ページ目からカウントするとか。
    • 3ページ目が追記されて初めて2ページ目が読まれたと予測できるため。
    • しかし、3ページ目が追記された時に取得するアクセス情報は、2ページ目の情報である必要がある。
    • けっこう複雑。そんなカウンター無理かもしれない...。
  • もっと高度なアクセス解析ツールもあるけど(Google Analytics等)、このような零細ブログにはまだ不要だと思った。
  • せいぜい、アクセスされたURL、リンク元URL、検索語などが、なるべくリアルタイムで確認できれば、それで満足な気がする。