backfill/2023-08-03-firefox_ios_active_users_aggregates_v1/query.sql (116 lines of code) (raw):
WITH baseline_attribution_data AS (
SELECT
activity_segment AS segment,
attribution_medium,
attribution_source,
attribution_medium IS NOT NULL
OR attribution_source IS NOT NULL AS attributed,
city,
country,
distribution_id,
EXTRACT(YEAR FROM um.first_seen_date) AS first_seen_year,
is_default_browser,
channel,
normalized_os AS os,
os_version,
os_version_major,
os_version_minor,
um.submission_date,
um.locale,
att.adjust_network,
CAST(NULL AS STRING) install_source,
um.first_seen_date,
normalized_app_name as app_name,
normalized_os,
days_since_seen,
ad_click,
organic_search_count,
search_count,
search_with_ads,
uri_count,
active_hours_sum,
um.app_version as app_version,
um.client_id
FROM
`moz-fx-data-shared-prod.telemetry.unified_metrics` AS um
LEFT JOIN
firefox_ios.firefox_ios_clients AS att
ON
um.client_id = att.client_id
WHERE
um.submission_date BETWEEN '2021-01-01' AND '2023-08-02' and normalized_app_name = 'Firefox iOS'
),
enriched_with_language AS
(
SELECT
baseline_attribution_data.* EXCEPT (locale),
CASE
WHEN locale IS NOT NULL
AND languages.language_name IS NULL
THEN 'Other'
ELSE languages.language_name
END AS language_name,
FROM
baseline_attribution_data
LEFT JOIN
`mozdata.static.csa_gblmkt_languages` AS languages
ON
baseline_attribution_data.locale = languages.code
),
final_attribution_data AS (SELECT
segment,
app_version,
attribution_medium,
attribution_source,
attributed,
city,
country,
distribution_id,
first_seen_year,
is_default_browser,
app_name,
channel,
os,
os_version,
os_version_major,
os_version_minor,
submission_date,
adjust_network,
install_source,
language_name,
COUNT(DISTINCT IF(days_since_seen = 0, client_id, NULL)) AS dau,
COUNT(DISTINCT IF(days_since_seen < 7, client_id, NULL)) AS wau,
COUNT(DISTINCT client_id) AS mau,
COUNT(DISTINCT IF(submission_date = first_seen_date, client_id, NULL)) AS new_profiles,
SUM(ad_click) AS ad_clicks,
SUM(organic_search_count) AS organic_search_count,
SUM(search_count) AS search_count,
SUM(search_with_ads) AS search_with_ads,
SUM(uri_count) AS uri_count,
SUM(active_hours_sum) AS active_hours
FROM
enriched_with_language
GROUP BY
segment,
distribution_id,
channel,
os_version,
os_version_major,
os_version_minor,
language_name,
app_name,
app_version,
attributed,
attribution_medium,
attribution_source,
adjust_network,
install_source,
city,
country,
first_seen_year,
is_default_browser,
app_name,
os,
submission_date
)
select * from final_attribution_data