davnicwil davnicwil - 7 months ago 14
Javascript Question

Analytics.js: What does 'auto' argument do on tracking object creation?

I've just switched to the new Google Analytics Universal Analytics platform, using the new javascript API - Analytics.js

In the first example code snippet from the docs a tracking object is created, then a pageview of the current page is logged using that tracking object.

ga('create', 'UA-XXXX-Y', 'auto');
ga('send', 'pageview');

Notice the
argument - I can't work out what that's there for.

I had a look at the method reference and it seems that the relevant parameter is optional and should contain configuration key/value pairs. Examples can be found in the field reference. If the parameter is optional it seems odd to pass
here unless it does something of significance, so you have to assume it does, but I can't find any mention of this.

Also, in the auto generated code in your account it does a similar thing but passes your domain

ga('create', 'UA-XXXX-Y', 'mydomain.com');

The fact your domain is specifically passed when they have it available again suggests it does something meaningful - otherwise they'd probably just use
here too. But again, there's no mention of why this is done.

Am I missing something really obvious?


Actually when I look in to code it does not pass the name of my property but the standard domain set in the configuration - which makes a lot more sense, since the parameter sets the cookie domain (in case of "auto" to the value of window.location.hostname to the hostname without subdomains). Alternatively you can pass a configuration object as third parameter (which might contain a cookie domain setting). Try and set a wrong parameter - you'll get a "no storage" error in the analytics debugger since the code cannot set a cookie.