sql/moz-fx-data-shared-prod/fenix_derived/feature_usage_events_v1/query.sql (871 lines of code) (raw):
WITH baseline_clients AS (
SELECT
DATE(
DATETIME(LEAST(ping_info.parsed_start_time, ping_info.parsed_end_time), 'UTC')
) AS ping_date,
client_info.client_id,
normalized_channel AS channel,
normalized_country_code AS country
FROM
`moz-fx-data-shared-prod.fenix.baseline`
WHERE
metrics.timespan.glean_baseline_duration.value > 0
AND LOWER(metadata.isp.name) <> "browserstack"
AND DATE(submission_timestamp)
BETWEEN DATE_SUB(@submission_date, INTERVAL 4 DAY)
AND @submission_date
AND DATE(
DATETIME(LEAST(ping_info.parsed_start_time, ping_info.parsed_end_time), 'UTC')
) = DATE_SUB(@submission_date, INTERVAL 4 DAY)
QUALIFY
ROW_NUMBER() OVER (
PARTITION BY
client_info.client_id
ORDER BY
DATE(DATETIME(LEAST(ping_info.parsed_start_time, ping_info.parsed_end_time), 'UTC'))
) = 1
),
client_attribution AS (
SELECT
client_id,
adjust_network,
distribution_id,
FROM
`moz-fx-data-shared-prod.fenix.attribution_clients`
),
default_browser AS (
SELECT
-- In rare cases we can have an end_time that is earlier than the start_time, we made the decision
-- to attribute the metrics to the earlier date of the two.
DATE(
DATETIME(LEAST(ping_info.parsed_start_time, ping_info.parsed_end_time), 'UTC')
) AS ping_date,
client_info.client_id,
normalized_channel AS channel,
normalized_country_code AS country,
COALESCE(metrics.boolean.metrics_default_browser, FALSE) AS is_default_browser,
FROM
`moz-fx-data-shared-prod.fenix.metrics` AS metric_ping
WHERE
LOWER(metadata.isp.name) <> "browserstack"
-- we need to work with a larger time window as some metrics ping arrive with a multi day delay
AND DATE(submission_timestamp)
BETWEEN DATE_SUB(@submission_date, INTERVAL 4 DAY)
AND @submission_date
AND DATE(
DATETIME(LEAST(ping_info.parsed_start_time, ping_info.parsed_end_time), 'UTC')
) = DATE_SUB(@submission_date, INTERVAL 4 DAY)
QUALIFY
ROW_NUMBER() OVER (PARTITION BY client_id ORDER BY ping_date) = 1
),
event_ping_clients_feature_usage AS (
SELECT
DATE(
DATETIME(LEAST(ping_info.parsed_start_time, ping_info.parsed_end_time), 'UTC')
) AS ping_date,
client_info.client_id,
normalized_channel AS channel,
normalized_country_code AS country,
/*Logins*/
--autofill
COUNTIF(
event_category = 'logins'
AND event_name = 'password_detected'
) AS autofill_password_detected_logins,
COUNTIF(
event_category = 'logins'
AND event_name = 'autofill_prompt_shown'
) AS autofill_prompt_shown_logins,
COUNTIF(
event_category = 'logins'
AND event_name = 'autofill_prompt_dismissed'
) AS autofill_prompt_dismissed_logins,
COUNTIF(event_category = 'logins' AND event_name = 'autofilled') AS autofilled_logins,
--management
COUNTIF(
event_category = 'logins'
AND event_name = 'management_add_tapped'
) AS management_add_tapped_logins,
COUNTIF(
event_category = 'logins'
AND event_name = 'management_logins_tapped'
) AS management_tapped_logins,
/*Credit Card*/
--autofill
COUNTIF(event_category = 'credit_cards' AND event_name = 'form_detected') AS form_detected_cc,
COUNTIF(
event_category = 'credit_cards'
AND event_name = 'autofill_prompt_shown'
) AS autofill_prompt_shown_cc,
COUNTIF(
event_category = 'credit_cards'
AND event_name = 'autofill_prompt_expanded'
) AS autofill_prompt_expanded_cc,
COUNTIF(
event_category = 'credit_cards'
AND event_name = 'autofill_prompt_dismissed'
) AS autofill_prompt_dismissed_cc,
COUNTIF(event_category = 'credit_cards' AND event_name = 'autofilled') AS autofilled_cc,
--save prompt
COUNTIF(
event_category = 'credit_cards'
AND event_name = 'save_prompt_shown'
) AS save_prompt_shown_cc,
COUNTIF(
event_category = 'credit_cards'
AND event_name = 'save_prompt_create'
) AS save_prompt_create_cc,
COUNTIF(
event_category = 'credit_cards'
AND event_name = 'save_prompt_update'
) AS save_prompt_update_cc,
--management
COUNTIF(
event_category = 'credit_cards'
AND event_name = 'management_add_tapped'
) AS management_add_tapped_cc,
COUNTIF(
event_category = 'credit_cards'
AND event_name = 'management_card_tapped'
) AS management_tapped_cc,
COUNTIF(event_category = 'credit_cards' AND event_name = 'modified') AS modified_cc,
/*Addresses*/
--autofill
COUNTIF(event_category = 'addresses' AND event_name = 'form_detected') AS form_detected_address,
COUNTIF(
event_category = 'addresses'
AND event_name = 'autofill_prompt_shown'
) AS autofill_prompt_shown_address,
COUNTIF(
event_category = 'addresses'
AND event_name = 'autofill_prompt_expanded'
) AS autofill_prompt_expanded_address,
COUNTIF(
event_category = 'addresses'
AND event_name = 'autofill_prompt_dismissed'
) AS autofill_prompt_dismissed_address,
COUNTIF(event_category = 'addresses' AND event_name = 'autofilled') AS autofilled_address,
--management
COUNTIF(
event_category = 'addresses'
AND event_name = 'management_add_tapped'
) AS management_add_tapped_address,
COUNTIF(
event_category = 'addresses'
AND event_name = 'management_address_tapped'
) AS management_tapped_address,
/*Bookmark*/
COUNTIF(event_category = 'bookmarks_management' AND event_name = 'copied') AS bookmark_copied,
COUNTIF(event_category = 'bookmarks_management' AND event_name = 'edited') AS bookmark_edited,
COUNTIF(
event_category = 'bookmarks_management'
AND event_name = 'folder_add'
) AS bookmark_folder_add,
COUNTIF(event_category = 'bookmarks_management' AND event_name = 'open') AS bookmark_open,
COUNTIF(
event_category = 'bookmarks_management'
AND event_name = 'open_all_in_new_tabs'
) AS bookmark_open_all_in_new_tabs,
COUNTIF(
event_category = 'bookmarks_management'
AND event_name = 'open_all_in_private_tabs'
) AS bookmark_open_all_in_private_tabs,
COUNTIF(
event_category = 'bookmarks_management'
AND event_name = 'open_in_new_tab'
) AS bookmark_open_in_new_tab,
COUNTIF(
event_category = 'bookmarks_management'
AND event_name = 'open_in_new_tabs'
) AS bookmark_open_in_new_tabs,
COUNTIF(
event_category = 'bookmarks_management'
AND event_name = 'open_in_private_tab'
) AS bookmark_open_in_private_tab,
COUNTIF(
event_category = 'bookmarks_management'
AND event_name = 'open_in_private_tabs'
) AS bookmark_open_in_private_tabs,
COUNTIF(event_category = 'bookmarks_management' AND event_name = 'removed') AS bookmark_removed,
COUNTIF(
event_category = 'bookmarks_management'
AND event_name = 'search_icon_tapped'
) AS bookmark_search_icon_tapped,
COUNTIF(
event_category = 'bookmarks_management'
AND event_name = 'search_result_tapped'
) AS bookmark_search_result_tapped,
COUNTIF(event_category = 'bookmarks_management' AND event_name = 'shared') AS bookmark_shared,
/*History*/
COUNTIF(event_category = 'history' AND event_name = 'opened') AS history_opened,
COUNTIF(event_category = 'history' AND event_name = 'opened_item') AS history_opened_item,
COUNTIF(
event_category = 'history'
AND event_name = 'opened_items_in_new_tabs'
) AS history_opened_items_in_new_tabs,
COUNTIF(
event_category = 'history'
AND event_name = 'opened_items_in_private_tabs'
) AS history_opened_items_in_private_tabs,
COUNTIF(
event_category = 'history'
AND event_name = 'recent_searches_tapped'
) AS history_recent_searches_tapped,
COUNTIF(
event_category = 'history'
AND event_name = 'remove_prompt_cancelled'
) AS history_remove_prompt_cancelled,
COUNTIF(
event_category = 'history'
AND event_name = 'remove_prompt_opened'
) AS history_remove_prompt_opened,
COUNTIF(event_category = 'history' AND event_name = 'removed') AS history_removed,
COUNTIF(event_category = 'history' AND event_name = 'removed_all') AS history_removed_all,
COUNTIF(
event_category = 'history'
AND event_name = 'removed_last_hour'
) AS history_removed_last_hour,
COUNTIF(
event_category = 'history'
AND event_name = 'removed_today_and_yesterday'
) AS history_removed_today_and_yesterday,
COUNTIF(
event_category = 'history'
AND event_name = 'search_icon_tapped'
) AS history_search_icon_tapped,
COUNTIF(
event_category = 'history'
AND event_name = 'search_result_tapped'
) AS history_search_result_tapped,
COUNTIF(
event_category = 'history'
AND event_name = 'search_term_group_open_tab'
) AS history_search_term_group_open_tab,
COUNTIF(
event_category = 'history'
AND event_name = 'search_term_group_remove_all'
) AS history_search_term_group_remove_all,
COUNTIF(
event_category = 'history'
AND event_name = 'search_term_group_remove_tab'
) AS history_search_term_group_remove_tab,
COUNTIF(
event_category = 'history'
AND event_name = 'search_term_group_tapped'
) AS history_search_term_group_tapped,
COUNTIF(event_category = 'history' AND event_name = 'shared') AS history_shared,
/*FxA*/
COUNTIF(event_category = 'sync' AND event_name = 'failed') AS sync_failed,
COUNTIF(event_category = 'sync_account' AND event_name = 'opened') AS sync_account_opened,
COUNTIF(event_category = 'sync_account' AND event_name = 'send_tab') AS sync_account_send_tab,
COUNTIF(
event_category = 'sync_account'
AND event_name = 'sign_in_to_send_tab'
) AS sync_account_sign_in_to_send_tab,
COUNTIF(event_category = 'sync_account' AND event_name = 'sync_now') AS sync_account_sync_now,
COUNTIF(event_category = 'sync_auth' AND event_name = 'closed') AS sync_auth_closed,
COUNTIF(event_category = 'sync_auth' AND event_name = 'opened') AS sync_auth_opened,
COUNTIF(
event_category = 'sync_auth'
AND event_name = 'other_external'
) AS sync_auth_other_external,
COUNTIF(event_category = 'sync_auth' AND event_name = 'paired') AS sync_auth_paired,
COUNTIF(event_category = 'sync_auth' AND event_name = 'recovered') AS sync_auth_recovered,
COUNTIF(event_category = 'sync_auth' AND event_name = 'scan_pairing') AS sync_auth_scan_pairing,
COUNTIF(event_category = 'sync_auth' AND event_name = 'sign_in') AS sync_auth_sign_in,
COUNTIF(event_category = 'sync_auth' AND event_name = 'sign_out') AS sync_auth_sign_out,
COUNTIF(event_category = 'sync_auth' AND event_name = 'sign_up') AS sync_auth_sign_up,
COUNTIF(event_category = 'sync_auth' AND event_name = 'use_email') AS sync_auth_use_email,
COUNTIF(
event_category = 'sync_auth'
AND event_name = 'use_email_problem'
) AS sync_auth_use_email_problem,
/*Privacy*/
COUNTIF(
event_category = 'homepage'
AND event_name = 'private_mode_icon_tapped'
) AS hp_private_mode_tapped,
COUNTIF(
event_category = 'tabs_tray'
AND event_name = 'private_mode_tapped'
) AS tab_tray_private_mode_switched,
COUNTIF(
event_category = 'app_icon'
AND event_name = 'new_private_tab_tapped'
) AS app_icon_private_tab_tapped,
COUNTIF(
event_category = 'tabs_tray'
AND event_name = 'new_private_tab_tapped'
) AS tab_tray_private_mode_tapped,
--etp
COUNTIF(
event_category = 'tracking_protection'
AND event_name = 'etp_setting_changed'
) AS etp_setting_changed,
COUNTIF(event_category = 'tracking_protection' AND event_name = 'etp_settings') AS etp_settings,
COUNTIF(event_category = 'tracking_protection' AND event_name = 'etp_shield') AS etp_shield,
COUNTIF(
event_category = 'tracking_protection'
AND event_name = 'etp_tracker_list'
) AS etp_tracker_list,
/*Default browser*/
COUNTIF(
event_category = 'events'
AND event_name = 'default_browser_changed'
) AS default_browser_changed,
/*Notification*/
COUNTIF(
event_category = 'events'
AND event_name = 're_engagement_notif_shown'
) AS re_engagement_notif_shown,
COUNTIF(
event_category = 'events'
AND event_name = 're_engagement_notif_tapped'
) AS re_engagement_notif_tapped,
/*Customize Home*/
COUNTIF(
event_category = 'app_menu'
AND event_name = 'customize_homepage'
) AS app_menu_customize_homepage,
COUNTIF(
event_category = 'home_screen'
AND event_name = 'customize_home_clicked'
) AS home_page_customize_home_clicked,
COUNTIF(
event_category = 'top_sites'
AND event_name = 'contile_click'
) AS top_sites_contile_click,
COUNTIF(
event_category = 'top_sites'
AND event_name = 'contile_impression'
) AS top_sites_contile_impression,
FROM
`moz-fx-data-shared-prod.fenix.events_unnested`
WHERE
DATE(submission_timestamp)
BETWEEN DATE_SUB(@submission_date, INTERVAL 4 DAY)
AND @submission_date
AND DATE(
DATETIME(LEAST(ping_info.parsed_start_time, ping_info.parsed_end_time), 'UTC')
) = DATE_SUB(@submission_date, INTERVAL 4 DAY)
GROUP BY
ping_date,
client_id,
channel,
country
)
SELECT
@submission_date AS submission_date,
ping_date,
channel,
country,
adjust_network,
is_default_browser,
distribution_id,
/*Logins*/
--autofill_prompt_shown
SUM(autofill_password_detected_logins) AS autofill_password_detected_logins,
COUNT(
DISTINCT
CASE
WHEN autofill_password_detected_logins > 0
THEN client_id
END
) AS autofill_password_detected_users_logins,
SUM(autofill_prompt_shown_logins) AS autofill_prompt_shown_sum_logins,
COUNT(
DISTINCT
CASE
WHEN autofill_prompt_shown_logins > 0
THEN client_id
END
) AS autofill_prompt_shown_users_logins,
--autofill_prompt_dismissed
SUM(autofill_prompt_dismissed_logins) AS autofill_prompt_dismissed_sum_logins,
COUNT(
DISTINCT
CASE
WHEN autofill_prompt_dismissed_logins > 0
THEN client_id
END
) AS autofill_prompt_dismissed_users_logins
--autofilled
,
SUM(autofilled_logins) AS autofilled_sum_logins,
COUNT(DISTINCT CASE WHEN autofilled_logins > 0 THEN client_id END) AS autofilled_users_logins,
--management_add_tapped
SUM(management_add_tapped_logins) AS management_add_tapped_sum_logins,
COUNT(
DISTINCT
CASE
WHEN management_add_tapped_logins > 0
THEN client_id
END
) AS management_add_tapped_users_logins,
--management_card_tapped
SUM(management_tapped_logins) AS management_tapped_sum_logins,
COUNT(
DISTINCT
CASE
WHEN management_tapped_logins > 0
THEN client_id
END
) AS management_tapped_users_logins,
/*Credit Cards*/
--form detected
SUM(form_detected_cc) AS form_detected_sum_cc,
COUNT(DISTINCT CASE WHEN form_detected_cc > 0 THEN client_id END) AS form_detected_users_cc,
--autofill_prompt_shown
SUM(autofill_prompt_shown_cc) AS autofill_prompt_shown_sum_cc,
COUNT(
DISTINCT
CASE
WHEN autofill_prompt_shown_cc > 0
THEN client_id
END
) AS autofill_prompt_shown_users_cc,
--autofill_prompt_expanded
SUM(autofill_prompt_expanded_cc) AS autofill_prompt_expanded_sum_cc,
COUNT(
DISTINCT
CASE
WHEN autofill_prompt_expanded_cc > 0
THEN client_id
END
) AS autofill_prompt_expanded_users_cc,
--autofill_prompt_dismissed
SUM(autofill_prompt_dismissed_cc) AS autofill_prompt_dismissed_sum_cc,
COUNT(
DISTINCT
CASE
WHEN autofill_prompt_dismissed_cc > 0
THEN client_id
END
) AS autofill_prompt_dismissed_users_cc,
--autofilled
SUM(autofilled_cc) AS autofilled_sum_cc,
COUNT(DISTINCT CASE WHEN autofilled_cc > 0 THEN client_id END) AS autofilled_users_cc,
--save_prompt_shown
SUM(save_prompt_shown_cc) AS save_prompt_shown_sum_cc,
COUNT(
DISTINCT
CASE
WHEN save_prompt_shown_cc > 0
THEN client_id
END
) AS save_prompt_shown_users_cc,
--save_prompt_create
SUM(save_prompt_create_cc) AS save_prompt_create_sum_cc,
COUNT(
DISTINCT
CASE
WHEN save_prompt_create_cc > 0
THEN client_id
END
) AS save_prompt_create_users_cc,
--save_prompt_update
SUM(save_prompt_update_cc) AS save_prompt_update_sum_cc,
COUNT(
DISTINCT
CASE
WHEN save_prompt_update_cc > 0
THEN client_id
END
) AS save_prompt_update_users_cc,
--management_add_tapped
SUM(management_add_tapped_cc) AS management_add_tapped_sum_cc,
COUNT(
DISTINCT
CASE
WHEN management_add_tapped_cc > 0
THEN client_id
END
) AS management_add_tapped_users_cc,
--management_card_tapped
SUM(management_tapped_cc) AS management_tapped_sum_cc,
COUNT(
DISTINCT
CASE
WHEN management_tapped_cc > 0
THEN client_id
END
) AS management_tapped_users_cc,
--modified
SUM(modified_cc) AS modified_sum_cc,
COUNT(DISTINCT CASE WHEN modified_cc > 0 THEN client_id END) AS modified_users_cc,
/*Addresses*/
--form detected
SUM(form_detected_address) AS form_detected_sum_address,
COUNT(
DISTINCT
CASE
WHEN form_detected_address > 0
THEN client_id
END
) AS form_detected_users_address,
--autofill_prompt_shown
SUM(autofill_prompt_shown_address) AS autofill_prompt_shown_sum_address,
COUNT(
DISTINCT
CASE
WHEN autofill_prompt_shown_address > 0
THEN client_id
END
) AS autofill_prompt_shown_users_address,
--autofill_prompt_expanded
SUM(autofill_prompt_expanded_address) AS autofill_prompt_expanded_sum_address,
COUNT(
DISTINCT
CASE
WHEN autofill_prompt_expanded_address > 0
THEN client_id
END
) AS autofill_prompt_expanded_users_address,
--autofill_prompt_dismissed
SUM(autofill_prompt_dismissed_address) AS autofill_prompt_dismissed_sum_address,
COUNT(
DISTINCT
CASE
WHEN autofill_prompt_dismissed_address > 0
THEN client_id
END
) AS autofill_prompt_dismissed_users_address,
--autofilled
SUM(autofilled_address) AS autofilled_sum_address,
COUNT(DISTINCT CASE WHEN autofilled_address > 0 THEN client_id END) AS autofilled_users_address,
--management_add_tapped
SUM(management_add_tapped_address) AS management_add_tapped_sum_address,
COUNT(
DISTINCT
CASE
WHEN management_add_tapped_address > 0
THEN client_id
END
) AS management_add_tapped_users_address,
--management_card_tapped
SUM(management_tapped_address) AS management_tapped_sum_address,
COUNT(
DISTINCT
CASE
WHEN management_tapped_address > 0
THEN client_id
END
) AS management_tapped_users_address,
/*Bookmark*/
--copied
SUM(bookmark_copied) AS bookmark_copied,
COUNT(DISTINCT CASE WHEN bookmark_copied > 0 THEN client_id END) AS bookmark_copied_users,
--edited
SUM(bookmark_edited) AS bookmark_edited,
COUNT(DISTINCT CASE WHEN bookmark_edited > 0 THEN client_id END) AS bookmark_edited_users,
--folder_add
SUM(bookmark_folder_add) AS bookmark_folder_add,
COUNT(DISTINCT CASE WHEN bookmark_folder_add > 0 THEN client_id END) AS bookmark_folder_add_users,
--open
SUM(bookmark_open) AS bookmark_open,
COUNT(DISTINCT CASE WHEN bookmark_open > 0 THEN client_id END) AS bookmark_open_users,
--open_all_in_new_tabs
SUM(bookmark_open_all_in_new_tabs) AS bookmark_open_all_in_new_tabs,
COUNT(
DISTINCT
CASE
WHEN bookmark_open_all_in_new_tabs > 0
THEN client_id
END
) AS bookmark_open_all_in_new_tabs_users,
--open_all_in_private_tabs
SUM(bookmark_open_all_in_private_tabs) AS bookmark_open_all_in_private_tabs,
COUNT(
DISTINCT
CASE
WHEN bookmark_open_all_in_private_tabs > 0
THEN client_id
END
) AS bookmark_open_all_in_private_tabs_users,
--open_in_new_tab
SUM(bookmark_open_in_new_tab) AS bookmark_open_in_new_tab,
COUNT(
DISTINCT
CASE
WHEN bookmark_open_in_new_tab > 0
THEN client_id
END
) AS bookmark_open_in_new_tab_users,
--open_in_new_tabs
SUM(bookmark_open_in_new_tabs) AS bookmark_open_in_new_tabs,
COUNT(
DISTINCT
CASE
WHEN bookmark_open_in_new_tabs > 0
THEN client_id
END
) AS bookmark_open_in_new_tabs_users,
--open_in_private_tab
SUM(bookmark_open_in_private_tab) AS bookmark_open_in_private_tab,
COUNT(
DISTINCT
CASE
WHEN bookmark_open_in_private_tab > 0
THEN client_id
END
) AS bookmark_open_in_private_tab_users,
--open_in_private_tabs
SUM(bookmark_open_in_private_tabs) AS bookmark_open_in_private_tabs,
COUNT(
DISTINCT
CASE
WHEN bookmark_open_in_private_tabs > 0
THEN client_id
END
) AS bookmark_open_in_private_tabs_users,
--removed
SUM(bookmark_removed) AS bookmark_removed,
COUNT(DISTINCT CASE WHEN bookmark_removed > 0 THEN client_id END) AS bookmark_removed_users,
--search_icon_tapped
SUM(bookmark_search_icon_tapped) AS bookmark_search_icon_tapped,
COUNT(
DISTINCT
CASE
WHEN bookmark_search_icon_tapped > 0
THEN client_id
END
) AS bookmark_search_icon_tapped_users,
--search_result_tapped
SUM(bookmark_search_result_tapped) AS bookmark_search_result_tapped,
COUNT(
DISTINCT
CASE
WHEN bookmark_search_result_tapped > 0
THEN client_id
END
) AS bookmark_search_result_tapped_users,
--shared
SUM(bookmark_shared) AS bookmark_shared,
COUNT(DISTINCT CASE WHEN bookmark_shared > 0 THEN client_id END) AS bookmark_shared_users,
/*History*/
--opened
SUM(history_opened) AS history_opened,
COUNT(DISTINCT CASE WHEN history_opened > 0 THEN client_id END) AS history_opened_users,
--opened_item
SUM(history_opened_item) AS history_opened_item,
COUNT(DISTINCT CASE WHEN history_opened_item > 0 THEN client_id END) AS history_opened_item_users,
--opened_items_in_new_tabs
SUM(history_opened_items_in_new_tabs) AS history_opened_items_in_new_tabs,
COUNT(
DISTINCT
CASE
WHEN history_opened_items_in_new_tabs > 0
THEN client_id
END
) AS history_opened_items_in_new_tabs_users,
--opened_items_in_private_tabs
SUM(history_opened_items_in_private_tabs) AS history_opened_items_in_private_tabs,
COUNT(
DISTINCT
CASE
WHEN history_opened_items_in_private_tabs > 0
THEN client_id
END
) AS history_opened_items_in_private_tabs_users,
--recent_searches_tapped
SUM(history_recent_searches_tapped) AS history_recent_searches_tapped,
COUNT(
DISTINCT
CASE
WHEN history_recent_searches_tapped > 0
THEN client_id
END
) AS history_recent_searches_tapped_users,
--remove_prompt_cancelled
SUM(history_remove_prompt_cancelled) AS history_remove_prompt_cancelled,
COUNT(
DISTINCT
CASE
WHEN history_remove_prompt_cancelled > 0
THEN client_id
END
) AS history_remove_prompt_cancelled_users,
--remove_prompt_opened
SUM(history_remove_prompt_opened) AS history_remove_prompt_opened,
COUNT(
DISTINCT
CASE
WHEN history_remove_prompt_opened > 0
THEN client_id
END
) AS history_remove_prompt_opened_users,
--removed
SUM(history_removed) AS history_removed,
COUNT(DISTINCT CASE WHEN history_removed > 0 THEN client_id END) AS history_removed_users,
--removed_all
SUM(history_removed_all) AS history_removed_all,
COUNT(DISTINCT CASE WHEN history_removed_all > 0 THEN client_id END) AS history_removed_all_users,
--removed_last_hour
SUM(history_removed_last_hour) AS history_removed_last_hour,
COUNT(
DISTINCT
CASE
WHEN history_removed_last_hour > 0
THEN client_id
END
) AS history_removed_last_hour_users,
--removed_today_and_yesterday
SUM(history_removed_today_and_yesterday) AS history_removed_today_and_yesterday,
COUNT(
DISTINCT
CASE
WHEN history_removed_today_and_yesterday > 0
THEN client_id
END
) AS history_removed_today_and_yesterday_users,
--search_icon_tapped
SUM(history_search_icon_tapped) AS history_search_icon_tapped,
COUNT(
DISTINCT
CASE
WHEN history_search_icon_tapped > 0
THEN client_id
END
) AS history_search_icon_tapped_users,
--search_term_group_open_tab
SUM(history_search_term_group_open_tab) AS history_search_term_group_open_tab,
COUNT(
DISTINCT
CASE
WHEN history_search_term_group_open_tab > 0
THEN client_id
END
) AS history_search_term_group_open_tab_users,
--search_term_group_remove_all
SUM(history_search_term_group_remove_all) AS history_search_term_group_remove_all,
COUNT(
DISTINCT
CASE
WHEN history_search_term_group_remove_all > 0
THEN client_id
END
) AS history_search_term_group_remove_all_users,
--search_term_group_remove_tab
SUM(history_search_term_group_remove_tab) AS history_search_term_group_remove_tab,
COUNT(
DISTINCT
CASE
WHEN history_search_term_group_remove_tab > 0
THEN client_id
END
) AS history_search_term_group_remove_tab_users,
--search_term_group_tapped
SUM(history_search_term_group_tapped) AS history_search_term_group_tapped,
COUNT(
DISTINCT
CASE
WHEN history_search_term_group_tapped > 0
THEN client_id
END
) AS history_search_term_group_tapped_users,
--shared
SUM(history_shared) AS history_shared,
COUNT(DISTINCT CASE WHEN history_shared > 0 THEN client_id END) AS history_shared_users,
/*FxA*/
--sync_failed
SUM(sync_failed) AS sync_failed,
COUNT(DISTINCT CASE WHEN sync_failed > 0 THEN client_id END) AS sync_failed_users,
--sync_account_opened
SUM(sync_account_opened) AS sync_account_opened,
COUNT(DISTINCT CASE WHEN sync_account_opened > 0 THEN client_id END) AS sync_account_opened_users,
--sync_account_send_tab
SUM(sync_account_send_tab) AS sync_account_send_tab,
COUNT(
DISTINCT
CASE
WHEN sync_account_send_tab > 0
THEN client_id
END
) AS sync_account_send_tab_users,
--sync_account_sign_in_to_send_tab
SUM(sync_account_sign_in_to_send_tab) AS sync_account_sign_in_to_send_tab,
COUNT(
DISTINCT
CASE
WHEN sync_account_sign_in_to_send_tab > 0
THEN client_id
END
) AS sync_account_sign_in_to_send_tab_users,
--sync_account_sync_now
SUM(sync_account_sync_now) AS sync_account_sync_now,
COUNT(
DISTINCT
CASE
WHEN sync_account_sync_now > 0
THEN client_id
END
) AS sync_account_sync_now_users,
--sync_auth_closed
SUM(sync_auth_closed) AS sync_auth_closed,
COUNT(DISTINCT CASE WHEN sync_auth_closed > 0 THEN client_id END) AS sync_auth_closed_users,
--sync_auth_opened
SUM(sync_auth_opened) AS sync_auth_opened,
COUNT(DISTINCT CASE WHEN sync_auth_opened > 0 THEN client_id END) AS sync_auth_opened_users,
--sync_auth_other_external
SUM(sync_auth_other_external) AS sync_auth_other_external,
COUNT(
DISTINCT
CASE
WHEN sync_auth_other_external > 0
THEN client_id
END
) AS sync_auth_other_external_users,
--sync_auth_paired
SUM(sync_auth_paired) AS sync_auth_paired,
COUNT(DISTINCT CASE WHEN sync_auth_paired > 0 THEN client_id END) AS sync_auth_paired_users,
--sync_auth_recovered
SUM(sync_auth_recovered) AS sync_auth_recovered,
COUNT(DISTINCT CASE WHEN sync_auth_recovered > 0 THEN client_id END) AS sync_auth_recovered_users,
--sync_auth_scan_pairing
SUM(sync_auth_scan_pairing) AS sync_auth_scan_pairing,
COUNT(
DISTINCT
CASE
WHEN sync_auth_scan_pairing > 0
THEN client_id
END
) AS sync_auth_scan_pairing_users,
--sync_auth_sign_in
SUM(sync_auth_sign_in) AS sync_auth_sign_in,
COUNT(DISTINCT CASE WHEN sync_auth_sign_in > 0 THEN client_id END) AS sync_auth_sign_in_users,
--sync_auth_sign_out
SUM(sync_auth_sign_out) AS sync_auth_sign_out,
COUNT(DISTINCT CASE WHEN sync_auth_sign_out > 0 THEN client_id END) AS sync_auth_sign_out_users,
--sync_auth_sign_up
SUM(sync_auth_sign_up) AS sync_auth_sign_up,
COUNT(DISTINCT CASE WHEN sync_auth_sign_up > 0 THEN client_id END) AS sync_auth_sign_up_users,
--sync_auth_use_email
SUM(sync_auth_use_email) AS sync_auth_use_email,
COUNT(DISTINCT CASE WHEN sync_auth_use_email > 0 THEN client_id END) AS sync_auth_use_email_users,
--sync_auth_use_email_problem
SUM(sync_auth_use_email_problem) AS sync_auth_use_email_problem,
COUNT(
DISTINCT
CASE
WHEN sync_auth_use_email_problem > 0
THEN client_id
END
) AS sync_auth_use_email_problem_users,
/*Privacy*/
--hp_private_mode_tapped
SUM(hp_private_mode_tapped) AS hp_private_mode_tapped,
COUNT(
DISTINCT
CASE
WHEN hp_private_mode_tapped > 0
THEN client_id
END
) AS hp_private_mode_tapped_users,
--tab_tray_private_mode_switched
SUM(tab_tray_private_mode_switched) AS tab_tray_private_mode_switched,
COUNT(
DISTINCT
CASE
WHEN tab_tray_private_mode_switched > 0
THEN client_id
END
) AS tab_tray_private_mode_switched_users,
--app_icon_private_tab_tapped
SUM(app_icon_private_tab_tapped) AS app_icon_private_tab_tapped,
COUNT(
DISTINCT
CASE
WHEN app_icon_private_tab_tapped > 0
THEN client_id
END
) AS app_icon_private_tab_tapped_users,
--tab_tray_private_mode_tapped
SUM(tab_tray_private_mode_tapped) AS tab_tray_private_mode_tapped,
COUNT(
DISTINCT
CASE
WHEN tab_tray_private_mode_tapped > 0
THEN client_id
END
) AS tab_tray_private_mode_tapped_users,
--etp_setting_changed
SUM(etp_setting_changed) AS etp_setting_changed,
COUNT(DISTINCT CASE WHEN etp_setting_changed > 0 THEN client_id END) AS etp_setting_changed_users,
--etp_settings
SUM(etp_settings) AS etp_settings,
COUNT(DISTINCT CASE WHEN etp_settings > 0 THEN client_id END) AS etp_settings_users,
--etp_shield
SUM(etp_shield) AS etp_shield,
COUNT(DISTINCT CASE WHEN etp_shield > 0 THEN client_id END) AS etp_shield_users,
--etp_tracker_list
SUM(etp_tracker_list) AS etp_tracker_list,
COUNT(DISTINCT CASE WHEN etp_tracker_list > 0 THEN client_id END) AS etp_tracker_list_users,
/*Default browser*/
--default_browser_changed
COUNT(
DISTINCT
CASE
WHEN default_browser_changed > 0
THEN client_id
END
) AS default_browser_changed_users,
SUM(default_browser_changed) AS default_browser_changed,
/*Notification*/
--re_engagement_notif_shown
SUM(re_engagement_notif_shown) AS re_engagement_notif_shown,
COUNT(
DISTINCT
CASE
WHEN re_engagement_notif_shown > 0
THEN client_id
END
) AS re_engagement_notif_shown_users,
--re_engagement_notif_tapped
SUM(re_engagement_notif_tapped) AS re_engagement_notif_tapped,
COUNT(
DISTINCT
CASE
WHEN re_engagement_notif_tapped > 0
THEN client_id
END
) AS re_engagement_notif_tapped_users,
/*Customize Home*/
--app_menu_customize_homepage
SUM(app_menu_customize_homepage) AS app_menu_customize_homepage,
COUNT(
DISTINCT
CASE
WHEN app_menu_customize_homepage > 0
THEN client_id
END
) AS app_menu_customize_homepage_users,
--home_page_customize_home_clicked
SUM(home_page_customize_home_clicked) AS home_page_customize_home_clicked,
COUNT(
DISTINCT
CASE
WHEN home_page_customize_home_clicked > 0
THEN client_id
END
) AS home_page_customize_home_clicked_users,
/*Sponsored Tiles*/
--top_sites_contile_click
SUM(top_sites_contile_click) AS top_sites_contile_click,
COUNT(
DISTINCT
CASE
WHEN top_sites_contile_click > 0
THEN client_id
END
) AS top_sites_contile_click_users,
--top_sites_contile_impression
SUM(top_sites_contile_impression) AS top_sites_contile_impression,
COUNT(
DISTINCT
CASE
WHEN top_sites_contile_impression > 0
THEN client_id
END
) AS top_sites_contile_impression_users,
FROM
event_ping_clients_feature_usage
INNER JOIN
baseline_clients
USING (ping_date, client_id, channel, country)
LEFT JOIN
client_attribution
USING (client_id)
LEFT JOIN
default_browser
USING (ping_date, client_id, channel, country)
GROUP BY
submission_date,
ping_date,
channel,
country,
adjust_network,
is_default_browser,
distribution_id