2009-08-24 16 views
10

私は、ユーザーが私のwebappの特定のページに費やした時間を測定するのが好きです。ユーザーの訪問時間を測定する方法

xxxは、ページがレンダリングされたinital tiemstampある
<body onunload="userLeaves('/url/to/current/page',xxx);" ...> ... </body> 

:まず私は、ブラウザでのonunload/onbeforeunloadイベントをキャッチし、ユーザーは次のようになりました残しているXMLHttpRequestを介してサーバに通知について考えました。

残念ながら、このソリューションはすべてのブラウザ(Operaなど)で動作しません。だから私の2番目のアイデアはサーバーを絶えずpingすることでした。訪問時間を計算するには、最後のping時間を取得し、それをinitalタイムスタンプから減算する必要があります。しかし、私はそれほど良い解決策だと思います。特に、ユーザーが3〜5のタブを持っていて、すべてのタブが500ミリ秒ごとにイベントを発生させている場合は...

訪問時間はどのように測定しますか?誰かが特定のページに費やされた時間を得る良いアイデアを持っていますか?

+0

【その他、広告ネットワークのレポートにいくつかのより多くのテーラードは...ある]ヨーヨーあなたはやってやる?また、サーバーにpingを実行することも考えています – brauliobo

答えて

3

Googleアナリティクスのようなツールで使用されるアプローチは、ユーザーが最初のページをヒットした時間と、1回の「訪問中」の最後のページをヒットした時間を測定したものです。単一の訪問は、各訪問が以前の時間に十分に近い、1人のユーザ(クッキー)による一連のページビューとして定義されます。私はその限界が何であるか分からない。

私の経験では、アンロードイベントなどを伴うこれらの種類のトリックは、侵入的であることに接しており、ユーザーはそれらを理解できません。そのため、クッキーとページビューデータからの訪問を構築するような、よりパッシブなアプローチに比べて価値はほとんどありません。

0

それはあなたができるようになるどのくらいの誤差に依存します。エラーが数十分の1のオーダーの場合は、訪問ログだけが必要で、最後のページのセッションタイムアウト間隔を設定します。 数百ミリ秒しか許可しない場合は、pingを実行する必要があります。 エラーがその間にある場合は、より低い速度ではあるが、依然としてpingする必要があります。またはブラウザをシャットダウンしたユーザーがonunloadイベントを発生させないという事実を受け入れます。

1

私は、ビジネス目標のいくつかに応じて、ほぼすべてのWeb分析パッケージを提案します。

  1. Google Analytics:(無料)
  2. Yahoo Analytics:(無料)(ベータ版)
  3. Woopra:(無料)(ベータ版)
  4. Omniture:(高価な)(ほとんどが豊かな、困難な学習曲線を備えています)

どうやったのか

関連する問題