• 締切済み

ホームページ訪問者の閲覧時間を知りたいです。CGI等で可能?

自分のサイトの訪問者が各ページを何秒見ているか知りたいです。詳細はわからなくても10秒未満or以上とかならPerl等で判明しないだろうかと考えています。お詳しい方、よろしくお願いいたします。 *ちなみに関数sleep(10);で10秒後に動くPerlを考えましたが、まるで10秒間そのページをダウンロードし続けているかのような挙動になってしまいNGでした…

みんなの回答

回答No.4

アクセスの同一性が記録してあれば、各ページがリクエストされた時間は記録されてる訳ですから、次のページがリクエストされた時間からそのページがリクエストされた時間を引く事で、そのページの滞留時間が測れます。もちろん最後のページは計算できませんが。

takosuke88
質問者

補足

たびたび回答ありがとうございます。m(_"_)m その方法は考えたのですが、ブラウザの「戻る」ボタンで移動された場合、戻ったページでは何もプログラムが起動しないわけで、1秒で去られた場合でもずっと見ているかのような記録になってしまうわけです。 作成者にとってお客が「読んでるか」「飛ばした」かは気になりますよね。既製ソフトか何かでそういうのあるみたいですがそれでは実力がつかないし… wakame0729さんの方法でおよそのトータル滞在時間はつかめますのでそれはやってみるつもりです。

回答No.3

No2です。 10秒云々の話は苦肉の策ですよね?No2の回答では滞留時間自体を記録しますので10秒云々を考える必要はありません。

takosuke88
質問者

補足

苦肉の策です。 どうやって滞留時間を記録するのでしょう?ページを閉じる瞬間時刻を記録するんですか?それとも常時時間をカウントしてるんですか?

回答No.2

閲覧時間(ページ滞在時間)を割り出してくれるログ解析ソフトなどはありますが、これはセッションIDのように同一クライアントである事がわかる情報をアクセスログに記録しておき、それを考慮に入れてログ解析を行う事でクライアント毎の挙動を浮かび上がらせるというような方法を取っています。 そのような方法とは別に、何らかのデータベースに独自のアクセスログのようなものを記録すれば閲覧時間を知る事はできます。必要な事は ・何らかのユニークな値をGET等でページ間で受け渡して、同一クライアントからのアクセスである事が認識できるようにする ・各ページでログを記録する ・その後、必要な方法でページ滞在時間を計算する という方法になります。 同一クライアントの判別ですが、多少アバウトで良ければクライアントのIPアドレスから判別するのもアリですね。携帯端末以外であれば一連のアクセスの途中でIPアドレスが変わる事って滅多にないと思いますので。ちなみに携帯端末はアクセスの度にIPアドレスが変わる可能性があるのでこの方法は無理です。

takosuke88
質問者

お礼

10秒後に何らかの動作(IP確認とか)をさせなければならないと思いますがそれはどうすれば…?

  • bob_n
  • ベストアンサー率35% (610/1732)
回答No.1

Java Script をなどつかって onLoadとonUnloadをつかい読みこんだ時間を記憶して ページを切り替えた時間の差でわかると思うのでが

takosuke88
質問者

お礼

なるほど!! onUnloadは場合によりブラウザを不安定にさせるらしいと本に書いてありました。実際どうなのでしょう?

関連するQ&A