Google Analytics Launches Asynchronous Tracking
    
    
    
    
    Today we're excited to announce our new Google Analytics 
Asynchronous Tracking Code
      snippet as an alternative way to track your websites! It provides the following
      benefits:
- Faster tracking code load times for your
      web pages due to improved browser execution
- Enhanced data collection & accuracy
- Elimination of tracking errors from dependencies when the
      JavaScript hasn't fully loaded
Here is the JavaScript source of the 
new tracking snippet:
<script type="text/javascript">
      var _gaq = _gaq || [];
 _gaq.push(['_setAccount', 'UA-XXXXX-X']);
      _gaq.push(['_trackPageview']);
 (function() {
 var ga =
      document.createElement('script');
 ga.src = ('https:' == document.location.protocol
      ? 'https://ssl' : 
 'http://www') + '.google-analytics.com/ga.js';
      ga.setAttribute('async', 'true');
      document.documentElement.firstChild.appendChild(ga);
 })();
</script>
The first part of the asynchronous tracking
      code snippet assigns the _gaq variable to a JavaScript array. After that, two tracking API
      calls (encoded as arrays) are pushed onto _gaq. When the tracking code initializes, it
      transforms the _gaq object from a standard array into a new object and executes all the
      tracking API calls initially collected in the array. With this feature, you can immediately
      store all necessary tracking calls even before the Google Analytics tracking code is
      downloaded! No more worrying about race conditions or dependency issues on the ga.js tracking
      code.
The second half of the snippet provides the logic that loads the
      tracking code in parallel with other scripts on the page. It executes an anonymous function
      that dynamically creates a <script> element and sets the source with the proper
      protocol. As a result, most browsers will load the tracking code in parallel with other
      scripts on the page, thus reducing the web page load time. Note here the forward-looking use
      of the new HTML5 "async" attribute in this part of the snippet. While it creates the same
      effect as adding a <script> element to the DOM, it officially tells browsers
      that this script can be loaded asynchronously. Firefox 3.6 is the first browser to officially
      offer support for this new feature. If you're curious, here are more details on the official
      
HTML5 async specification.
      
Once loaded, the tracking code, transforms the _gaq array into an
      
Analytics _gaq object. This object
      acts as a wrapper for the underlying _gat object and executes all the commands, sending data
      to your Google Analytics account. Your page code can ignore this fact though, because the
      _gaq.push syntax can be used at any time. See the 
Asynchronous Tracking Usage
      Guide for more details.
The new tracking code is now in Beta
      and available to all Google Analytics users. Keep in mind that use of the code is also
      optional: all your existing Google Analytics code will continue to work as-is should you
      decide not to adopt the new tracking method. But if you want to improve the speed of your
      website and the increase accuracy of your Analytics data, then we think you'll love this new
      option.
Learn more about this new tracking code in our Google Code
      
developer docs and get started with our
      
migration guide.
By Brian Kuhn,
      Google Analytics Team