This document shows tracking code illustrations for a variety of common tracking customizations.
If your Google Analytics tracking snippet contains the urchin.js markup or the traditional
ga.js syntax, use this guide to migrate
your tracking to the improved Asynchronous snippet.
To convert your pages to use the asynchronous snippet:
To reduce errors, we recommend that you remove the existing tracking code snippet from the include file or mechanism that injects it into your web pages. You can paste your existing tracking code snippet in a text file to keep track of any customized methods you use.
<head> section of
your pages, after any other scripts your page or template might use.
One of the main advantages of the asynchronous snippet is that you can
position it at the top of the HTML document. This increases the likelihood
that the tracking beacon will be sent before the user leaves the page.
We've determined that on most pages, the optimal location for the asynchronous
snippet is at the bottom of the
<head> section, just before the closing </head> tag.
_setAccount method with your web property ID.For more information on web property IDs, see the "Web Property" section in the Accounts and Profiles document.
Note: To ensure the most streamlined operation of the asynchronous snippet with respect to other scripts, we recommend you place other scripts in your site in one of these ways:
<head> section of your HTMLBasic page tracking is the best place to familiarize yourself with the asynchronous syntax. These examples set up the tracking object with the correct account and call the page tracking method.
Async Snippet (recommended)
_gaq.push(['_setAccount', 'UA-XXXXX-X']); _gaq.push(['_trackPageview']);
Traditional (ga.js) Snippet
var pageTracker = _gat._getTracker('UA-XXXXX-X');
pageTracker._trackPageview();
urchin.js Tracking
_uacct = "UA-XXXXX-X"; urchinTracker();
These examples illustrate browser setting customizations such as disabling Flash detection, turning off browser name/version detection, and so forth.
Async Snippet (recommended)
_gaq.push(['_setAccount', 'UA-XXXXX-X']); _gaq.push(['_setClientInfo', false]); _gaq.push(['_setAllowHash', false]); _gaq.push(['_setDetectFlash', false]); _gaq.push(['_setDetectTitle', false]); _gaq.push(['_trackPageview']);
Traditional (ga.js) Snippet
var pageTracker = _gat._getTracker('UA-XXXXX-X');
pageTracker._setClientInfo(false);
pageTracker._setAllowHash(false);
pageTracker._setDetectFlash(false);
pageTracker._setDetectTitle(false);
pageTracker._trackPageview();
urchin.js Tracking
_uacct = "UA-XXXXX-X"; _ufsc = 0; // track browser info _uhash = "on"; // (on|off) unique domain hash for cookies _uflash = 0; // detect Flash version _utitle = 0; // track title in reports urchinTracker();
By default, the duration of an AdWords campaign is set for 6 months. You can adjust
the duration of campaigns by using the _setCampaignCookieTimeout() method.
Async Snippet (recommended)
_gaq.push(['_setAccount', 'UA-XXXXX-X']); _gaq.push(['_setCampaignCookieTimeout', 31536000000]); _gaq.push(['_trackPageview']);
Traditional (ga.js) Snippet
var pageTracker = _gat._getTracker('UA-XXXXX-X');
pageTracker._setCampaignCookieTimeout(31536000000);
pageTracker._trackPageview();
urchin.js Tracking
_uacct = "UA-XXXXX-X"; _ucto = "31536000"; // the number of seconds in 1 year urchinTracker(); </script>
Google Analytics automatically collects your Google AdWords data if you have linked your Adwords account to your Analytics account. To track keyword links from other advertising sources, or from email campaigns or similar sources, you can create custom campaigns fields using the methods below. For more details, see "Campaign Tracking" in the Traffic Sources guide.
Async Snippet (recommended)
_gaq.push(['_setAccount', 'UA-XXXXX-X']); _gaq.push(['_setCampNameKey', 'ga_campaign']); // name _gaq.push(['_setCampMediumKey', 'ga_medium']); // medium _gaq.push(['_setCampSourceKey', 'ga_source']); // source _gaq.push(['_setCampTermKey', 'ga_term']); // term/keyword _gaq.push(['_setCampContentKey', 'ga_content']); // content _gaq.push(['_setCampNOKey', 'ga_nooverride']); // don't override _gaq.push(['_trackPageview']);
Traditional (ga.js) Snippet
var pageTracker = _gat._getTracker('UA-XXXXX-X');
pageTracker._setCampNameKey('ga_campaign'); // name
pageTracker._setCampMediumKey('ga_medium'); // medium
pageTracker._setCampSourceKey('ga_source'); // source
pageTracker._setCampTermKey('ga_term'); // term/keyword
pageTracker._setCampContentKey('ga_content'); // content
pageTracker._setCampNOKey('ga_nooverride'); // don't override
pageTracker._trackPageview();
urchin.js Tracking
_uacct = "UA-12345-1"; _uccn = "ga_campaign"; // name [default: utm_campaign] _ucmd = "ga_medium"; // medium [default: utm_medium] _ucsr = "ga_source"; // source [default: utm_source] _uctr = "ga_term"; // term/keyword [default: utm_term] _ucct = "ga_content"; // content [default: utm_content] _ucid = "ga_id"; // id number [default: utm_id] _ucno = "ga_nooverride"; // don't override [default: utm_nooverride] urchinTracker();
Google Analytics automatically enables campaign tracking, but you can disable it using the _setCampaignTrack() method.
Async Snippet (recommended)
_gaq.push(['_setAccount', 'UA-XXXXX-X']); _gaq.push(['_setCampaignTrack', false]); // Turn off campaign tracking _gaq.push(['_trackPageview']);
Traditional (ga.js) Snippet
var pageTracker = _gat._getTracker('UA-XXXXX-X');
pageTracker._setCampaignTrack(false); // Turn off campaign tracking
pageTracker._trackPageview();
urchin.js Tracking
_uacct = "UA-12345-1"; _uctm = "disable"; urchinTracker();
To track traffic across domains, you can use the _setAllowLinker() function
to track user clicks between two domains. For details on setting up cross-domain tracking, see Cross-Domain
Tracking.
Async Snippet (recommended)
_gaq.push(['_setAccount', 'UA-XXXXX-X']); _gaq.push(['_setDomainName', 'none']); _gaq.push(['_setAllowLinker', true]); _gaq.push(['_trackPageview']); ... <a href="http://example.com/test.html" onclick="_gaq.push(['_link', 'http://example.com/test.html']); return false;">click me</a>
Traditional (ga.js) Snippet
var pageTracker = _gat._getTracker('UA-XXXXX-X');
pageTracker._setDomainName('none');
pageTracker._setAllowLinker(true);
pageTracker._trackPageview();
...
<a href="http://example.com/test.html"
onclick="pageTracker._link('http://example.com/test.html'); return false;">click me</a>
urchin.js Tracking
_uacct = "UA-12345-1";
_udn = "none";
_ulink = 1;
urchinTracker();
...
<a href="http://newsite.com/test.html"
onclick="__utmLinker('http://newsite.com/test.html'); return false;">click me</a>
You can use the _linkByPost() method to pass user data from one domain to
another where cross domain tracking is enabled for both domains. For details on setting up
cross-domain tracking, see Cross-Domain
Tracking.
Async Snippet (recommended)
_gaq.push(['_setAccount', 'UA-XXXXX-X']); _gaq.push(['_setDomainName', 'none']); _gaq.push(['_setAllowLinker', true]); _gaq.push(['_trackPageview']); ... <form name="f" method="post" onsubmit="_gaq.push(['_linkByPost', this]);"> ... </form>
Traditional (ga.js) Snippet
var pageTracker = _gat._getTracker('UA-XXXXX-X');
pageTracker._setDomainName('none');
pageTracker._setAllowLinker(true);
pageTracker._trackPageview();
...
<form name="f" method="post" onsubmit="pageTracker._linkByPost(this);">
...
</form>
urchin.js Tracking
_uacct = "UA-12345-1"; _udn = "none"; _ulink = 1; urchinTracker(); ... <form name="f" method="post" onsubmit="__utmLinkPost(this)"> ... </form>
Ecommerce tracking involves calling three key methods in your tracking setup. See Ecommerce Tracking for details.
Async Snippet (recommended)
_gaq.push(['_setAccount', 'UA-XXXXX-X']); _gaq.push(['_trackPageview']); _gaq.push(['_addTrans', '1234', // order ID - required 'Mountain View', // affiliation or store name '11.99', // total - required '1.29', // tax '5', // shipping 'San Jose', // city 'California', // state or province 'USA' // country ]); _gaq.push(['_addItem', '1234', // order ID - required 'DD44', // SKU/code 'T-Shirt', // product name 'Green Medium', // category or variation '11.99', // unit price - required '1' // quantity - required ]); _gaq.push(['_trackTrans']);
Traditional (ga.js) Snippet
var pageTracker = _gat._getTracker('UA-XXXXX-X');
pageTracker._trackPageview();
pageTracker._addTrans(
'1234', // order ID - required
'Mountain View', // affiliation or store name
'11.99', // total - required
'1.29', // tax
'5', // shipping
'San Jose', // city
'California', // state or province
'USA' // country
);
pageTracker._addItem(
'1234', // order ID - required
'DD44', // SKU/code
'T-Shirt', // product name
'Green Medium', // category or variation
'11.99', // unit price - required
'1' // quantity - required
);
pageTracker._trackTrans();
urchin.js Tracking
_uacct = "UA-12345-1"; urchinTracker(); </script> <form name="utmform" id="utmform"> <textarea name="utmtrans" id="utmtrans" style="display:none"> UTM:T|1234|Mountain View|11.99|1.29|5|San Jose|California|USA UTM:I|1234|DD44|T-Shirt|Green Medium|11.99|1 </textarea> </form> <script type="text/javascript"> __utmSetTrans();
Using Event Tracking involves making an event call in the appropriate place in your pages, such as
in an onclick handler. For more information on Event Tracking, see the Event
Tracking Guide. Note: Event Tracking is not available with the urchin.js tracking code.
Async Snippet (recommended)
This section shows two ways to set up tracking using the Asynchronous syntax. With Event Tracking, the onclick
handler uses the exact same syntax.
_gaq.push(['_setAccount', 'UA-XXXXX-X']); _gaq.push(['_trackPageview']); ... <a onclick="_gaq.push(['_trackEvent', 'category', 'action', 'opt_label', opt_value]);">click me</a>
Traditional (ga.js) Snippet
var pageTracker = _gat._getTracker('UA-XXXXX-X');
pageTracker._trackPageview();
...
<a onclick="pageTracker._trackEvent('category', 'action', 'opt_label', opt_value);">click me</a>
By default, user sessions are timed out after 30 minutes of inactivity on your site. These examples
show how this can be modified using the _setSessionCookieTimeout() method.
Async Snippet (recommended)
_gaq.push(['_setAccount', 'UA-XXXXX-X']); _gaq.push(['_setSessionCookieTimeout', 3600000]); _gaq.push(['_trackPageview']);
Traditional (ga.js) Snippet
var pageTracker = _gat._getTracker('UA-XXXXX-X');
pageTracker._setSessionCookieTimeout(3600000);
pageTracker._trackPageview();
urchin.js Tracking
<script type="text/javascript"> _uacct = "UA-12345-1"; _utimeout = "3600"; // the number of seconds in 1 hour urchinTracker(); </script>
By default, Google Analytics identifies a list of websites as search engine referrals in your reports. You can use these methods to alter the search engine list. For more information, see "Search Engines" in the Traffic Sources guide. You can also configure Google Analytics to ignore referrals from certain domains, or to treat specific keyword searches as direct traffic.
Async Snippet (recommended)
_gaq.push(['_setAccount', 'UA-XXXXX-X']); _gaq.push(['_addIgnoredOrganic', 'ignore']); _gaq.push(['_addIgnoredRef', 'urchin.com']); _gaq.push(['_addOrganic', 'new_search_engine', 'q']); _gaq.push(['_trackPageview']);
Traditional (ga.js) Snippet
var pageTracker = _gat._getTracker('UA-XXXXX-X');
pageTracker._addIgnoredOrganic('ignore');
pageTracker._addIgnoredRef('urchin.com');
pageTracker._addOrganic('new_search_engine','q');
pageTracker._trackPageview();
urchin.js Tracking
_uacct = "UA-12345-1"; _uOno[0] = "ignore"; // keyword to treat as referral _uRno[0] = "urchin.com"; // referral to treat as direct _uOsr[41] = "new_search_engine"; // new search engine to treat as referral _uOkw[41] = "query"; // keyword query parameter for new search engine urchinTracker();
Use the _setCookiePath() method to set a sub-directory as the default path for all tracking. You would do this to
confine all tracking to a sub-directory of a site.
Async Snippet (recommended)
_gaq.push(['_setAccount', 'UA-XXXXX-X']); _gaq.push(['_setCookiePath', '/path/of/cookie/']); _gaq.push(['_trackPageview']);
Traditional (ga.js) Snippet
var pageTracker = _gat._getTracker('UA-XXXXX-X');
pageTracker._setCookiePath('/path/of/cookie/');
pageTracker._trackPageview();
urchin.js Tracking
<script type="text/javascript"> _uacct = "UA-12345-1"; _utcp = "/path/of/cookie/"; urchinTracker(); </script>
Use these methods if you are tracking your website using the standalone Urchin software and using Google Analytics as well. For details see the Urchin Server section of the Tracking API reference.
Async Snippet
_gaq.push(['_setAccount', 'UA-XXXXX-X']); _gaq.push(['_setLocalRemoteServerMode']); _gaq.push(['_trackPageview']);
Traditional (ga.js) Snippet
var pageTracker = _gat._getTracker('UA-XXXXX-X');
pageTracker._setLocalRemoteServerMode();
pageTracker._trackPageview();
urchin.js Tracking
_uacct = "UA-12345-1"; _userv = 0; urchinTracker();
Use the _trackPageview() method along with a URL you fabricate
in order to track clicks from users that do not lead to actual website pages
on your site. In general,
we recommend you use Event
Tracking for tracking downloads, outbound links, PDFs or similar kinds
of user interactions. This is because virtual pageviews will add to your total
pageview count. However, if you want to configure goals based on clicks
to PDFs or downloads, you need to use this method (but be aware that these
clicks will be tallied as part of your overall pageview count). For tracking
Flash or Silverlight content, we recommend that you use the Adobe
Flash Tracking library or the Microsoft
Silverlight component.
Async Snippet
_gaq.push(['_trackPageview', '/downloads/pdfs/corporateBrief.pdf']);
Traditional (ga.js) Snippet
var pageTracker = _gat._getTracker('UA-XXXXX-X');
pageTracker._trackPageview('/downloads/pdfs/corporateBrief.pdf');
urchin.js Tracking
urchinTracker('/downloads/pdfs/corporateBrief.pdf');