Skip to content

Instantly share code, notes, and snippets.

@talitapagani
Created May 13, 2014 19:37
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save talitapagani/196fcc5da84aa35f64d1 to your computer and use it in GitHub Desktop.
Save talitapagani/196fcc5da84aa35f64d1 to your computer and use it in GitHub Desktop.
How to use Navigation Timing API with Google Analytics
function getPerfStats() {
var timing = window.performance.timing;
return {
dns: timing.domainLookupEnd - timing.domainLookupStart,
connect: timing.connectEnd - timing.connectStart,
ttfb: timing.responseStart - timing.connectEnd,
basePage: timing.responseEnd - timing.responseStart,
frontEnd: timing.loadEventStart - timing.responseEnd
};
}
window.onload = function() {
if (window.performance && window.performance.timing) {
var ntStats = getPerfStats();
//_trackEvent(category, action, opt_label, opt_value, opt_noninteraction)
_gaq.push(["_trackEvent", "Navigation Timing", "DNS", undefined, ntStats.dns, true]);
_gaq.push(["_trackEvent", "Navigation Timing", "Connect", undefined, ntStats.connect, true]);
_gaq.push(["_trackEvent", "Navigation Timing", "TTFB", undefined, ntStats.ttfb, true]);
_gaq.push(["_trackEvent", "Navigation Timing", "BasePage", undefined, ntStats.basePage, true]);
_gaq.push(["_trackEvent", "Navigation Timing", "FrontEnd", undefined, ntStats.frontEnd, true]);
}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment