特定のユーザーが Web アプリケーションの特定のページにどれくらいの時間を費やすかを約 1 分の精度で知る良い方法はありますか?
私が思いついた解決策の 1 つは、Javascript を使用して Web サービスを毎分ヒットし、データベースでヒットを追跡することです。しかし、もっと良い方法があるのではないかと思っていました.Google アナリティクスでこれを達成する方法はありますか? もしそうなら、どのように?
特定のユーザーが Web アプリケーションの特定のページにどれくらいの時間を費やすかを約 1 分の精度で知る良い方法はありますか?
私が思いついた解決策の 1 つは、Javascript を使用して Web サービスを毎分ヒットし、データベースでヒットを追跡することです。しかし、もっと良い方法があるのではないかと思っていました.Google アナリティクスでこれを達成する方法はありますか? もしそうなら、どのように?
興味のある方のために、私は小さな JavaScript ライブラリーと、ユーザーが Web ページと対話する時間を測定するサービスにいくつかの作業を加えました。それは実際にチェイスが彼/彼女の答えで説明していることを正確に行います! ただし、ユーザーが実際にページと対話している時間をより正確に (完全ではありませんが) 追跡するという追加の利点があります。ユーザーが別のタブに切り替えたり、アイドル状態になったり、ブラウザーを最小化したりする時間を無視します。
編集: 現在の API の使用法を含めるように例を更新しました。
使用例:
ページに含める:
<script src="http://timemejs.com/timeme.min.js"></script>
<script type="text/javascript">
TimeMe.initialize({
currentPageName: "home-page", // page name
idleTimeoutInSeconds: 15 // time before user considered idle
});
</script>
時間をバックエンドに報告したい場合:
window.onbeforeunload = function(){
xmlhttp=new XMLHttpRequest();
xmlhttp.open("POST","ENTER_URL_HERE", false);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
var timeSpentOnPage = TimeMe.getTimeOnCurrentPageInSeconds();
xmlhttp.send(timeSpentOnPage);
});
document.onbeforeunload
TimeMe.js は、websockets を介したタイミング データの送信もサポートしているため、完全な同期 HTTP 要求をイベントに強制する必要はありません。