- 締切済み
ホームページ訪問者の閲覧時間を知りたいです。CGI等で可能?
自分のサイトの訪問者が各ページを何秒見ているか知りたいです。詳細はわからなくても10秒未満or以上とかならPerl等で判明しないだろうかと考えています。お詳しい方、よろしくお願いいたします。 *ちなみに関数sleep(10);で10秒後に動くPerlを考えましたが、まるで10秒間そのページをダウンロードし続けているかのような挙動になってしまいNGでした…
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- wakame0729
- ベストアンサー率32% (245/765)
アクセスの同一性が記録してあれば、各ページがリクエストされた時間は記録されてる訳ですから、次のページがリクエストされた時間からそのページがリクエストされた時間を引く事で、そのページの滞留時間が測れます。もちろん最後のページは計算できませんが。
- wakame0729
- ベストアンサー率32% (245/765)
No2です。 10秒云々の話は苦肉の策ですよね?No2の回答では滞留時間自体を記録しますので10秒云々を考える必要はありません。
補足
苦肉の策です。 どうやって滞留時間を記録するのでしょう?ページを閉じる瞬間時刻を記録するんですか?それとも常時時間をカウントしてるんですか?
- wakame0729
- ベストアンサー率32% (245/765)
閲覧時間(ページ滞在時間)を割り出してくれるログ解析ソフトなどはありますが、これはセッションIDのように同一クライアントである事がわかる情報をアクセスログに記録しておき、それを考慮に入れてログ解析を行う事でクライアント毎の挙動を浮かび上がらせるというような方法を取っています。 そのような方法とは別に、何らかのデータベースに独自のアクセスログのようなものを記録すれば閲覧時間を知る事はできます。必要な事は ・何らかのユニークな値をGET等でページ間で受け渡して、同一クライアントからのアクセスである事が認識できるようにする ・各ページでログを記録する ・その後、必要な方法でページ滞在時間を計算する という方法になります。 同一クライアントの判別ですが、多少アバウトで良ければクライアントのIPアドレスから判別するのもアリですね。携帯端末以外であれば一連のアクセスの途中でIPアドレスが変わる事って滅多にないと思いますので。ちなみに携帯端末はアクセスの度にIPアドレスが変わる可能性があるのでこの方法は無理です。
お礼
10秒後に何らかの動作(IP確認とか)をさせなければならないと思いますがそれはどうすれば…?
- bob_n
- ベストアンサー率35% (610/1732)
Java Script をなどつかって onLoadとonUnloadをつかい読みこんだ時間を記憶して ページを切り替えた時間の差でわかると思うのでが
お礼
なるほど!! onUnloadは場合によりブラウザを不安定にさせるらしいと本に書いてありました。実際どうなのでしょう?
補足
たびたび回答ありがとうございます。m(_"_)m その方法は考えたのですが、ブラウザの「戻る」ボタンで移動された場合、戻ったページでは何もプログラムが起動しないわけで、1秒で去られた場合でもずっと見ているかのような記録になってしまうわけです。 作成者にとってお客が「読んでるか」「飛ばした」かは気になりますよね。既製ソフトか何かでそういうのあるみたいですがそれでは実力がつかないし… wakame0729さんの方法でおよそのトータル滞在時間はつかめますのでそれはやってみるつもりです。