Today we're going to break down Zynga's Q4 earning report into Key Performance indicators.
Zynga Q4 2019 Earnings Report: https://investor.zynga.com/static-files/b61fd24a-7aee-4ebd-8ba8-13e22add64f1
Braze KPI Article: https://www.braze.com/blog/essential-mobile-app-metrics-formulas/
For Zynga, revenue comes from users. Users can contribute to revenue in 2 ways: Store purchases and advertisements. In a freemium game, converting non-paying users to payed users is an active source of income. Advertisement is passive. Users enter the ecosystem through advertisement campaigns.
- We track the number of users flowing into and churning out of the app
- We track the conversion on revenue for users. We monitor payed users, and store interactivity closely.
- We track the cost of advertisement campaigns vs rewards
- It seems like in Q4 December, there was a lot of "fake" traffic. New metrics filter out this traffic.
- Mobile users only. No desktop/web users, because it's insignificant to them, and because of point above.
Daily Active Users
- There is some struggle with identifying individual users.
- This is base metric to track engagement
Monthly Active Users
- Number of Unique Users per Month
- An estimate of total game size audience.
Average Bookings per user (ABPU)
- Average Daily Bookings / Average DAU
- Avg Daily Bookings = (Items purchased from store + Income from advertisement) / time period
- Average DAU = DAU averaged / time period
- ABPU = AVG Daily Bookings / Avg DAU = Revenue per user.
Retiontion, Churn, New and Total Users
First we calculate this as a "before and after"
- AU = Active Users. Audience size.
- AU@before is a set of users. AU@After is also a set of users.
- Retained users = Set Intersection of AU@before & AU@after
- Churned Users = Set subtraction of AU@before - AU@after
- Total users = Set union of AU@before | AU@after
- New Users = Set subtraction of AU@after - AU@before
- Retained percent = Retained users / Total users
- Churned Percent = 1 - Retained percent
MAU Retention and Churn Now we talk about this as a function of time
- Retention = d/dt AU(t) = Change AU / Change Time = (After AU - Before AU) / (After DTTM - Before DTTM)
- Because MAU is audience size. Audience Retention = d/dt MAU(t) = Change MAU / 1 month
- We can track this daily with sliding windows of 30.
- The longer the time period the more stable. The shorted (7 days) the more reactive.
Stickiness
- Stickiness is Average DAU for 30 days/MAU
- One component of stickiness is daily sessions / DAU = daily sessions/DAU
- MAU is audience size. DAU is number of users on a given day. We average DAU to remove weekly anomalies.
Cost Per Aquisition
- Track for every advertising campaign.
- Cost/# of new users.
- Take Zynga + FB for example. How much are they paying for FB vs number of new users
Average Daily Bookings
- Daily bookings
Lifetime Value
- Should be greater than CPA.
- Average Value Conversion * Average # of conversion/time * avg customer lifetime = LTV
- Zynga uses ABPU. Time is averaged day.
Average Revenue Per User (ARPU) and Average Revenue Per Paying User (ARPPU)
- This is like current LTV. First 2 terms are Avg bookings. Last term is DAU.
- Total Revenue / Total Users since launch. Not typically useful.
- ABPU which is on average day level is more useful.
- ARPPU is like ABPU, but for paying users only. Average Bookings / AVG MAU.
The store is the central place where most transactions happen. We track this seperately from Advertisement bookings.
DAPPU and MAPPU Tracking Stickiness, Retention, Churn, and Daily/Monthly paying users seperately. These users are usually targetted seperately. In a freemium game, 1% make up for >50% of the revenue.
Store visites per DAU
- AVG Times store opened / AVG DAU
Conversion rate on store
- Number of store purchases / AVG DAU
High Prospect Users
- Users that use the app a lot, but haven't paid a penny.
Consumers Each one of these will get a Data-mart
- C?O + Investors to know app health
- Sales & Marketing to determine campaign effectiveness
- PMs to know feature effectiveness
Questions we want to ask Daily Active User - Session Table MAU - Session table Retention - Session Churn - Session % Stickiness = DAU / MAU - Session Table Daily Sessions - Session Table ABPU - Session if you denormalize costs
Session Fact Table
- Users Dimension
- DAU Factless Aggregate table, because it's used so often
Conformed Dimensions: Users
Questions we want to ask
- Cost per aquisition
- Value per aquisition
- High valued items or categories
- Trending purchases
Sales Fact Table
- Product Dimension
- Product Category Dimension (perhaps denormalize)
- Campaign Dimension
- Users Dimension
Conformed Dimensions: Users, Product
Questions we want to ask
- User engagement
- How has X feature impacted Y product
Session Fact Table
- Users Dimension
- Interactions Dimension
- session_id
- product_id
- item_id
- total_time
- Product Snowflake Dimension
- Items Snowflake dimension
Conformed Dimensions: Users, Product