DevEX - reference for building teams, processes, and platforms
Analytics: Getting the Data - 500 Startups Accelerator Marketing Hell Week
1. Andy Young // @andyy // andy@500.co
How do I analytics?
a practical guide for
pragmatic startups
Part B: Getting the Data
2. Andy Young // @andyy // andy@500.co
TO RECAP:
Today’s tools make it
super-easy to track
things
Google Analytics
Mixpanel
KissMetrics
Localytics
Branch Metrics..
3. Andy Young // @andyy // andy@500.co
Today’s tools make it
super-easy to track
things
BUT they also make it really easy to
- become overwhelmed with data
- focus on the wrong things
4. Andy Young // @andyy // andy@500.co
Typical analytics challenges/pitfalls
Drowning in too much data
Failure to select + focus on the top metrics that
matter
Not tracking the data you need to answer key
questions
5. Andy Young // @andyy // andy@500.co
Why analytics?
1. How are we doing?
- are KPIs on the right track?
2. What are the results of our experiments?
- so we can learn
3. What’s happening right now?
- did something great or terrible just happen?
6. Andy Young // @andyy // andy@500.co
Getting the Datas
7. Andy Young // @andyy // andy@500.co
Collecting data
Don’t use Google Analytics!
8. Andy Young // @andyy // andy@500.co
Don’t use Google Analytics!
It’s the wrong type of tool for most key
questions.
Designed around sessions & pageviews
Instead: focus on unique users and key actions
Specific user journeys are not that important
Instead: what % of unique users
reached a particular step eventually?
Collecting data
9. Andy Young // @andyy // andy@500.co
Collecting data
Use an analytics tool focused on tracking
events/actions
and
individual user behaviour
e.g. Mixpanel, Localytics, Amplitude
10. Andy Young // @andyy // andy@500.co
Collecting data
Events vs. Properties vs. People
Events: something happened
Properties: something about what just happened
People: connect events to particular users
(people can also have properties)
12. Andy Young // @andyy // andy@500.co
What to Track
All key user behaviours
● pages/screens viewed, key actions taken
● anything that writes a new row or updates an
existing row in your database or user’s session store
○ e.g. add to cart, post new content
● do you have all key steps in the user funnel?
● anything that has external impact, e.g. share
13. Andy Young // @andyy // andy@500.co
Tracking events
Tip #1: Choose easy-to-read and meaningful
event names
Short!
Pick a convention; stick to it
Omit superfluous words
“user_viewed_homepage”
“Viewed homepage”
17. Andy Young // @andyy // andy@500.co
Tip #2: Track each user based on a distinct ID
Don’t use email address -
use autogenerated user_id from your own DB
Use aliasing to connect up events tracked
pre/post signup
Tracking events
18. Andy Young // @andyy // andy@500.co
Tip #3: Annotate your users with source data
referrer; utm tags; install tracking via AppsFlyer
1. Track a signup event
2. Add as user properties
3. Potentially also as properties to key events
Tracking events
19. Andy Young // @andyy // andy@500.co
Tip #4: (Mixpanel specific) - People vs. Events
Mixpanel won’t let you query for users
who did particular events
So, our options:
- Do this using your own DB
- Annotate your users (People) with properties
for each key event
Tracking events
20. Andy Young // @andyy // andy@500.co
Tip #5: Ecommerce/revenue tracking
Mixpanel/AppBoy etc have
native support for tracking revenue
Annotate your Purchase events with revenue data
using the relevant properties for each platform
Tracking events
21. Andy Young // @andyy // andy@500.co
Tip #6: Use a development project for testing
Tracking events
22. Andy Young // @andyy // andy@500.co
Track events from where?
Client/app vs. server
Tracking events
23. Andy Young // @andyy // andy@500.co
Tracking the funnel
24. Andy Young // @andyy // andy@500.co
Tracking the funnel
Start with the pirate metrics AARRR
Top of funnel: acquisition; signups/installs
Mid funnel: post-install events; engagement;
retention
Bottom of funnel: purchase / monetisation.
25. Andy Young // @andyy // andy@500.co
Tracking the funnel
Looking at each stage (AARRR) in aggregate
is a good start
but it will only get you so far
the “truth” is much more nuanced
26. Andy Young // @andyy // andy@500.co
Tracking the funnel
Users acquired via different channels
will have different behaviours
Different cohorts will have
different experiences of your product
Different users will have been exposed to
different A/B tests
27. Andy Young // @andyy // andy@500.co
Tracking the funnel
Key: these are all properties of your users
UTM tags: source, medium, campaign, terms
Landing page
Signup time
A/B test buckets
Referrer
Viral source
28. Andy Young // @andyy // andy@500.co
Tracking the funnel
Annotate your users in your database/analytics
system with these attributes
UTM tags: source, medium, campaign, terms
Landing page
Signup time
A/B test buckets
Referrer
Viral source
29. Andy Young // @andyy // andy@500.co
Let’s get Technical..
30. Andy Young // @andyy // andy@500.co
Implementing Tracking
Use a
Tag Manager
(e.g. Google Tag Manager)
Check out
Segment.com
for flexibility & agility
31. Andy Young // @andyy // andy@500.co
www.sitehound.co
- Free code! -
32. Andy Young // @andyy // andy@500.co
Implementing Tracking
Add your
Facebook + Google
Custom Audience /
Remarketing Pixels
Now!
Start building your audience
33. Andy Young // @andyy // andy@500.co
Revisiting
Cohort Analysis
41. Andy Young // @andyy // andy@500.co
Use your existing database
Users
Learn SQL! It's not hard
Just need a slave database for analytics
- “read replica” - i.e. a live copy
42. Andy Young // @andyy // andy@500.co
Use your existing data
Users
SELECT COUNT(*) FROM users
43. Andy Young // @andyy // andy@500.co
Use your existing data
Users
SELECT COUNT(*) FROM users
WHERE created > ‘2013-07-01’
AND created < ‘2013-08-01’
44. Andy Young // @andyy // andy@500.co
Use your existing data
SELECT COUNT(*) FROM users
LEFT JOIN sales USING (user_id)
WHERE users.created > ‘2013-07-01’
AND users.created < ‘2013-08-01’
AND sales.date < DATE_ADD(users.created, 1 MONTH)
45. Andy Young // @andyy // andy@500.co
1. Automate running queries (every hour!)
2. Store the results in a simple database
3. Create a page to graph the results
(HighCharts..)
Roll your own