Upload
hakhuong
View
217
Download
1
Embed Size (px)
Citation preview
For Developers Google Analy1cs
• Google Analy+cs vs Mixpanel [new] • Simple Funnel analysis of users • Advanced Funnel analysis w/ segmenta+on • JS Events w/ forms • Anomoly detec+on [new]
TOPICS
Google Analy1cs vs Mixpanel $ diff googleAnaly1cs mixpanel
URLs vs
JavaScript events
A B C
Who watched the video?
/ /b.html Video Home page
w/ link to b.html Page with video
on it BuPon to start
playback
Both: Before the </head>
Google Analy1cs
_gaq.push([‘_trackEvent’, ‘videos played’, // category ‘free video’, // label 300 // value (duration) ]);
C
MixPanel
mixpanel.track( "Video Played", // Event { "gender": "male", // Property "source": "google", "keyword": "free video", "duration": 300 } );
C
MixPanel: Define Each Step Explicitly
Quick Comparison Google Analy1cs
• See where • More integrated • More data • Complex reports • Segments via custom
variables or regex • DIY Cohort analysis • No ID allowed • Free
MixPanel • See what • Just the app itself • Less data • Simpler reports • Segments via via hashes
• Cohort analysis built-‐in • ID is OK • Not free • Pay for data points
✗ Harder to setup ✗ Less data
✔ Easy to customize ✔ Reports are simple
MixPanel
✔ Easy to setup ✔ More data
✗ Harder to customize ✗ Reports are harder
Google Analy1cs
Simple Funnel Analysis Measuring User Flow
A B C
Example:
/ /b.html Video Home page
w/ link to b.html Page with video
on it BuPon to start
playback
A B C / /b.html Video
100 Users
Where are they coming from?
Google? Direct?
Blogs? TwiPer?
A B C
Where are they falling off?
/ /b.html Video
100 Users 62 Users 21 Users
A B C
Looking for big drops
/ /b.html Video
100 Users 62 Users 21 Users
A B C
Why are they dropping?
/ /b.html Video
100 Users 62 Users 21 Users
A B C / /b.html Video
100 Users
Where are they coming from?
Google? Direct?
Blogs? TwiPer?
Basic inbound metrics
Types Incoming of Traffic
Organic (algorithmically chosen) Paid (pay to play)
Types Incoming of Traffic
Organic (algorithmically chosen) Paid (pay to play)
Branded traffic (calling “Ticketleap” by name) Non-‐branded traffic (“free event +cke+ng soVware”)
General Terms
• Visits: User +meout is 30 min or 12am – Timeout means idle for > 30 min – Or midnight for +mezone set in GA
• Exit: User leV the site – May have visited more than one page
• Bounce: Technically a subset of “exit” – Only visited one page
• Bounce rate = (Visits / Bounces)
General Terms Interpreta1ons
• Visits: More visits = good. • Exit: Exits are normal. • Bounce: High bounce rate doesn’t necessarily mean bad! – Consider the context of the page
MixPanel lacks Inbound data :(
(Google Analy1cs vs MixPanel)
How do I get that data?
Both: Before the </head>
a/v/layouts/applica1on.html.erb
<html> <head> ... <%= render “google_analytics” %> </head> ...
a/v/layouts/_google_analy1cs.html.erb
<script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-xxxx-1']); _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>
Funnel Setup and visualiza1on
A B C
Where are they falling off?
/ /b.html Video
100 Users 62 Users 21 Users
Go to: Admin > Goals > Create a Goal
Choose: -‐ Based on URL -‐ Dura1on of Visit -‐ JS Event firing
URLs: -‐ Define URLs (regex or strings)
vs. MixPanel: Only by JS Events
(Old) Funnel Visualiza1on Google Analy1cs
(New) Funnel Visualiza1on Google Analy1cs
JS Events
Using exit rate to see Drop off over 1me
(Yet Another Way)
1. Go to Exit pages
2. Add “vs. Pageviews”
3. (op1onal) Filter by URL
Two-‐step sign up to single-‐step sign up
Lower exit rate is bePer 62%
Two-‐step sign up to single-‐step sign up
No code was wriPen (Did you no1ce?)
Advanced Funnel Analysis (using segmenta1on)
Measuring User Flow
Who’s being a quiPer?! • First +me users? • Returning users? • High rollers?
a/v/login/create.html.erb
_gaq.push([‘_setCustomVar’, 1, // a slot number ‘User type’, // String: user type ‘New user’, // String: value 2 // Enum: scope ]);
a/v/login/index.html.erb
_gaq.push([‘_setCustomVar’, 1, // a slot number ‘User type’, // String: user type ‘Money bags’, // String: value 2 // Enum: scope ]);
The last value set wins.
1. Go to Exit pages 2. Type in the URL
3. Advanced Segments > “New poten1al sellers who …”
Fewer high rollers are leaving! Yay!
Oh, hey. Cool stuff down here!!
Source: Which sites referred us bePer customers? Medium: Which marke+ng campaigns are sending us bePer customers? Keyword: What were they originally searching for? Landing Page: What page did they land on first? Which pages give you engaging customers? Ci1es? Browsers? Screen resolu1ons???
City, sorted by % Exit
People in Rockland Leave less than others Are LA customers bePer than London customers?
JS Events with Forms Measuring Engagement
Why are they dropping? Analyzing events by page in Google Analy1cs
a/v/login/_form.html.erb
<%= form_for (@something … %> <%f.text_field :name, :class => ‘track_event’ %> <% end %> <script> // capture event here
</script>
a/v/login/_form.html.erb
$(‘.track_event’).on(‘blur’, function(evt) { _gaq.push([‘_trackEvent’, ‘Interactions’, ‘Interacted with’, ‘login_textbox’]); });
1. Event > Pages
2. Only new users please.
3. Find 4. Click on /account/signup
5. Event Ac1on
6. Choose event label
7. Bar graph buPon
8. Sort by Unique events
Why is next event a valida1on error?
Requirements too strict?
Maybe.
1.6x 1.6 users will try a new password again.
Everyone else… went away :(
Analyze Event Flows Digging further
Issues with “Event flows”
• The “Spaghee” problem • Impossible routes caused by tabs • BePer for small flows with few branches
Anomoly Detec1on! New on Google Analy1cs
hPp://bit.ly/TxdOwg
More than just pageviews Google Analy1cs
Ask me more ques1ons @iamchrisle