Is it possible to track hash links like pages with google analytics?
For example, I want index.php/#1, index.php/#2, and index.php/#3 to all show up as individual page hits with individual time spent on page.
If there is no simple way of doing this, how can I add a track event to an onclick event with jquery? Can I still receive accurate time on "page" information this way?
Generically, your code could look like this
_gaq.push(['_trackPageview',location.pathname + location.search + location.hash]);
You could either bind that code to every time you have a hash change within your application, or you could use a generic hashchange plugin, that uses the HTML5 onhashchange, and some backwards compatible hacks for older browsers, and bind this code to that event, so that it fires every time your hash changes.
Using that plugin, your code could look like:
$(window).hashchange( function(){ _gaq.push(['_trackPageview',location.pathname + location.search + location.hash]); })
This is how you'd do this in the new Universal Analytics:
ga('set', 'page', location.pathname + location.search + location.hash); ga('send', 'pageview');
Note from Google Analytics documentation:
While technically the
send
command for pageview hits accepts an optionalpage
field as the third parameter, passing thepage
field that way is not recommended when measuring single page applications.
This is how you'd do it if you're using Google Analytics within Google Tag Manager:
Google Analytics allows you to track custom events, for example AJAX page loads.
(The usual caveats apply when doing this - hopefully there are non-javascript ways to access the same data :)
Looks like this might be useful too: https://developers.google.com/analytics/devguides/collection/analyticsjs/single-page-applications
Very helpful with clear 'What to do' and 'What not to do'
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With