Back in January 2009, I wrote a post on how to track traffic from Press Releases in Google Analytics. That posts referenced the old synchronous version of the Google Analytics tracking code and needed a code update with the most recent tracking code release by Google, featuring asynchronous code execution.
Please note that I am not going to re-do the entire post, just the code portion.
So here is the code update:
Traditional Snippet (Synchronous):
<script type="text/javascript"> var srcPage = getDomain (document.referrer); var parameter = get_parameter('id'); function get_parameter(name) { name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); var regexS = "[\\?&#]"+name+"=([^&#]*)"; var regex = new RegExp(regexS); var results = regex.exec(window.location.href); if( results == null ) return ""; else return results[1]; } function getDomain (thestring) { var urlpattern = new RegExp("(http|ftp|https)://(.*?)/.*$"); var parsedurl = thestring.match(urlpattern); if( parsedurl == null ) return ""; else return parsedurl[2]; } if (parameter == '1') { window.location.hash = "utm_source="+srcPage+"&utm_medium=press_release&utm_campaign=hurricane_katrina"; } </script> <script type="text/javascript"> var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "https://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); </script> <script type="text/javascript"> try { var pageTracker = _gat._getTracker("UA-XXXXXXX-X"); pageTracker._setAllowAnchor(true); pageTracker._trackPageview(); } catch(err) {} </script>
Asynchronous Snippet (NEW):
<script type="text/javascript"> var srcPage = getDomain (document.referrer); var parameter = get_parameter('id'); function get_parameter(name) { name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); var regexS = "[\\?&#]"+name+"=([^&#]*)"; var regex = new RegExp(regexS); var results = regex.exec(window.location.href); if( results == null ) return ""; else return results[1]; } function getDomain (thestring) { var urlpattern = new RegExp("(http|ftp|https)://(.*?)/.*$"); var parsedurl = thestring.match(urlpattern); if( parsedurl == null ) return ""; else return parsedurl[2]; } if (parameter == '1') { window.location.hash = "utm_source="+srcPage+"&utm_medium=press_release&utm_campaign=hurricane_katrina"; } </script> <script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-XXXXXXX-X']); _gaq.push(['_setAllowAnchor', true]); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'https://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script>
Related Posts: