Crunching Cookies without Dropping Crumbs By Nikki Rae @analyticsgirl
Nikki Rae• Managing Director Future Insight Analytics Ltd.• Google Analytics Specialist• First #brightonseo – 19th Feb 2010!!• @analyticsgirl
Todays Session• What is a Cookie?• How can you tell if they are working properly?• What happens if they arent working?• What is their role in cross domain tracking?
Why Do I Need to Know this?– Many SEOs only view the Keyword report to look at • Visits to Keywords • Bounce Rate to Keywords– How can I track keywords across sites?– How can I make sure my tracking is working?
What is a Cookie?• Cookies are used to help Google Analytics ‘remember’ what a user has done and how they have interacted with a website.
Ga.js Cookie Usage• Which domain is being used? – Sub Domains? – Multiple Domains?• Who is using the site?• How many times have they visited the site?• How did they get to the site?• When did a visit start/end?• Maintain visitor level custom variable information
Google Analytics Cookies• 5 Main Cookies – _utma – _utmb – _utmc – _utmz – _utmv
Visitor Cookie__utma Expires 2 years from Unique Site Visitor set/update 1. If Cookie does not exist a. Must be first visit b. Cookie is set 2. If cookie exists a. Must be return visit b. Cookie is updated every time data is sent to GA
Session Cookies__utmb Expires 30 mins from Sessions/ Visits set/update 1. If Cookie does not exist a. Must be a new session/visit b. Cookie is set 2. If cookie exists a. Must be current visit b. Cookie is updated every time data is sent to GA
Session Cookies_utmc Expires End of Not used in ga.js. Browser Session
Campaign Cookie__utmz Expires 6 Traffic Source months from 1. Source set/update 2. Medium 3. Campaign Name 4. Campaign Term Cookie is updated every time data is sent to GA
Custom Variable Cookie __utmv 2 years from Visitor Level set/update Custom Variable 1. Need to use _setCustomVar method Cookie is updated every time data is sent to GA
Cookies Failing?• Pages not tracked• Traffic Sources/Mediums etc. incorrectly recorded e.g. PPC traffic showing as organic• Cookies are device and browser based – One unique visitor per browser per device – Can misrepresent reality
Identifying Unique Visitors_utma 209459845.1349019670.1365484756.1365484756.1365484756.11. Domain hash, unique for each domain209459845.1349019670.1365484756.1365484756.1365484756.12. Unique Identifier209459845.1349019670.1365484756.1365484756.1365484756.13. Timestamp for first time you visited the site209459845.1349019670.1365484756.1365484756.1365484756.14. Timestamp for previous visit209459845.1349019670.1365484756.1365484756.1365484756.15. Timestamp for start of current visit209459845.1349019670.1365484756.1365484756.1365484756.16. Number of sessions209459845.1349019670.1365484756.1365484756.1365484756.1
First SessionIn last example, the Timestamp for• 1st visit (1365484756)• Previous Visit (1365484756)• Current Visit (1365484756)Are all the same as this is the first and only visit (numberof sessions=1)The combination of Unique ID and timestamp of first visitform a unique identifier that Google Analytics uses toidentify different visitors.
Session Identifiers_utmb 209459818.104.22.1685484756_utmc 2094598451. Domain hash, unique for each domain209459822.214.171.12454847562. Number of Pageviews in current session2094598126.96.36.19954847563. The 10 in the UTMB cookie starts at 10 on every site.And each time you click on an outgoing link it willcount down until it reaches 0.It’s part of some outgoing links tracking system in the ga.jsthat never appeared in the GA interface (Andre Scholten)2094598188.8.131.5254847564. Timestamp for current session2094598184.108.40.2065484756
Campaign Identifiers_utmz 209459845.1365484756.1.1.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=(not%20provided)1. Domain hash, unique for each domain209459845.1365484756.1.1.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=(not%20provided)2. Timestamp when cookie was set209459845.1365484756.1.1.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=(not%20provided)3. Session Number209459845.1365484756.1.1.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=(not%20provided)4. Campaign Number – Number of different campaigns used to enter site209459845.1365484756.1.1.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=(not%20provided)5. Campaign Source209459845.1365484756.1.1.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=(not%20provided)6. Campaign Name209459845.1365484756.1.1.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=(not%20provided)7. Campaign Medium209459845.1365484756.1.1.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=(not%20provided)8. Campaign Terms209459845.1365484756.1.1.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=(not%20provided)
Customisation• _setDomainName – Sets the domain to which all cookies will be set.• _setVisitorCookieTimeout – Sets the Google Analytics visitor cookie expiration in milliseconds.• _setSessionCookieTimeout – Sets the new session cookie timeout in milliseconds.• _setCampaignCookieTimeout – Sets the campaign tracking cookie expiration time in milliseconds.
First Party Cookies• Can only be used by the website that sets the Cookies• Can be overridden for sub domain and cross domain tracking
Cross Domain Tracking• www.toystore.com sets the GA Cookies• They want to be used by blog.toystore.com• They want to be used by www.bookstore.com www.toystore.com blog.toystore.com www.bookstore.com
Cross Domain Tracking• Force GA into seeing blog.toystore.com and www.bookstore.com as the same site as www.toystore.com to share cookies www.toystore.com blog.toystore.com www.bookstore.com
Sub Domain Tracking• Out of the box, GA sees the below as two separate domains• Use _gaq.push([_setDomainName, toystore.com]); www.toystore.com blog.toystore.com
Cross Domain Tracking• Use _gaq.push([_setDomainName, ‘toystore.com]);_gaq.push([_setAllowLinker, true]); linker www.toystore.com www.bookstore.com• Use Linker Method e.g. <a href="http://www.bookstore.com" onclick="_gaq.push([_link,http://www.bookstore.com]); return false;">Book Store</a>
Hostname Filter• Filter Type: Custom filter > Advanced• Field A: Hostname Extract A : (.*)• Field B: Request URI• Extract: (.*)• Output To: Request URI• Constructor: $A1$B1
Goal Reports etc.• Be Careful! – Goals will also need hostname in as well as pagename e.g. www.bookstore.com/index.php rather than just index.php
Summary• Cookies help to – Differentiate one user from another – Determine a relationship between sequential pages – Can only be used by the website that sets them unless you configure your tracking code – Do not collect any personal information – Can misrepresent real life (unique visitors, deletion, unacceptance)
Visits/Sessions Ending?More than 30 minutes have elapsed between pageviews for asingle visitor.At the end of a day.When any traffic source value for the user changes. Trafficsource informationincludes:utm_source, utm_medium, utm_term, utm_content,utm_id, utm_campaign, and gclid.As before, if any of these events occur, then the nextpageview from the user will be the start of a new session.