Flashでのイベントはページビューとしてカウントされるのか? [アクセス解析Q&A]
質問:Flashでコンテンツを作成したのですが、ページ内をクリックしてページが変わっても、URLが変わりません。Flashのコンテンツは何ページ見ても、アクセス解析上では1ページビューとカウントされるのでしょうか?
答え1ページビューとカウントする場合もあれば、そうでない場合もあります。
解説これは何を「ページ」として定義するかによって、「ページビュー」も変わるからである。このケースはある1つのhtmlファイル(flash.html)に1つのFlashファイル(contents.swf)が表示されて、すべてのコンテンツがそのFlashファイルに記述されていると仮定してみよう。
サーバ・ログ型のカウント方法
まずサーバ・ログの場合で考えてみたい。アクセス解析ツールがhtmlファイルだけを集計するように設定されている場合(通常は集計から除外するファイルの拡張子を指定することができるので、この場合はswfファイルを対象外と指定してあることにする)、サーバにリクエストがあったflash.htmlだけが集計される。そのためFlashの様々なコンテンツを見るためにクリックしたリクエストは「ページビュー」としては集計されない。つまりこのケースでは、flash.html の1ページビューのみとなる。
では同じサーバ・ログを集計する解析ツールで、集計対象となるファイルから、swfファイルを除かないという設定にしたとする。この場合は、1回flash.htmlに対してリクエストがありcontents.swfもリクエストされ、flash.htmlとcontents.swfが各1ページビューで合計2ページビューとなる。
JavaScript型計測タグのカウント方法
次にJavaScript型の計測タグでデータ収集する場合で考えてみよう。JavaScript型の計測タグとは、通常htmlファイルの</body>の直前に所定のJavaScriptソースコードを記述して、ブラウザ側でページを閲覧した時点でその閲覧記録を送るという手法である。この方法だと、例えば[戻る]ボタンでパソコンのキャッシュから読み込まれた場合など、サーバにリクエストが届かない閲覧履歴まで取得することができる。
さてこのケースでJavaScriptの計測タグがflash.htmlだけに実装されていたとしよう。この場合flash.html が1ページビューとなる。
主要なクリック・アクション(イベント)をページビューとしてカウントするには?
では普通のhtmlファイルのリンク・クリックのように、主要なボタンをクリックして次のシーンに移るFlashコンテンツの場合に、それぞれのイベントを1ページビューとしてカウントするような集計ができないのだろうか?
実はflashファイルはActionScriptというプログラムで書かれており、これはJavaScriptと親戚のようなものである。このActionScript内にJavaScriptの計測タグと似たものを実装することが可能だ。細かい技術的なことは省略するが、ユーザ側で発生した様々なイベント(マウス・オーバー、クリックなど)に対して、それを「ページビュー」としてカウントするような記述を加えることで、計測したいものだけを対象にして実装することが可能だ。
もちろんコンテンツ制作時にあらかじめ何を計測するかを決めなければいけないし、余計な実装の手間や動作確認が必要になるが、この手法を使って、どのコンテンツが見られているのかを計測すれば、次のコンテンツ制作の役に立つはずだ。
サーバ・ログを集計する場合でも、Flash(swf)ファイルを分割して、あるボタンをクリックしたら別のFlashファイルを要求するようにすれば、そのクリックに対して特定のswfファイルをカウントすればよいことになる。しかしこの方法で取得できるデータは限られているし、アクセスをカウントするためにFlashファイルの構成を考えないといけないことになるので、ベストな方法とは言えない。
Google MapsやGmailなどのAjaxを使ったコンテンツにも共通する問題
Ajaxを使ったコンテンツでも、上記のFlashと同じような状況になる。Ajaxはわかりやすく言うと、ユーザのリクエストを待たずにコンテンツを先読みして、ユーザのアクションに対して、その都度サーバへリクエストを投げない技術である。つまりリクエストを投げないので、アドレスバーに表示されたURLが変化しないのが特徴だ。
この場合も、計測したいイベントをユーザが起こした時にデータが飛ぶようなプログラムの実装を行えば、それを「ページビュー」としてカウントできるようになる。
ソーシャルもやってます!