2009-08-24 16 views
10

Bir kullanıcının webapp'ımın web sayfamda geçirdiği süreyi ölçmeyi severim. Öncelikle ben kullanıcı artık terk edilen bir XMLHttpRequest aracılığıyla sunucu tarayıcıda onunload/onbeforeunload olayı yakalamak ve bildirmek düşündü gibi:Bir kullanıcının ziyaret süresinin nasıl ölçüleceği

sayfa render edildiğinde xxx açmasının tiemstamp olan
<body onunload="userLeaves('/url/to/current/page',xxx);" ...> ... </body> 

.

Ne yazık ki bu çözüm tüm tarayıcılarda (ör. Opera) çalışmaz. Bu yüzden ikinci fikrim, sunucuyu sürekli olarak ping etmekti. Ziyaret zamanını hesaplamak için birisinin son ping zamanını alması ve bunu insizal zaman damgasından çıkarması gerekir. Ama ben özellikle bir kullanıcı 3 veya 5 sekmeleri opand ve her sekme her 500 ms'de bir olay ateşlediğinde, iyi bir çözüm olduğunu düşünmüyorum ...

Ziyaret süresini nasıl ölçebilirsiniz? Bir particualr sayfada geçirilen zamanı elde etmek için daha iyi bir fikri olan biri var mı?

+0

[diğerleri, Reklam Ağı Raporlaması'na biraz daha uyarlanmış ... vardır] yo bitirmek mi? Ben de sunucuya ping yapmayı düşünüyorum. – brauliobo

cevap

3

Bu tür araçlar tarafından Google Analytics olarak kullanılan yaklaşım, ziyaret süresinin, kullanıcının ilk sayfaya tek bir "ziyaret" sırasında son sayfaya geldiği süreye ulaştığı zaman olarak ölçüldüğüdür. Tek bir ziyaret, her ziyaretin bir öncekine yeterince yakın olduğu bir kullanıcı (çerez) tarafından bir dizi sayfa görüntüsü olarak tanımlanır. Ancak bu sınırın ne olduğunu bilmiyorum.

Benim tecrübelerime göre, bu tür hileler, boşaltma olayları ve benzeri şeyler ile müdahaleci olma konusunda sınırlıdır ve kullanıcılar bunları takdir etmez. Bu nedenle, daha fazla pasif bir yaklaşım üzerinde, çerezlerden ve sayfa görüntüleme verilerinden bir ziyaret yapmak gibi çok az değer katıyorlar.

0

Size izin verecek ne kadar hata bağlıdır. Hata onlarca dakika içinde olursa, yalnızca bir ziyaret günlüğüne ihtiyacınız olur ve son sayfa için oturum zaman aşımı aralığını ayarlamanız gerekir. Yalnızca yüzlerce milisaniye izin verirseniz, ping yapmanız gerekir. Hata aradaki herhangi bir yerde ise, daha düşük bir hızda da olsa ping yapmanız gerekir; veya tarayıcıyı kapatan bir kullanıcının onunload olayını tetiklemeyeceği gerçeğini kabul edin.

İlgili konular