私は、ユーザーがWebページにいる時間を計測する小さなJavaScriptライブラリとサービスにいくつかの作業を加えました。これには、ユーザーが実際にページを操作している時間をより正確に(完全ではありませんが)追跡できるという追加の利点があります。ユーザーが別のタブに切り替えたり、アイドル状態になったり、ブラウザを最小化したりする時間を無視します。GoogleAnalyticsメソッドには、新しいリクエストがドメインによって処理されたときにのみチェックするという欠点があります。常に正確です。誰かがあなたのページを表示しなくなったか、ブラウザを最小化したか、最後にページをロードしてからタブを3つの異なるWebページに切り替えたかなどは考慮されません。
参考までに-完璧な解決策はありません。しかし、うまくいけば、これも価値を提供します。Javaacript APIを実装して統計を自分で収集することも、すべてを実行するサービスを使用することもできます。
http://timemejs.com
その使用例:
あなたのページに含める:
<script src="https://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>
自分で時間をバックエンドに報告したい場合:
xmlhttp=new XMLHttpRequest();
xmlhttp.open("POST","ENTER_URL_HERE",true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
var timeSpentOnPage = TimeMe.getTimeOnCurrentPageInSeconds();
xmlhttp.send(timeSpentOnPage);
TimeMe.jsは、WebSocketを介したタイミングデータの送信もサポートしているため、完全なhttpリクエストをdocument.onbeforeunload
イベントに強制する必要はありません。