Professional Documents
Culture Documents
The Question
Of users who are installed and have generated activities in more than one property - which property in my portfolio are users monetizing on?
Have installed
APP1 (only) APP2 (only)
Have monetized
APP1 APP2 APP1 (only) APP2 (only)
Metric
ARPU APP1 ARPU APP2 ARPU APP1 ARPU APP2 ARPU APP1
Query #
1 2 3 4 5 6
APP1 + APP2
Application Selection o o Replace <APP1_mtu> and <APP1_apa> with the name of your application you are interested in reviewing, for example: demogame1_apa, demogame1_mtu Replace <APP2_mtu> and <APP2_apa> with the other name of your application interested in reviewing, for example: demogame2_apa, demogame2_mtu Time Period o Replace <lower_date_in_YYYYMM_format> as the initial date of interest using the format YYYY-MMDD, for example 2012-06-01-- Replace <APP2_apa> with the name of your applications you are NOT interested in reviewing, for example: demogame2_apa. o Replace <upper_date_in_YYYYMM_format> as the initial date of interest using the format YYYY-MMDD, for example 2013-01-31 **See Queries section below **
Have installed
APP1 (only) APP2 (only)
Have monetized
APP1 APP2 APP1 (only) APP2 (only)
Metric
ARPU APP1 ARPU APP2 ARPU APP1 ARPU APP2 ARPU APP1
Query #
1 2 3 4 5 6
Result
$0.10 $0.87 $0.27 $0.92 $1.47 $1.57
APP1 + APP2
Queries
Query 1: # ARPU of users who installed app1 only and have monetized on app1
SELECT sum(revenues.app1rev)/count(*) FROM -- people who have installed only app1 (SELECT app1.app1s AS install_s, app1.app1utc as install_utc FROM (SELECT s AS app1s, min(utc_timestamp) AS app1utc FROM <APP1_apa> GROUP BY s)app1 FULL OUTER JOIN (SELECT s AS app2s, min(utc_timestamp) AS app2utc FROM <APP2_apa> GROUP BY s)app2 ON app1.app1s = app2.app2s WHERE app1.app1s IS NOT NULL and app2.app2s IS NULL )installs FULL OUTER JOIN -- people who have only monetized on app1 (SELECT app1.app1s AS revenue_s, app1.rev AS app1rev, app1.app1utc as revenue_utc FROM (SELECT s AS app1s, min(utc_timestamp) AS app1utc, sum(v) AS rev FROM <APP1_mtu> GROUP BY s)app1 FULL OUTER JOIN (SELECT s AS app2s, min(utc_timestamp) AS app2utc FROM <APP2_mtu> GROUP BY s)app2 ON app1.app1s = app2.app2s WHERE app1.app1s IS NOT NULL and app2.app2s IS NULL )revenues ON installs.install_s = revenues.revenue_s WHERE installs.install_s IS NOT NULL and revenues.revenue_s IS NOT NULL AND kt_date(install_utc)>= <lower_date_in_YYYYMM_format> AND kt_date(revenue_utc)<= <upper_date_in_YYYYMM_format> -- ARPU of people who have installed app1 only, and have generated revenue on app1
Query #2: ARPU of users who installed app2 only and have monetized on app2
SELECT sum(revenues.app2rev)/count(*) FROM -- people who have installed only app2 (SELECT app2.app2s AS install_s, app2.app2utc as install_utc FROM (SELECT s AS app1s, min(utc_timestamp) AS app1utc FROM <APP1_apa> GROUP BY s)app1 FULL OUTER JOIN (SELECT s AS app2s, min(utc_timestamp) AS app2utc FROM <APP2_apa> GROUP BY s)app2 ON app1.app1s = app2.app2s WHERE app1.app1s IS NULL and app2.app2s IS NOT NULL )installs FULL OUTER JOIN -- people who have only monetized on app2 (SELECT app2.app2s AS revenue_s, app2.rev AS app2rev, app2.app2utc as revenue_utc FROM (SELECT s AS app1s, min(utc_timestamp) AS app1utc FROM <APP1_mtu> GROUP BY s)app1 FULL OUTER JOIN (SELECT s AS app2s, min(utc_timestamp) AS app2utc, sum(v) AS rev FROM <APP2_mtu> GROUP BY s)app2 ON app1.app1s = app2.app2s WHERE app1.app1s IS NULL and app2.app2s IS NOT NULL )revenues ON installs.install_s = revenues.revenue_s WHERE installs.install_s IS NOT NULL and revenues.revenue_s IS NOT NULL AND kt_date(install_utc)>= <lower_date_in_YYYYMM_format> AND kt_date(revenue_utc)<= <upper_date_in_YYYYMM_format> -- ARPU of people who have installed app2 only, and have generated revenue on app2
Query #3: ARPU on app1 of users who installed both apps but only monetized on app1
SELECT sum(revenues.app1rev)/count(*) FROM -- people who have installed both apps (SELECT app1.app1s AS install_s, app1.app1utc AS install_utc FROM (SELECT s AS app1s, min(utc_timestamp) AS app1utc FROM <APP1_apa> group by s)app1 FULL OUTER JOIN (SELECT s AS app2s, min(utc_timestamp) AS app2utc FROM <APP2_apa> GROUP BY s)app2 on app1.app1s = app2.app2s where app1.app1s IS NOT NULL AND app2.app2s IS NOT NULL )installs FULL OUTER JOIN -- people who have only monetized on app1 (but may have installed multiple apps) (SELECT app1.app1s AS revenue_s, app1.rev AS app1rev, app1.app1utc AS revenue_utc FROM (SELECT s AS app1s, min(utc_timestamp) AS app1utc, sum(v) AS rev FROM <APP1_mtu> GROUP BY s)app1 FULL OUTER JOIN (SELECT s AS app2s, min(utc_timestamp) AS app2utc FROM <APP2_mtu> GROUP BY s)app2 ON app1.app1s = app2.app2s WHERE app1.app1s IS NOT NULL AND app2.app2s IS NULL )revenues ON installs.install_s = revenues.revenue_s WHERE installs.install_s IS NOT NULL and revenues.revenue_s IS NOT NULL AND kt_date(install_utc)>= <lower_date_in_YYYYMM_format> AND kt_date(revenue_utc)<= <upper_date_in_YYYYMM_format> -- people who have installed app1 and app2 and have generated revenue on app1
Query #4: ARPU on app1 of users who installed both apps but only monetized on app2
SELECT sum(revenues.app2rev)/count(*) FROM -- people who have installed both apps (SELECT app2.app2s AS install_s, app2.app2utc AS install_utc FROM (SELECT s AS app1s, min(utc_timestamp) AS app1utc FROM <APP1_apa> group by s)app1 FULL OUTER JOIN (SELECT s AS app2s, min(utc_timestamp) AS app2utc FROM <APP2_apa> GROUP BY s)app2 on app1.app1s = app2.app2s where app1.app1s IS NOT NULL AND app2.app2s IS NOT NULL )installs FULL OUTER JOIN -- people who have only monetized on app2 (but may have installed multiple apps) (SELECT app2.app2s AS revenue_s, app2.rev AS app2rev, app2.app2utc AS revenue_utc FROM (SELECT s AS app1s, min(utc_timestamp) AS app1utc FROM <APP1_mtu> GROUP BY s)app1 FULL OUTER JOIN (SELECT s AS app2s, min(utc_timestamp) AS app2utc, sum(v) AS rev FROM <APP2_mtu> GROUP BY s)app2 ON app1.app1s = app2.app2s WHERE app1.app1s IS NULL AND app2.app2s IS NOT NULL )revenues ON installs.install_s = revenues.revenue_s WHERE installs.install_s IS NOT NULL and revenues.revenue_s IS NOT NULL AND kt_date(install_utc)>= <lower_date_in_YYYYMM_format> AND kt_date(revenue_utc)<= <upper_date_in_YYYYMM_format> -- people who have installed app1 and app2 and have generated revenue on app2
Query #5: ARPU on app1 of users who Installed and Monetized on both app1 + app2
SELECT sum(app1.app1rev)/count(*) FROM (SELECT s AS app1s, min(utc_timestamp) AS app1utc, sum(v) AS app1rev FROM <APP1_mtu> GROUP BY s)app1 FULL OUTER JOIN (SELECT s AS app2s, min(utc_timestamp) AS app2utc FROM <APP2_mtu> GROUP BY s)app2 ON app1.app1s = app2.app2s WHERE app1.app1s IS NOT NULL and app2.app2s IS NOT NULL AND kt_date(app1.app1utc)>= <lower_date_in_YYYYMM_format> AND kt_date(app1.app1utc)<= <upper_date_in_YYYYMM_format> AND kt_date(app2.app2utc)>= <lower_date_in_YYYYMM_format> AND kt_date(app2.app2utc)<= <upper_date_in_YYYYMM_format> -- ARPU on app1 only for users who monetized on both apps
Query #6: ARPU on app2 of users who installed and monetized on both app1+ app2
SELECT sum(app2.app2rev)/count(*) FROM (SELECT s AS app1s, min(utc_timestamp) AS app1utc FROM <APP1_mtu> GROUP BY s)app1 FULL OUTER JOIN (SELECT s AS app2s, min(utc_timestamp) AS app2utc, sum(v) AS app2rev FROM <APP2_mtu> GROUP BY s)app2 ON app1.app1s = app2.app2s WHERE app1.app1s IS NOT NULL and app2.app2s IS NOT NULL AND kt_date(app1.app1utc)>= <lower_date_in_YYYYMM_format> AND kt_date(app1.app1utc)<= <upper_date_in_YYYYMM_format> AND kt_date(app2.app2utc)>= <lower_date_in_YYYYMM_format> AND kt_date(app2.app2utc)<= <upper_date_in_YYYYMM_format> -- ARPU on app1 only for users who monetized on both apps