GAS - Google Analytics on Steroids
Upcoming SlideShare
Loading in...5
×
 

GAS - Google Analytics on Steroids

on

  • 6,349 views

This was a quick introduction to GAS targeted to non-technical folks for a local meetup group.

This was a quick introduction to GAS targeted to non-technical folks for a local meetup group.

https://github.com/CardinalPath/gas

Statistics

Views

Total Views
6,349
Views on SlideShare
5,235
Embed Views
1,114

Actions

Likes
13
Downloads
67
Comments
1

19 Embeds 1,114

http://adamhassan.se 635
http://mahortense.tumblr.com 336
http://kungfuxmaster.wordpress.com 85
http://harleysandgeeks.tumblr.com 21
http://www.linkedin.com 8
http://us-w1.rockmelt.com 7
https://twitter.com 3
https://si0.twimg.com 3
http://www.mahortense.tumblr.com 3
http://yandex.ru 2
http://www.bing.com 2
http://www.google.com 2
http://dev.sencha.com 1
http://www.thelibrarynews.com 1
http://translate.googleusercontent.com 1
http://www.soso.com 1
http://coderwall.com 1
http://nodeslide.herokuapp.com 1
https://wordpress.com 1
More...

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-NonCommercial LicenseCC Attribution-NonCommercial License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • thank a lot
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

