Installs daily
Installs and uninstalls per app and country, the Statistics page of Play Console with the user and device metrics side by side.
- Grain
- one row per day x package x country
- Built from
- 1Raw tables
- 1Staging
- 1Core
- 1Analytics
- Reads from Google Play Console
- stats_installs_country
- Ships as
- Weld and dbt SQL, open source on GitHub
1-- core.google_play.installs_daily
2-- Installs and uninstalls per app and country, the Statistics page of Play Console
3-- with the user and device metrics side by side.
4--
5-- Grain: one row per day x package x country.
6-- Depends on: staging.google_play.installs_by_country
7--
8-- USERS VS. DEVICES. A user installs once per Google account however many devices
9-- they put the app on; a device install counts each device. Play Console's
10-- "acquisitions" are the user numbers. Pick one and stay with it.
11--
12-- `installs_on_active_devices` is a level (how many devices have the app and were
13-- active in the last 30 days), not a flow. Sum the daily_ columns over a period;
14-- for the level take the last day of the period, never the sum.
15--
16-- Dates are as Play Console exports them. Google does not state a time zone for
17-- the statistics files; Play Console shows them in Pacific Time.
18
19SELECT
20 date_day,
21 package_name,
22 country,
23 daily_user_installs,
24 daily_user_uninstalls,
25 daily_user_installs - daily_user_uninstalls AS net_user_installs,
26 daily_device_installs,
27 daily_device_uninstalls,
28 daily_device_upgrades,
29 installs_on_active_devices,
30 ROUND(SAFE_DIVIDE(daily_user_uninstalls, NULLIF(daily_user_installs, 0)), 4) AS uninstalls_per_install
31FROM {{staging.google_play.installs_by_country}}This model and the 2 it depends on. Deploy them together; refs like {{staging.…}} resolve to the matching folders in Weld, and the dbt view uses source() and ref().
How it counts. And where it stops.
USERS VS. DEVICES. A user installs once per Google account however many devices they put the app on; a device install counts each device. Play Console's "acquisitions" are the user numbers. Pick one and stay with it. `installs_on_active_devices` is a level (how many devices have the app and were active in the last 30 days), not a flow. Sum the daily_ columns over a period; for the level take the last day of the period, never the sum. Dates are as Play Console exports them. Google does not state a time zone for the statistics files; Play Console shows them in Pacific Time.
Raw tables it reads
- raw.google_play.stats_installs_country
More Google Play Console models
Put Google Play Console in front
of your agents.
Connect Google Play Console, deploy the models, and ask questions in Claude, Cursor or ChatGPT. Free for 14 days, no credit card.