At lognormal/mPulse, we have boomerang set up to send a beacon on page load and on page unload. The unload beacon tells us when someone has left the page. If they go to a new page, the next load beacon overrides the previous unload, else the unload tells us how long they stuck around.
It's been pretty reliable. All current browsers will make a GET request in the onbeforeunload event (onunload in Opera). Firefox is the only one that blocks the next page's load until a response is received, and Opera is the only other browser that handles the response though it doesn't block while waiting for it.
Our primary motivation is to measure session engagement (bounce rate, conversion, duration, pages, etc.) versus average page load time across the session.
It's been pretty reliable. All current browsers will make a GET request in the onbeforeunload event (onunload in Opera). Firefox is the only one that blocks the next page's load until a response is received, and Opera is the only other browser that handles the response though it doesn't block while waiting for it.
Our primary motivation is to measure session engagement (bounce rate, conversion, duration, pages, etc.) versus average page load time across the session.