GAS - Google Analytics on Steroids GAS - Google Analytics on Steroids Presentation Transcript

  • May 24, 2012 GAS - Google Analytics on Steroids Eduardo Cereto Carvalhowww.CardinalPath.com © 2012 Cardinal Path, Inc, All Rights Reserved. Proprietary and Confidential. 1
  • May 24, 2012 Implementing GA is easy, right?www.CardinalPath.com © 2012 Cardinal Path, Inc, All Rights Reserved. Proprietary and Confidential. 2
  • May 24, 2012 What the basic implementation gives you? • One pageview every time a page loads • That doesn’t seem a lot but with just that GA can calculate everything you see on the reportswww.CardinalPath.com © 2012 Cardinal Path, Inc, All Rights Reserved. Proprietary and Confidential. 3
  • May 24, 2012 What else could you want? • E-commerce • Custom Vars • Page Interactions ⃪ Eventswww.CardinalPath.com © 2012 Cardinal Path, Inc, All Rights Reserved. Proprietary and Confidential. 4
  • May 24, 2012www.CardinalPath.com © 2012 Cardinal Path, Inc, All Rights Reserved. Proprietary and Confidential. 5
  • May 24, 2012 L I A Fwww.CardinalPath.com © 2012 Cardinal Path, Inc, All Rights Reserved. Proprietary and Confidential. 5
  • May 24, 2012 How to implement Event Tracking?www.CardinalPath.com © 2012 Cardinal Path, Inc, All Rights Reserved. Proprietary and Confidential. 6
  • May 24, 2012 How to implement Event Tracking? <a href="#" onClick="_gaq.push([_trackEvent, Videos, Play, Babys First Birthday]);">Play</a>www.CardinalPath.com © 2012 Cardinal Path, Inc, All Rights Reserved. Proprietary and Confidential. 6
  • May 24, 2012 How to implement Event Tracking? <a href="#" onClick="_gaq.push([_trackEvent, Videos, Play, Babys First Birthday]);">Play</a>www.CardinalPath.com © 2012 Cardinal Path, Inc, All Rights Reserved. Proprietary and Confidential. 6
  • May 24, 2012 How to implement Event Tracking? <a href="#" onClick="_gaq.push([_trackEvent, Videos, Play, Babys First Birthday]);">Play</a>From: https://developers.google.com/analytics/devguides/collection/gajs/eventTrackerGuidewww.CardinalPath.com © 2012 Cardinal Path, Inc, All Rights Reserved. Proprietary and Confidential. 6
  • May 24, 2012 The documentation is not perfect • There’s so much more you can do with events,Video usage is just one small example; • The docs are just examples, you should never implement events like that in the real world; • Videos don’t even have a play button most of the time.You probably use a player like youtube.www.CardinalPath.com © 2012 Cardinal Path, Inc, All Rights Reserved. Proprietary and Confidential. 7
  • May 24, 2012 What is GAS https://github.com/CardinalPath/gas • A library to help you implement GA • Implement a lot of events so you don’t have to • Open Source • Tested on large deployments • Easy to get involved • Regular bug-fixes and new features • Spoiler: I’m the main developerwww.CardinalPath.com © 2012 Cardinal Path, Inc, All Rights Reserved. Proprietary and Confidential. 8
  • May 24, 2012 What GAS gives you for free? • Outbound links • Web Form usage • Download links • Video Usage • Youtube • Vimeo • HTML5 <video /> • Email: links usage • Scroll percentagewww.CardinalPath.com © 2012 Cardinal Path, Inc, All Rights Reserved. Proprietary and Confidential. 9
  • May 24, 2012 Just upload gas.js and implement GAS instead of GA <script type="text/javascript"> var _gas = _gas || []; _gas.push([_setAccount, UA-YYYYYY-Y]); // REPLACE WITH YOUR GA NUMBER _gas.push([_setDomainName, .mydomain.com]); // REPLACE WITH YOUR DOMAIN _gas.push([_trackPageview]); _gas.push([_gasTrackForms]); _gas.push([_gasTrackOutboundLinks]); _gas.push([_gasTrackMaxScroll]); _gas.push([_gasTrackDownloads]); _gas.push([_gasTrackYoutube]); _gas.push([_gasTrackVimeo]); _gas.push([_gasTrackMailto]); (function() { var ga = document.createElement(script); ga.type = text/javascript; ga.async = true; ga.src = /gas.js; var s = document.getElementsByTagName(script)[0]; s.parentNode.insertBefore(ga, s); })(); </script>www.CardinalPath.com © 2012 Cardinal Path, Inc, All Rights Reserved. Proprietary and Confidential. 10
  • May 24, 2012 Just upload gas.js and implement GAS instead of GA <script type="text/javascript"> var _gas = _gas || []; _gas.push([_setAccount, UA-YYYYYY-Y]); // REPLACE WITH YOUR GA NUMBER _gas.push([_setDomainName, .mydomain.com]); // REPLACE WITH YOUR DOMAIN _gas.push([_trackPageview]); _gas.push([_gasTrackForms]); _gas.push([_gasTrackOutboundLinks]); _gas.push([_gasTrackMaxScroll]); _gas.push([_gasTrackDownloads]); _gas.push([_gasTrackYoutube]); _gas.push([_gasTrackVimeo]); _gas.push([_gasTrackMailto]); (function() { var ga = document.createElement(script); ga.type = text/javascript; ga.async = true; ga.src = /gas.js; var s = document.getElementsByTagName(script)[0]; s.parentNode.insertBefore(ga, s); })(); </script>www.CardinalPath.com © 2012 Cardinal Path, Inc, All Rights Reserved. Proprietary and Confidential. 10
  • May 24, 2012www.CardinalPath.com © 2012 Cardinal Path, Inc, All Rights Reserved. Proprietary and Confidential. 11
  • May 24, 2012 s s c e u c Swww.CardinalPath.com © 2012 Cardinal Path, Inc, All Rights Reserved. Proprietary and Confidential. 11
  • May 24, 2012 Events are multidimensional. So you can drill-down into themwww.CardinalPath.com © 2012 Cardinal Path, Inc, All Rights Reserved. Proprietary and Confidential. 12
  • May 24, 2012 Events are multidimensional. So you can drill-down into themwww.CardinalPath.com © 2012 Cardinal Path, Inc, All Rights Reserved. Proprietary and Confidential. 12
  • May 24, 2012 Events are multidimensional. So you can drill-down into themwww.CardinalPath.com © 2012 Cardinal Path, Inc, All Rights Reserved. Proprietary and Confidential. 12
  • May 24, 2012 Events are multidimensional. So you can drill-down into themwww.CardinalPath.com © 2012 Cardinal Path, Inc, All Rights Reserved. Proprietary and Confidential. 12
  • May 24, 2012 Videos are even coolerwww.CardinalPath.com © 2012 Cardinal Path, Inc, All Rights Reserved. Proprietary and Confidential. 13
  • May 24, 2012 Videos are even coolerwww.CardinalPath.com © 2012 Cardinal Path, Inc, All Rights Reserved. Proprietary and Confidential. 13
  • May 24, 2012 Videos are even coolerwww.CardinalPath.com © 2012 Cardinal Path, Inc, All Rights Reserved. Proprietary and Confidential. 13
  • May 24, 2012 What do you do if your site has multiple domains?www.CardinalPath.com © 2012 Cardinal Path, Inc, All Rights Reserved. Proprietary and Confidential. 14
  • May 24, 2012 What do you do if your site has multiple domains?<script type="text/javascript"> var _gaq = _gaq || []; _gaq.push([_setAccount, UA-XXXXX-X]); _gaq.push([_setDomainName, mysite.com]); _gaq.push([_setAllowLinker, true]); _gaq.push([_trackPageview]);  (function() {    var ga = document.createElement(script); ga.type = text/javascript; ga.async = true;    ga.src = (https: == document.location.protocol ? https://ssl : http://www) + .google-analytics.com/ga.js;    var s = document.getElementsByTagName(script)[0]; s.parentNode.insertBefore(ga, s);  })();</script>www.CardinalPath.com © 2012 Cardinal Path, Inc, All Rights Reserved. Proprietary and Confidential. 14
  • May 24, 2012 What do you do if your site has multiple domains?<script type="text/javascript"> <script type="text/javascript"> var _gaq = _gaq || []; _gaq.push([_setAccount, UA-XXXXX-X]); var _gaq = _gaq || []; _gaq.push([_setDomainName, mysite.com]); _gaq.push([_setAccount, UA-XXXXX-X]); _gaq.push([_setAllowLinker, true]); _gaq.push([_setDomainName, myothersite.com]); _gaq.push([_trackPageview]); _gaq.push([_setAllowLinker, true]); _gaq.push([_trackPageview]);  (function() {    var ga = document.createElement(script); ga.type = text/javascript; ga.async = true;   (function() {    ga.src = (https: == document.location.protocol ? https://ssl : http://www) + .google-analytics.com/     var ga = document.createElement(script); ga.type = text/javascript; ga.async = true;ga.js;     ga.src = (https: == document.location.protocol ? https://ssl : http://www) + .google-analytics.com/    var s = document.getElementsByTagName(script)[0]; s.parentNode.insertBefore(ga, s); ga.js;  })();     var s = document.getElementsByTagName(script)[0]; s.parentNode.insertBefore(ga, s);   })();</script> </script>www.CardinalPath.com © 2012 Cardinal Path, Inc, All Rights Reserved. Proprietary and Confidential. 14
  • May 24, 2012 What do you do if your site has multiple domains?<script type="text/javascript"> <script type="text/javascript"> var _gaq = _gaq || []; _gaq.push([_setAccount, UA-XXXXX-X]); var _gaq = _gaq || []; _gaq.push([_setDomainName, mysite.com]); <a href="http://www.myothersite.com/intro" _gaq.push([_setAccount, UA-XXXXX-X]); _gaq.push([_setAllowLinker, true]); onclick="_gaq.push([_link, http://www.myothersite.com/intro.html]); return false;">See my blog</a> _gaq.push([_setDomainName, myothersite.com]); _gaq.push([_trackPageview]); _gaq.push([_setAllowLinker, true]); _gaq.push([_trackPageview]);  (function() {    var ga = document.createElement(script); ga.type = text/javascript; ga.async = true;   (function() {    ga.src = (https: == document.location.protocol ? https://ssl : http://www) + .google-analytics.com/     var ga = document.createElement(script); ga.type = text/javascript; ga.async = true;ga.js;     ga.src = (https: == document.location.protocol ? https://ssl : http://www) + .google-analytics.com/    var s = document.getElementsByTagName(script)[0]; s.parentNode.insertBefore(ga, s); ga.js;  })();     var s = document.getElementsByTagName(script)[0]; s.parentNode.insertBefore(ga, s);   })();</script> </script>www.CardinalPath.com © 2012 Cardinal Path, Inc, All Rights Reserved. Proprietary and Confidential. 14
  • May 24, 2012 What do you do if your site has multiple domains?<script type="text/javascript"> <script type="text/javascript"> var _gaq = _gaq || []; _gaq.push([_setAccount, UA-XXXXX-X]); var _gaq = _gaq || []; _gaq.push([_setDomainName, mysite.com]); <a href="http://www.myothersite.com/intro" _gaq.push([_setAccount, UA-XXXXX-X]); _gaq.push([_setAllowLinker, true]); onclick="_gaq.push([_link, http://www.myothersite.com/intro.html]); return false;">See my blog</a> <a href="http://www.mysite.com/" _gaq.push([_setDomainName, myothersite.com]); _gaq.push([_trackPageview]); onclick="_gaq.push([_link, http://www.mysite.com/]); return false;">Go back to my site</a> _gaq.push([_setAllowLinker, true]); _gaq.push([_trackPageview]);  (function() {    var ga = document.createElement(script); ga.type = text/javascript; ga.async = true;   (function() {    ga.src = (https: == document.location.protocol ? https://ssl : http://www) + .google-analytics.com/     var ga = document.createElement(script); ga.type = text/javascript; ga.async = true;ga.js;     ga.src = (https: == document.location.protocol ? https://ssl : http://www) + .google-analytics.com/    var s = document.getElementsByTagName(script)[0]; s.parentNode.insertBefore(ga, s); ga.js;  })();     var s = document.getElementsByTagName(script)[0]; s.parentNode.insertBefore(ga, s);   })();</script> </script>www.CardinalPath.com © 2012 Cardinal Path, Inc, All Rights Reserved. Proprietary and Confidential. 14
  • May 24, 2012 What do you do if your site has multiple domains?<script type="text/javascript"> <script type="text/javascript"> var _gaq = _gaq || []; _gaq.push([_setAccount, UA-XXXXX-X]); var _gaq = _gaq || []; _gaq.push([_setDomainName, mysite.com]); <a href="http://www.myothersite.com/intro" _gaq.push([_setAccount, UA-XXXXX-X]); _gaq.push([_setAllowLinker, true]); onclick="_gaq.push([_link, http://www.myothersite.com/intro.html]); return false;">See my blog</a> <a href="http://www.mysite.com/" _gaq.push([_setDomainName, myothersite.com]); _gaq.push([_trackPageview]); onclick="_gaq.push([_link, http://www.mysite.com/]); return false;">Go back to my site</a> _gaq.push([_setAllowLinker, true]); <form name="f" method="post" onsubmit="_gaq.push([_linkByPost, this]);"> _gaq.push([_trackPageview]);  (function() {    var ga = document.createElement(script); ga.type = text/javascript; ga.async = true;   (function() {    ga.src = (https: == document.location.protocol ? https://ssl : http://www) + .google-analytics.com/     var ga = document.createElement(script); ga.type = text/javascript; ga.async = true;ga.js;     ga.src = (https: == document.location.protocol ? https://ssl : http://www) + .google-analytics.com/    var s = document.getElementsByTagName(script)[0]; s.parentNode.insertBefore(ga, s); ga.js;  })();     var s = document.getElementsByTagName(script)[0]; s.parentNode.insertBefore(ga, s);   })();</script> </script>www.CardinalPath.com © 2012 Cardinal Path, Inc, All Rights Reserved. Proprietary and Confidential. 14
  • May 24, 2012 What do you do if your site has multiple domains?<script type="text/javascript"> <script type="text/javascript"> L var _gaq = _gaq || []; _gaq.push([_setAccount, UA-XXXXX-X]); var _gaq = _gaq || []; I _gaq.push([_setDomainName, mysite.com]); <a href="http://www.myothersite.com/intro" _gaq.push([_setAccount, UA-XXXXX-X]); _gaq.push([_setAllowLinker, true]); onclick="_gaq.push([_link, http://www.myothersite.com/intro.html]); return false;">See my blog</a> <a href="http://www.mysite.com/" _gaq.push([_setDomainName, myothersite.com]); _gaq.push([_trackPageview]); onclick="_gaq.push([_link, http://www.mysite.com/]); return false;">Go back to my site</a> _gaq.push([_setAllowLinker, true]); A <form name="f" method="post" onsubmit="_gaq.push([_linkByPost, this]);"> _gaq.push([_trackPageview]);  (function() {    var ga = document.createElement(script); ga.type = text/javascript; ga.async = true; F   (function() {    ga.src = (https: == document.location.protocol ? https://ssl : http://www) + .google-analytics.com/     var ga = document.createElement(script); ga.type = text/javascript; ga.async = true;ga.js;     ga.src = (https: == document.location.protocol ? https://ssl : http://www) + .google-analytics.com/    var s = document.getElementsByTagName(script)[0]; s.parentNode.insertBefore(ga, s); ga.js;  })();     var s = document.getElementsByTagName(script)[0]; s.parentNode.insertBefore(ga, s);   })();</script> </script>www.CardinalPath.com © 2012 Cardinal Path, Inc, All Rights Reserved. Proprietary and Confidential. 14
  • May 24, 2012 How to do it with GAS? _gas.push([_setAccount, UA-XXXXX-1]); _gas.push([_setAllowLinker, true]); _gas.push([_setDomainName, mysite.com]); _gas.push([_setDomainName, myothersite.com]); _gas.push([_gasMultiDomain, click]); _gas.push([_trackPageview]);www.CardinalPath.com © 2012 Cardinal Path, Inc, All Rights Reserved. Proprietary and Confidential. 15
  • May 24, 2012 How to do it with GAS? _gas.push([_setAccount, UA-XXXXX-1]); s s e _gas.push([_setAllowLinker, true]); c _gas.push([_setDomainName, mysite.com]); c _gas.push([_setDomainName, myothersite.com]); u _gas.push([_gasMultiDomain, click]); S _gas.push([_trackPageview]);www.CardinalPath.com © 2012 Cardinal Path, Inc, All Rights Reserved. Proprietary and Confidential. 15
  • May 24, 2012 GAS can do a lot more for you • You can extend GAS by adding plugins • GAS helps you if you need to use _setAllowAnchor(true) • GAS fixes bad formatted events for you • GAS helps you if you want to send data to multiple accounts at the same timewww.CardinalPath.com © 2012 Cardinal Path, Inc, All Rights Reserved. Proprietary and Confidential. 16
  • May 24, 2012 What else can you expect from GAS in the future • Support for more video players • Support for tracking social widgets usage • More customization options if you are a developerwww.CardinalPath.com © 2012 Cardinal Path, Inc, All Rights Reserved. Proprietary and Confidential. 17
  • May 24, 2012 https://github.com/CardinalPath/gas Eduardo Cereto Carvalho @eduardocereto ecereto@cardinalpath.comwww.CardinalPath.com © 2012 Cardinal Path, Inc, All Rights Reserved. Proprietary and Confidential. 18