Tracking Code: Domains and Directories

This reference describes the methods that you use for customizing how Google Analytics reporting works across domains, across different hosts, or within sub-directories of a website.

GATC Domain/Directory Methods

Method Details

_cookiePathCopy()

_cookiePathCopy(newPath)

Changes the paths of all GATC cookies to the newly-specified path. Use this feature to track user behavior from one directory structure to another on the same domain.

When this function is called, it immediately copies any cookies to the new cookie path. Therefore, if the _trackPageview() method has not been called, the values for any existing Analytics cookies will be supplied. For that reason, we recommend that this method is called after _trackPageview() as well as other configuration methods that might impact cookie values or campaign values that you want to pass along, such as _setCampaignCookieTimeout() or _setReferrerOverride().

Async Snippet (recommended)
_gaq.push(['_cookiePathCopy', '/newSubDirectory/']);

parameters

String   newPath New path to store GATC cookies under.

_getLinkerUrl()

_getLinkerUrl(targetUrl, useHash)

This method works in conjunction with the _setDomainName() and _setAllowLinker() methods to enable cross-domain user tracking specifically for iFrames and links that open in a new window. This method returns a string of all the GATC cookie data from the initiating link by appending it to the URL parameter. This can then be passed on to a another site or iFrame.

Async Snippet (recommended)
  _gaq.push(function() {
    var pageTracker = _gat._getTrackerByName(); // Gets the default tracker.
    var linkerUrl = pageTracker._getLinkerUrl('http://www.my-example-iframecontent.com/');
  });

parameters

String   targetUrl URL of target site to send cookie values to.

Boolean   useHash Set to true for passing tracking code variables by using the # anchor tag separator rather than the default ? query string separator.

returns

String The linker URL.

_link(targetUrl, useHash)

This method works in conjunction with the _setDomainName() and _setAllowLinker() methods to enable cross-domain user tracking. The _link() method passes the GATC cookies from this site to another via URL parameters (HTTP GET). It also changes the document.location and redirects the user to the new URL.

Async Snippet (recommended)
<a href="http://example.com/test.html"
onclick="_gaq.push(['_link', 'http://example.com/test.html']); return false;">click me</a>

parameters

String   targetUrl URL of target site to send cookie values to.

Boolean   useHash Set to true for passing tracking code variables by using the # anchor tag separator rather than the default ? query string separator.


_linkByPost()

_linkByPost(formObject, useHash)

This method works in conjunction with the _setDomainName() and _setAllowLinker() methods to enable cross-domain user tracking. The _linkByPost() method passes the GATC cookies from the referring form to another site in a string appended to the action value of the form (HTTP POST). This method is typically used when tracking user behavior from one site to a 3rd-party shopping cart site, but can also be used to send cookie data to other domains in pop-ups or in iFrames.

Async Snippet (recommended)
    <form action="http://www.shoppingcartsite.com/myService/formProcessor.php"
    name="f" method="post" onsubmit="_gaq.push(['_linkByPost', this]);">
...
</form>

In addition, _setAllowLinker() must be set to true on the destination web page in order for linking to work.

parameters

HTMLFormElement   formObject Form object encapsulating the POST request.

Boolean   useHash Set to true for passing tracking code variables by using the # anchor tag separator rather than the default ? query string separator.


_setAllowHash()

_setAllowHash(bool)

Sets the allow domain hash flag. By default, this value is set to true. The domain hashing functionality in Google Analytics creates a hash value from your domain, and uses this number to check cookie integrity for visitors. If you have multiple sub-domains, such as example1.example.com and example2.example.com, and you want to track user behavior across both of these sub-domains, you would turn off domain hashing so that the cookie integrity check will not reject a user cookie coming from one domain to another. Additionally, you can turn this feature off to optimize per-page tracking performance.

parameters

Boolean   true or false Default value is true. If this parameter is set to true, then domain hashing is enabled. Otherwise, domain hashing is disabled.

_setAllowLinker()

_setAllowLinker(bool)

Sets the linker functionality flag as part of enabling cross-domain user tracking. By default, this method is set to false and linking is disabled. See also _link(), _linkByPost(), and _setDomainName() methods to enable cross-domain tracking. Use the _setAllowLinker method on the target site, so that the target site uses the cookie data in the URL parameter, instead of the standard session logic.

Async Snippet (recommended)
_gaq.push(['_setAllowLinker', true]); 

parameters

Boolean  true or false Default value is false. If this parameter is set to true, then linker is enabled. Otherwise, domain linking is disabled.

_setCookiePath()

_setCookiePath(newCookiePath)

Sets the new cookie path for your site. By default, Google Analytics sets the cookie path to the root level (/). In most situations, this is the appropriate option and works correctly with the tracking code you install on your website, blog, or corporate web directory. However, in a few cases where user access is restricted to only a sub-directory of a domain, this method can resolve tracking issues by setting a sub-directory as the default path for all tracking.

Typically, you would use this if your data is not being tracked and you subscribed to a blog service and only have access to your defined sub-directory, or if you are on a Corporate or University network and only have access to your home directory.

Async Snippet (recommended)
_gaq.push(['_setCookiePath', '/myBlogDirectory']); 

parameters

String   newCookiePath New cookie path to set.

_setDomainName()

_setDomainName(newDomainName)

Sets the domain name for the GATC cookies. There are three modes to this method: ("auto" | "none" | [domain]). By default, the method is set to auto, which attempts to resolve the domain name based on the document.domain property in the DOM.

Specifying a Domain

See the Cross Domain Tracking Guide for a variety of examples that illustrate when and how to specify a domain with this method. The following example illustrates how you would set the domain name to example.com:

Async Snippet (recommended)
_gaq.push(['_setDomainName', 'example.com']); 

Isolating Top-Level Domains

Setting this method to none ensures that the cookies in a given domain are not accessible by any sub-domains.

Async Snippet (recommended)
_gaq.push(['_setDomainName', 'none']); 

parameters

String   newDomainName New default domain name to set.

_storeGac(bool)

Determines whether the GAC cookie should be created or not. By default, the GAC cookie is written by the script and you don't need to do anything to write the cookie. You can disable setting of this cookie by using the command below.

Async Snippet (recommended)
_gaq.push(['_storeGac', false]);