続・Google Analytics のレポートから内部トラフィックを除外する方法

2008/02/10 | ラベル: , , | このエントリーを含むはてなブックマークを表示

Blogger にログインした状態でアクセスしたときだけ処理を実行する方法を、Google Analytics の自己アクセス除外設定に応用する。

Google Analytics で自己アクセスを除外する設定は Google Analytics のレポートから内部トラフィックを除外する方法 でできたのだが、ひとつ困ったことがある。

このサイトは Blogger を利用しているのだが、自分だけがアクセスできるページを作成できない。Google Analytics で自己アクセスを除外する設定をかいつまむと、こうだ。

  1. サイトに(自分だけがアクセスする/できる)新しいページを作成
  2. 作成したページに自分のアクセスだと識別する Cookie (便宜上、除外用 Cookieと呼ぶことにする)を設定するコードを埋め込む
  3. 自分が使うパソコン、ブラウザから作成したページにアクセスして、除外用 Cookie を受け取る
  4. 除外用 Cookie を持ったトラフィックを除外するフィルタを作成する

除外用 Cookie を他人が受け取っては意味がないので、自分だけがアクセスできるページが必要ということなのだが、Blogger では公開か下書きかの2通りしかなく、隠しページのようなものを作成することはできない。
ダミーの記事やウィジェットを作成し、公開→アクセス→すぐに削除とすれば Cookie を設定できるが、手順が面倒だし Webアプリ作ったりしてると Cookie を削除することも結構あるのでますます面倒である。

そこで、Blogger にログインした状態でアクセスしたときだけ処理を実行する方法を応用する。これを使えば、Cookie を削除したり別の PC を使った場合でも、Blogger にログインしてアクセスしさえすれば、除外用 Cooke を設定することができる。

ダミーの span 要素とその display 属性をチェックするコードを前の記事のように埋め込む。処理の部分に、除外用 Cookie を発行するコードを書くだけだ。

<script type='text/javascript'>
function hoge() {
var element = document.getElementById('hoge'), value;
if ( window.getComputedStyle ) // Firefox, Opera
value = window.getComputedStyle(element, null).display;
if ( element.currentStyle ) // IE
value = element.currentStyle.display;
if ( value != 'none' )
pageTracker._setVar('test_value'); // 除外用 Cookie の設定
}
</script>

最後に、ページが表示されたら上記のコードを実行するよう、body要素を変更する。

<body onload='javascript:hoge();'>

これで、logger にログインしているときにアクセスすると除外用 Cookie が設定されるようになる。まー正直、ここまでやんなくてもと自分でも思うが。

ただ Blogger にログインしているかどうかで処理を変えたいというのは需要がありそうな気もする。Blogger Developers Network を探したが、ログイン中だけコードを出力するようなタグや機能はなさそうだった。

0 コメント: