Google Analytics pageTracker is not defined?

leen3o picture leen3o · Aug 17, 2010 · Viewed 45.6k times · Source

Little bit confused... I am trying to track mailto links being clicked, but constantly 'pageTracker is not defined' is shown. I have the following code just before my end body tag ()

<script type="text/javascript">
  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-000000']); // This is my account number, I have added the zeros in this editor
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();
</script>

Then I am using this in my mailto links

<a href="mailto:[email protected]" onClick="javascript:pageTracker._trackPageview('/mailto/hello');">[email protected]</a>

I cannot see why its not working? Any help would be appreciated

Answer

joshperry picture joshperry · Aug 17, 2010

The new Async Google Analytics code (that you're using) works a bit differently than the non-Async. Any time that you want to call a method on pageTracker you simply push a "message" onto the "_gaq" queue.

<a href="mailto:[email protected]" onClick="_gaq.push(['_trackPageview', '/mailto/hello'])">[email protected]</a>

Although, tracking a mailto link may work better as an event:

<a href="mailto:[email protected]" onClick="_gaq.push(['_trackEvent', 'mailto', 'home'])">[email protected]</a>

For more info take a look at the Async Tracking Users Guide.