Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

All about engagement with Universal Analytics @ Google Developer Group NYC May Meet Up

1,984 views

Published on

In this talk I discuss discuss ways that you can use the new version of Google Analytics (universal analytics) to measure the REAL engagement of your users, create new custom dimensions & metrics, track off site activities in Google Analytics and ways to track the same user across devices.

Published in: Marketing
  • Be the first to comment

All about engagement with Universal Analytics @ Google Developer Group NYC May Meet Up

  1. 1. All about Engagement with Universal Analytics Nico Miceli +nico miceli|@nicomiceli
  2. 2. At work: - Marketer at the core - Technical Analytics @SEERInteractive - GDE for Google Analytics
  3. 3. For Fun: Hacker/Maker People Watcher Quantified Selfer Curious Dude
  4. 4. Who are you?
  5. 5. First, what is engagement?
  6. 6. I am going to talk about: Event Tracking Custom Dimensions Cross Device Management The Measurement Protocol
  7. 7. The old days
  8. 8. Analytics was easier
  9. 9. But after a couple years…
  10. 10. The web got way cooler
  11. 11. Tracking got harder
  12. 12. With great power apps comes great responsibility tracking needs
  13. 13. Welcome to Universal Analytics
  14. 14. var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-XXXXX-X']); _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); })(); javascript ga.js Old
  15. 15. (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){(i[ r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m. parentNode.insertBefore(a,m)})(window,document,'script','//www.google- analytics.com/analytics.js','ga'); ga('create', 'UA-XXXXX-Y', 'nicomiceli.com'); ga('send', 'pageview'); analytics.js javascript New!
  16. 16. Thank You! Any Questions?
  17. 17. Just Kidding! It’s more than just an upgrade.
  18. 18. “Google Analytics is becoming user or customer centric rather than visit centric.” - Justin Curtoni Analytics Advocate, Google Inc.
  19. 19. Question 1 Are my users… sharing pictures watching videos clicking links having trouble with my forms
  20. 20. Event Tracking Shows how people are engaging with your site
  21. 21. Event tracking is a GA method that tracks engagement. It consists of four values that you can use to describe a user's interaction Value Type Required Description Category String Yes Typically the object that was interacted with (e.g. button) Action String Yes The type of interaction (e.g. click) Label String No Useful for categorizing events (e.g. nav buttons) Value Number No Values must be non-negative. Useful to pass counts (e.g. 4 times)
  22. 22. Example Button Click <button id="b1">Click Me</button> <script> $('#b1').click(function(){ ga('send', // send command - REQUIRED 'event', // type of thing to send - REQUIRED 'category', // category of event - REQUIRED 'action', // action of the event - REQUIRED 'label', // the element that was clicked - OPTIONAL 5 // the value of the event that was clicked - OPTIONAL ); }); </script> ga('send','event','category','action','opt_label',opt_value)
  23. 23. Don’t forget about hidden content Are people viewing your tabs? $('#tabID').click(function(){ ga('send', // send command – REQUIRED 'event', // type of thing to send – REQUIRED 'tabs', // category of event – REQUIRED 'click', // action of the event – REQUIRED $(this).id, // the element that was clicked - OPTIONAL ); }); </script>
  24. 24. There is so much data in Forms!
  25. 25. Track interaction with input boxes with onblur Post: bit.ly/1he1SRK by @iamchrisle
  26. 26. Help users through your forms by tracking they’re errors Post: bit.ly/1he1SRK by @iamchrisle
  27. 27. The Stats Show stats from RCS infographic
  28. 28. Drill down to NYC
  29. 29. Track embeded multimedia
  30. 30. They all have Player API’s!
  31. 31. YouTube Event Tracking Example //load youtube video with JavaScript API function onYouTubePlayerAPIReady() { player = new YT.Player('player', { height: 390, width: 640, videoId: "videoidxyz", events: { 'onStateChange': onPlayerStateChange } }); } function onPlayerStateChange(event) { switch (event.data) { case YT.PlayerState.PLAYING: ga("send", "event", "video", "play", "video name") break; case YT.PlayerState.ENDED: ga("send", "event", "video", "end", "video name") break; case YT.PlayerState.PAUSED: ga("send", "event", "video", "pause", "video name") break; } }
  32. 32. Wistia<div id="wistia_v059er99tw" class="wistia_embed" style="width:640px;height:426px;"> &nbsp; </div> <script charset="ISO-8859-1" src="http://fast.wistia.com/assets/external/E-v1.js"> </script> <script> wistiaEmbed = Wistia.embed("video-id-here"); wistiaEmbed.bind('play',function() { //console.log('play') ga('send','event','video-wistia','play','wistia-video-1') }) wistiaEmbed.bind('pause',function() { //console.log('paused') ga('send','event','video-wistia','pause','wistia-video-1') }) wistiaEmbed.bind("end", function () { //console.log('ended'); ga('send','event','video-wistia','ended','wistia-video-1') }); </script>
  33. 33. Question 2 Are my users engaged users… buying performing the desired 2nd action requesting more information
  34. 34. Custom Dimensions Send extra information to Google Analytics
  35. 35. Custom Dimensions allow you to push custom data to Google Analytics and group things together Note: You only get 20 but they 1 can have multiple labels
  36. 36. Set the Scope The scope tells GA how long the custom dimensions should follow the user
  37. 37. 3 Types of Scope Hit - value is applied to the single hit for which it has been set.
  38. 38. Hit What authors get viewed viewed the most? Blog post 1 by Chris Blog post 2 by Kevin Blog post 3 by Nico Blog post 4 by Kevin Blog post 5 by Chris Blog post 6 by Nico Blog Post 7 by Kevin Pageview=blog-1/ Pageview=/blog-5/ Pageview=/blog-4/ Pageview=/blog-2/ cd1_value=Author_Kevin cd1_value=Author_Nico cd1_value=Author_Kevin cd1_value=Author_Kevincd1_value=Author_Nicocd1_value=Author_Chris cd1_value=Author_Chris Pageview=/blog-7/Pageview=/blog-2/Pageview=/blog-4/
  39. 39. Processing Every hit gets processed with the Custom Dimension of the author’s name ClientID = 232 Session 1 H1: pageview=/blog-post-1/ cd1_value=Author_Chris H2: pageview =/blog-post-5/ cd1_value=Author_Kevin ClientID = 343 Session 1 H1: pageview =/blog-post-4/ cd1_value=Author_Nico H2: pageview =/blog-post-2/ cd1_value=Author_Kevin H3: pageview =/blog-post-7/ cd1_value=Author_Chris H4: pageview =/blog-post-6/ cd1_value=Author_Nico H5: pageview =/blog-post-9/ cd1_value=Author_Kevin
  40. 40. Reporting Example Report Author Blog posts Viewed Author Nico 2 Author Kevin 3 Author Chris 2
  41. 41. 3 Types of Scope Session - value is applied to all hits in a single session where idle time is < 30 mins.
  42. 42. Session Do people who watch my videos end up converting? Go product page Watch video Click on tabs Read reviews Sign up Pageview=blog-1/ event= video, play, video1 event= tabs, click, info Pageview=reviews/ event = forms, sign up, more info Remember event tracking parameters = category, action, label Cd2 = video watcher Cd2 = video watcher Video event triggers custom dimension 2
  43. 43. 3 Types of Scope User - value is applied to all hits in current and future sessions, until value changes or custom dimension is made inactive.
  44. 44. Users How do the paid users differ from the free users Go to site Log in View blog Listen to music Go to site View help page View blog Listen to music Pageview=/ Pageview = welcome Pageview= /blog/ event= music, play, song1 Pageview=/ Pageview=/help/ Pageview=/blog/ event= music, play, song2 Cd3 = video watcher Cd3 = video watcher Session 1 Session 2
  45. 45. But what if they switch to another device Woz’s travel bag
  46. 46. we lost him… we can't find Stu the user
  47. 47. Question 3 Are my users… using different devices performing different actions on different devices
  48. 48. Cross Device Management Track users across different devices
  49. 49. Client ID Normally GA stores an anonymous Client ID for the user
  50. 50. It starts with User-ID feature - The user ID lets you create your own persistent anonymous id and override GA’s - You can tie hits & sessions to the same users when they log in on different devices
  51. 51. It starts with User-ID feature Make sure the User ID is: - Non-personally identifiable - Unique to a user of your service or app - Persistent for a signed-in user across all devices Web: ga('create', 'UA-XXXX-Y', 'auto'); if (auth.userSignedInVlaue) { ga('set', '&uid', {{ USER_ID }}); }; ga('send', 'pageview'); Android: t.set("&uid", {{ USER_ID }}); iOS: [tracker set:@"&uid" value:{{ USER_ID }}];
  52. 52. Setting it up in the App - Enable UserID in Admin - Make a new View
  53. 53. Things to note: 1- the profile will only show hits with the UserID present 2- number of Users is calculated based on the number of unique User-ID values. 3- date range max will only be 90 days 4- Once you enable the User ID feature for a view (profile), you cannot disable it.
  54. 54. What can we learn from that? Where your customers research and where they buy & how their activity differs
  55. 55. What can we learn from that? We can see device overlap reports
  56. 56. & Device paths!
  57. 57. Question 4 What if the users… aren’t on tablets or computers do other things offline
  58. 58. Measurement Protocol Make HTTP requests to send raw user interaction data directly to Google Analytics servers.
  59. 59. The measurement protocol lets you send data to Google Analytics via HTTP Requests to this endpoint. http://www.google-analytics.com/collect http://ssl.google-analytics.com/collect With these values required for all hits Name Parameter Example Description Protocol Version v v=1 The protocol version. The value should be 1. Tracking ID tid tid=UA-123456-1 The ID that distinguishes to which Google Analytics property to send data. Client ID cid cid=xxxxx An ID unique to a particular user. Hit Type t t=pageview The type of interaction collected for a particular user.
  60. 60. How about physical data?
  61. 61. Lets test it Offline ?
  62. 62. Ok, it wasn’t that complicated
  63. 63. Rasberry Pi + PIR Sensor + lil’ Python = movement in GA import time import urllib2 import RPi.GPIO as io io.setmode(io.BCM) pir_pin = 18 io.setup(pir_pin, io.IN def hitGA(): urllib2.urlopen("http://ww w.google- analytics.com/collect?v=1& tid=UA-XXXXXX- Y&cid=1111&t=event&ec=Move ment&ea=livingRoom&el=desk ").close while True: if io.input(pir_pin): hitGA() Total cost $60
  64. 64. Sleep Tracker v1
  65. 65. At SEER we like to have events
  66. 66. What’s a good area to track
  67. 67. “We used a raspberry pi to track trips to the keg at #searchchurch in Google analytics pic.twitter.com/tr9XLMSRRD by @NicoMiceli” - @wilreynolds
  68. 68. That was fun! Now for the serious examples!
  69. 69. Client ID or User ID Question Client ID User ID What does the ID Represent? An anonymous device or browser instance. A single user, like a signed-in user account, that may interact with content across one or more devices and / or browser instances. How is the ID Set? Randomly generated and automatically sent with all hits by Google Analytics libraries. You must set and send your own userIds with your Google Analytics hits. How is ID Used to Calculate Unique Users? In a non-User-ID-enabled view (profile), Client ID is used to calculate unique users. In a User-ID-enabled view (profile), User ID is used to calculate unique users There are two ways to associate a hit to a user with the measurement protocol Examples: Lead gen vs eComm
  70. 70. Lets talk Lead Gen
  71. 71. The lead gen process Go to site Browse around Fill out form Form goes to DB BizDev follows up with call Lead turns to Qualified BizDev sends proposal Client signs agreement New Lead Nico Miceli CompanyX .com
  72. 72. What GA sees Go to site Browse around Fill out form Form goes to DB BizDev follows up with call Thumbs Up! Lead turns to Qualified BizDev sends proposal Client signs agreement New Lead Nico Miceli CompanyX
  73. 73. Push the client ID with your form submissions… hindenly <form id="lead-form" method="POST" action="/lead"> <input id="name" type="text" /><BR> <input id="phone" type="text" /><BR> <!-- make a hidden input field and store the client ID in it --> <input id="clientcookie" type="hidden" /><BR> </form> <script type="text/javascript"> $(document).ready(function(){ ga(function(tracker) { clientID = tracker.get('clientId'); //grab the current users anonymous client ID document.getElementById('clientcookie').value = clientID; //set the value of client ID to the hidden input field }); }); </script>
  74. 74. ga(function(tracker) { var clientId = tracker.get('clientId'); }); <form id="lead-form" method="POST" action="/lead"> <input id="name" type="text" /><BR> <input id="phone" type="text" /><BR> <!-- make a hidden input field and store the client ID in it --> <input id="clientcookie" type="hidden" /><BR> </form> <script type="text/javascript"> $(document).ready(function(){ ga(function(tracker) { clientID = tracker.get('clientId'); //grab the current users anonymous client ID document.getElementById('clientcookie').value = clientID; //set the value of client ID to the hidden input field }); }); </script>
  75. 75. The lead gen process Go to site Browse around Fill out form Form goes to DB BizDev follows up with call Lead turns to Qualified BizDev sends proposal Client signs agreement New Lead Nico Miceli CompanyX CID: 777 cid:777 cid:777 cid:777 cid:777 Send new data with the Measurement protocol
  76. 76. Get Email Go to eComm.com Log in to get coupon Print Out Coupon Go to the eComm Store Spend coupon + $100 eComm to comm…
  77. 77. Get Email Go to eComm.com Log in to get coupon Print Out Coupon Go to the eComm Store Spend coupon + $100 eComm to comm auth = true
  78. 78. Get Email Go to eComm.com Log in to get coupon Print Out Coupon Go to the eComm Store Spend coupon + $100 eComm to comm auth = true UID=123 UID=123 UID=123
  79. 79. I can now see user pain points in my app, learn the impact of the bells & whistle, I can understand the users on across devices, I can associate them with real world data.
  80. 80. TL;DR Events Use Google Analytics to track engagement via JS events ga('send','event','category','action','opt_label ',opt_value)
  81. 81. TL;DR Custom Dimensions Allows you to group things and send more data to Google Analytics Step 1: Create a Name that you want to show up in reports Step 2: Set the Scope Step 3: Make it Active
  82. 82. TL;DR Cross Device Management Allows you to track a user across different devices Step 1: Enable it in the web app Step 2: Connect a persistent anonymous ID to each user Step 3: Add it to your code
  83. 83. TL;DR measurement Protocol Allows you to send data to GA via HTTP Requests Allows you to connect real world with internet world The length of the entire encoded URL must be no longer than 2000 Bytes.
  84. 84. Resources Google Analytics Debugger Chrome Extension Google Analytics Developer Google+ Community Stack Overflow Google Analytics Tag All links will be on my G+ page tomorrow Google.com/+nicomiceli @nicomiceli
  85. 85. We’re Hiring! seer.is/jobbies

×