Skip to content

Conversation

@kwindau
Copy link
Contributor

@kwindau kwindau commented Nov 12, 2025

Description

This PR creates the new table & corresponding view:

  • ?
  • ?

Related Tickets & Documents

Reviewer, please follow this checklist

@kwindau kwindau changed the title Deng 9432 cfs 28 days later feat(DENG-9432): Create firefox_desktop.clients_first_seen_28_days_later Nov 12, 2025
@dataops-ci-bot

This comment has been minimized.

@dataops-ci-bot

This comment has been minimized.

@dataops-ci-bot
Copy link

Integration report for "work in progress"

sql.diff

Click to expand!
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/dags/bqetl_analytics_tables.py /tmp/workspace/generated-sql/dags/bqetl_analytics_tables.py
--- /tmp/workspace/main-generated-sql/dags/bqetl_analytics_tables.py	2025-11-19 21:39:02.000000000 +0000
+++ /tmp/workspace/generated-sql/dags/bqetl_analytics_tables.py	2025-11-19 21:39:03.000000000 +0000
@@ -347,6 +347,18 @@
         pool="DATA_ENG_EXTERNALTASKSENSOR",
     )
 
+    wait_for_bigeye__firefox_desktop_derived__baseline_clients_last_seen__v1 = ExternalTaskSensor(
+        task_id="wait_for_bigeye__firefox_desktop_derived__baseline_clients_last_seen__v1",
+        external_dag_id="bqetl_glean_usage",
+        external_task_id="firefox_desktop.bigeye__firefox_desktop_derived__baseline_clients_last_seen__v1",
+        check_existence=True,
+        mode="reschedule",
+        poke_interval=datetime.timedelta(minutes=5),
+        allowed_states=ALLOWED_STATES,
+        failed_states=FAILED_STATES,
+        pool="DATA_ENG_EXTERNALTASKSENSOR",
+    )
+
     wait_for_bigeye__firefox_desktop_derived__baseline_clients_daily__v1 = ExternalTaskSensor(
         task_id="wait_for_bigeye__firefox_desktop_derived__baseline_clients_daily__v1",
         external_dag_id="bqetl_glean_usage",
@@ -703,6 +715,24 @@
         parameters=["submission_date:DATE:{{ds}}"],
     )
 
+    firefox_desktop_derived__clients_first_seen_28_days_later__v1 = bigquery_etl_query(
+        task_id="firefox_desktop_derived__clients_first_seen_28_days_later__v1",
+        destination_table='clients_first_seen_28_days_later_v1${{ macros.ds_format(macros.ds_add(ds, -27), "%Y-%m-%d", "%Y%m%d") }}',
+        dataset_id="firefox_desktop_derived",
+        project_id="moz-fx-data-shared-prod",
+        owner="[email protected]",
+        email=[
+            "[email protected]",
+            "[email protected]",
+            "[email protected]",
+            "[email protected]",
+            "[email protected]",
+        ],
+        date_partition_parameter=None,
+        depends_on_past=True,
+        parameters=["submission_date:DATE:{{ds}}"],
+    )
+
     firefox_desktop_derived__desktop_dau_distribution_id_history__v1 = (
         bigquery_etl_query(
             task_id="firefox_desktop_derived__desktop_dau_distribution_id_history__v1",
@@ -887,6 +917,10 @@
         wait_for_fenix_derived__new_profile_activation__v1
     )
 
+    firefox_desktop_derived__clients_first_seen_28_days_later__v1.set_upstream(
+        wait_for_bigeye__firefox_desktop_derived__baseline_clients_last_seen__v1
+    )
+
     firefox_desktop_derived__desktop_dau_distribution_id_history__v1.set_upstream(
         wait_for_bigeye__firefox_desktop_derived__baseline_clients_daily__v1
     )
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/dags/bqetl_glean_usage.py /tmp/workspace/generated-sql/dags/bqetl_glean_usage.py
--- /tmp/workspace/main-generated-sql/dags/bqetl_glean_usage.py	2025-11-19 21:39:08.000000000 +0000
+++ /tmp/workspace/generated-sql/dags/bqetl_glean_usage.py	2025-11-19 21:39:12.000000000 +0000
@@ -788,6 +788,12 @@
         )
 
         ExternalTaskMarker(
+            task_id="bqetl_analytics_tables__wait_for_bigeye__firefox_desktop_derived__baseline_clients_last_seen__v1",
+            external_dag_id="bqetl_analytics_tables",
+            external_task_id="wait_for_bigeye__firefox_desktop_derived__baseline_clients_last_seen__v1",
+        )
+
+        ExternalTaskMarker(
             task_id="bqetl_desktop_engagement_model__wait_for_bigeye__firefox_desktop_derived__baseline_clients_last_seen__v1",
             external_dag_id="bqetl_desktop_engagement_model",
             external_task_id="wait_for_bigeye__firefox_desktop_derived__baseline_clients_last_seen__v1",
Only in /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop: clients_first_seen_28_days_later
Only in /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived: clients_first_seen_28_days_later_v1
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/clients_first_seen_28_days_later/metadata.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/clients_first_seen_28_days_later/metadata.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/clients_first_seen_28_days_later/metadata.yaml	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/clients_first_seen_28_days_later/metadata.yaml	2025-11-19 21:32:39.000000000 +0000
@@ -0,0 +1,17 @@
+friendly_name: Clients First Seen 28 Days Later
+description: |-
+  Measures retention of client cohorts 28 days after their first seen date, broken
+  out by different information, like attribution information, OS, country, ISP, etc.
+owners:
+- [email protected]
+labels:
+  owner: kwindau
+  owner1: kwindau
+workgroup_access:
+- role: roles/bigquery.dataViewer
+  members:
+  - workgroup:mozilla-confidential
+references:
+  view.sql:
+  - moz-fx-data-shared-prod.firefox_desktop_derived.clients_first_seen_28_days_later_v1
+require_column_descriptions: false
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/clients_first_seen_28_days_later/view.sql /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/clients_first_seen_28_days_later/view.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/clients_first_seen_28_days_later/view.sql	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/clients_first_seen_28_days_later/view.sql	2025-11-19 21:28:19.000000000 +0000
@@ -0,0 +1,24 @@
+CREATE OR REPLACE VIEW
+  `moz-fx-data-shared-prod.firefox_desktop.clients_first_seen_28_days_later`
+AS
+SELECT
+  cfs28.*,
+  `moz-fx-data-shared-prod`.udf.funnel_derived_clients(
+    normalized_os,
+    first_seen_date,
+    app_build_id,
+    attribution_source,
+    attribution_ua,
+    startup_profile_selection_reason,
+    distribution_id
+  ) AS funnel_derived,
+  `moz-fx-data-shared-prod`.udf.distribution_model_clients(distribution_id) AS distribution_model,
+  `moz-fx-data-shared-prod`.udf.partner_org_clients(distribution_id) AS partner_org,
+  IF(
+    LOWER(IFNULL(isp_name, '')) <> "browserstack"
+    AND LOWER(IFNULL(distribution_id, '')) <> "mozillaonline",
+    TRUE,
+    FALSE
+  ) AS is_desktop
+FROM
+  `moz-fx-data-shared-prod.firefox_desktop_derived.clients_first_seen_28_days_later_v1` cfs28
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/clients_first_seen_28_days_later_v1/metadata.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/clients_first_seen_28_days_later_v1/metadata.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/clients_first_seen_28_days_later_v1/metadata.yaml	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/clients_first_seen_28_days_later_v1/metadata.yaml	2025-11-19 21:32:40.000000000 +0000
@@ -0,0 +1,38 @@
+friendly_name: Clients First Seen 28 Days Later
+description: |-
+  Measures retention of client cohorts 28 days after their first seen date, broken
+  out by different information, like attribution information, OS, country, ISP, etc.
+owners:
+- [email protected]
+- [email protected]
+labels:
+  incremental: true
+  owner1: kwindau
+  dag: bqetl_analytics_tables
+  owner2: shong
+scheduling:
+  dag_name: bqetl_analytics_tables
+  date_partition_offset: -27
+  date_partition_parameter: null
+  depends_on_past: true
+  parameters:
+  - submission_date:DATE:{{ds}}
+bigquery:
+  time_partitioning:
+    type: day
+    field: first_seen_date
+    require_partition_filter: true
+    expiration_days: null
+  range_partitioning: null
+  clustering:
+    fields:
+    - sample_id
+workgroup_access:
+- role: roles/bigquery.dataViewer
+  members:
+  - workgroup:mozilla-confidential
+references:
+  query.sql:
+  - moz-fx-data-shared-prod.firefox_desktop.baseline_clients_last_seen
+  - moz-fx-data-shared-prod.firefox_desktop.clients_first_seen
+require_column_descriptions: false
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/clients_first_seen_28_days_later_v1/query.sql /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/clients_first_seen_28_days_later_v1/query.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/clients_first_seen_28_days_later_v1/query.sql	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/clients_first_seen_28_days_later_v1/query.sql	2025-11-19 21:28:19.000000000 +0000
@@ -0,0 +1,122 @@
+WITH clients_first_seen_28_days_ago AS (
+  SELECT
+    client_id,
+    sample_id,
+    baseline_first_seen_date AS first_seen_date,
+    --second_seen_date, --not available yet
+    baseline_architecture AS architecture,
+    --app_build_id, --not available yet
+    baseline_normalized_app_name AS app_name,
+    baseline_locale AS locale,
+    --platform_version, --not available yet
+    --vendor, --not available yet
+    baseline_app_display_version AS app_version,
+    metric_xpcom_abi AS xpcom_abi,
+    baseline_distribution_id AS distribution_id,
+    baseline_distribution_version AS partner_distribution_version,
+    baseline_distributor AS partner_distributor,
+    baseline_distributor_channel AS partner_distributor_channel,
+    baseline_distribution_partner_id AS partner_id,
+    baseline_attribution.campaign AS attribution_campaign,
+    baseline_attribution.content AS attribution_content,
+    baseline_attribution_dltoken AS attribution_dltoken,
+    baseline_attribution_dlsource AS attribution_dlsource,
+    attribution_experiment,
+    baseline_attribution.medium AS attribution_medium,
+    attribution_source,
+    baseline_attribution_ua AS attribution_ua,
+    baseline_attribution_variation AS attribution_variation,
+    --engine_data_load_path, --not available yet
+    engine_data_name,
+    --engine_data_origin, --not available yet
+    --engine_data_submission_url, --not available yet
+    metric_apple_model_id AS apple_model_id,
+    db_version,
+    subdivision1,
+    baseline_isp AS isp_name,
+    baseline_normalized_channel AS normalized_channel,
+    baseline_country AS country,
+    baseline_normalized_os AS normalized_os,
+    baseline_normalized_os_version AS normalized_os_version,
+    baseline_startup_profile_selection_reason_first AS startup_profile_selection_reason,
+    metric_installation_first_seen_admin_user AS installation_first_seen_admin_user,
+    metric_installation_first_seen_default_path AS installation_first_seen_default_path,
+    metric_installation_first_seen_failure_reason AS installation_first_seen_failure_reason,
+    metric_installation_first_seen_from_msi AS installation_first_seen_from_msi,
+    metric_installation_first_seen_install_existed AS installation_first_seen_install_existed,
+    metric_installation_first_seen_installer_type AS installation_first_seen_installer_type,
+    metric_installation_first_seen_other_inst AS installation_first_seen_other_inst,
+    metric_installation_first_seen_other_msix_inst AS installation_first_seen_other_msix_inst,
+    metric_installation_first_seen_profdir_existed AS installation_first_seen_profdir_existed,
+    metric_installation_first_seen_silent AS installation_first_seen_silent,
+    metric_installation_first_seen_version AS installation_first_seen_version,
+    --os,
+    --os_version,
+    baseline_windows_build_number AS windows_build_number,
+    baseline_windows_version AS windows_version,
+    --metadata,
+    baseline_legacy_telemetry_profile_group_id AS profile_group_id
+  FROM
+    `moz-fx-data-shared-prod.firefox_desktop.clients_first_seen`
+  WHERE
+    baseline_first_seen_date = DATE_SUB(@submission_date, INTERVAL 27 day)
+),
+clients_first_seen_28_days_ago_with_days_seen AS (
+  SELECT
+    clients_first_seen_28_days_ago.*,
+    cls.days_seen_bits,
+    cls.days_visited_1_uri_bits,
+    cls.days_interacted_bits,
+  FROM
+    clients_first_seen_28_days_ago
+  LEFT JOIN
+    `moz-fx-data-shared-prod.firefox_desktop.baseline_clients_last_seen` cls
+    ON clients_first_seen_28_days_ago.client_id = cls.client_id
+    AND cls.submission_date = @submission_date
+)
+SELECT
+  * REPLACE (
+    COALESCE(
+      days_seen_bits,
+      mozfun.bits28.from_string('0000000000000000000000000000')
+    ) AS days_seen_bits,
+    COALESCE(
+      days_visited_1_uri_bits,
+      mozfun.bits28.from_string('0000000000000000000000000000')
+    ) AS days_visited_1_uri_bits,
+    COALESCE(
+      days_interacted_bits,
+      mozfun.bits28.from_string('0000000000000000000000000000')
+    ) AS days_interacted_bits
+  ),
+  COALESCE(
+    BIT_COUNT(mozfun.bits28.from_string('1111111000000000000000000000') & days_seen_bits) >= 5,
+    FALSE
+  ) AS activated,
+  COALESCE(
+    BIT_COUNT(mozfun.bits28.from_string('0111111111111111111111111111') & days_seen_bits) > 0,
+    FALSE
+  ) AS returned_second_day,
+  COALESCE(
+    BIT_COUNT(
+      mozfun.bits28.from_string(
+        '0111111111111111111111111111'
+      ) & days_visited_1_uri_bits & days_interacted_bits
+    ) > 0,
+    FALSE
+  ) AS qualified_second_day,
+  COALESCE(
+    BIT_COUNT(mozfun.bits28.from_string('0000000000000000000001111111') & days_seen_bits) > 0,
+    FALSE
+  ) AS retained_week4,
+  COALESCE(
+    BIT_COUNT(
+      mozfun.bits28.from_string(
+        '0000000000000000000001111111'
+      ) & days_visited_1_uri_bits & days_interacted_bits
+    ) > 0,
+    FALSE
+  ) AS qualified_week4,
+  @submission_date AS submission_date
+FROM
+  clients_first_seen_28_days_ago_with_days_seen
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/clients_first_seen_28_days_later_v1/schema.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/clients_first_seen_28_days_later_v1/schema.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/clients_first_seen_28_days_later_v1/schema.yaml	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/clients_first_seen_28_days_later_v1/schema.yaml	2025-11-19 21:28:19.000000000 +0000
@@ -0,0 +1,298 @@
+fields:
+- description: Unique ID for the client installation.
+  name: client_id
+  type: STRING
+  mode: NULLABLE
+- description: Sample ID to limit query results during an analysis.
+  name: sample_id
+  type: INTEGER
+  mode: NULLABLE
+- description: Date when the server first received either of the 3 pings from this client.
+  name: first_seen_date
+  type: DATE
+  mode: NULLABLE
+- description: Second date when the server received either of the 3 pings from this client.
+  name: second_seen_date
+  type: DATE
+  mode: NULLABLE
+- description: The application architecture reported by the client.
+  name: architecture
+  type: STRING
+  mode: NULLABLE
+- description: The application build reported by the client.
+  name: app_build_id
+  type: STRING
+  mode: NULLABLE
+- description: The name of the installed app/browser.
+  name: app_name
+  type: STRING
+  mode: NULLABLE
+- description: The best locale that the application should be localized to.
+  name: locale
+  type: STRING
+  mode: NULLABLE
+- description: The appliction platform version reported by the client.
+  name: platform_version
+  type: STRING
+  mode: NULLABLE
+- description: The application vendor.
+  name: vendor
+  type: STRING
+  mode: NULLABLE
+- description: The application version.
+  name: app_version
+  type: STRING
+  mode: NULLABLE
+- description: |-
+    A string tag identifying the binary ABI of the current processor and compiler vtable, as taken from the TARGET_XPCOM_ABI configure variable.
+    It may not be available on all platforms, especially unusual processor or compiler combinations. The result takes the form <processor>-<compilerABI>,
+    eg. x86-msvc, ppc-gcc3. This value should almost always be used in combination with the OS.
+  name: xpcom_abi
+  type: STRING
+  mode: NULLABLE
+- description: The document ID specified in the URI when the client sent this message.
+  name: document_id
+  type: STRING
+  mode: NULLABLE
+- description: The value of the `distribution.id` preference that identifies the Firefox distribution.
+  name: distribution_id
+  type: STRING
+  mode: NULLABLE
+- description: The value selected for the `distribution.version` preference in the Partner Distribution Configuration File.
+  name: partner_distribution_version
+  type: STRING
+  mode: NULLABLE
+- description: The value of the `app.distributor` preference in the Partner Distribution Configuration File.
+  name: partner_distributor
+  type: STRING
+  mode: NULLABLE
+- description: The value of the `app.distributor.channel` preference in the Partner Distribution Configuration File.
+  name: partner_distributor_channel
+  type: STRING
+  mode: NULLABLE
+- description: The value of the `mozilla.partner.id` preference in the Partner Distribution Configuration File.
+  name: partner_id
+  type: STRING
+  mode: NULLABLE
+- description: Identifier of the particular campaign that led to the download of the product.
+  name: attribution_campaign
+  type: STRING
+  mode: NULLABLE
+- description: Identifier to indicate the particular link within a campaign.
+  name: attribution_content
+  type: STRING
+  mode: NULLABLE
+- description: Unique token created at Firefox download time.
+  name: attribution_dltoken
+  type: STRING
+  mode: NULLABLE
+- description: Identifier that indicates where installations of Firefox originated.
+  name: attribution_dlsource
+  type: STRING
+  mode: NULLABLE
+- description: Funnel experiment parameters.
+  name: attribution_experiment
+  type: STRING
+  mode: NULLABLE
+- description: Category of the source, such as 'organic' for a search engine.
+  name: attribution_medium
+  type: STRING
+  mode: NULLABLE
+- description: Referring partner domain, when install happens via a known partner.
+  name: attribution_source
+  type: STRING
+  mode: NULLABLE
+- description: Client's user agent, which corresponds to the web browser used to download the Firefox installer.
+  name: attribution_ua
+  type: STRING
+  mode: NULLABLE
+- description: Variation of the identifier that indicates where installations of Firefox originated.
+  name: attribution_variation
+  type: STRING
+  mode: NULLABLE
+- description: The anonymized path of the engine xml file. For details on the components refer to the metadata for telemetry.new_profile.
+  name: engine_data_load_path
+  type: STRING
+  mode: NULLABLE
+- description: The name of the default search engine.
+  name: engine_data_name
+  type: STRING
+  mode: NULLABLE
+- description: 'The origin of the search engine. The value will be default for engines that are built-in or from distribution partners,
+  verified for user-installed engines with valid verification hashes, unverified for non-default engines without verification hash,
+  and invalid for engines with broken verification hashes.'
+  name: engine_data_origin
+  type: STRING
+  mode: NULLABLE
+- description: The HTTP url we would use to search. For privacy, we don’t record this for user-installed engines.
+  name: engine_data_submission_url
+  type: STRING
+  mode: NULLABLE
+- description: The model IDs for Apple desktop devices. Applies to Mac only.
+  name: apple_model_id
+  type: STRING
+  mode: NULLABLE
+- description: City retrieved as a result of a geographic lookup based on the client's IP address.
+  name: city
+  type: STRING
+  mode: NULLABLE
+- description: The specific geo database version used.
+  name: db_version
+  type: STRING
+  mode: NULLABLE
+- description: First major country subdivision, typically a state, province, or county.
+  name: subdivision1
+  type: STRING
+  mode: NULLABLE
+- description: The name of the ISP.
+  name: isp_name
+  type: STRING
+  mode: NULLABLE
+- description: The Firefox channel, set to Other for unrecognized channel names.
+  name: normalized_channel
+  type: STRING
+  mode: NULLABLE
+- description: The ISO 3166-1 alpha-2 country code.
+  name: country
+  type: STRING
+  mode: NULLABLE
+- description: The OS name, set to Other for unrecognized OS names.
+  name: normalized_os
+  type: STRING
+  mode: NULLABLE
+- description: The OS version.
+  name: normalized_os_version
+  type: STRING
+  mode: NULLABLE
+- description: 'How the profile was selected during startup. Possible reasons are:
+   unknown: Generally should not happen, set as a default in case no other reason occurred. profile-manager: The profile was selected by the profile manager.
+   profile-reset: The profile was selected for reset, normally this would mean a restart. restart: The user restarted the application,
+   the same profile as previous will be used. argument-profile: The profile was selected by the --profile command line argument.
+   argument-p: The profile was selected by the -p command line argument. firstrun-claimed-default: A first run of a dedicated profiles build chose the old
+   default profile to be the default for this install. firstrun-skipped-default: A first run of a dedicated profiles build skipped over the old default profile
+   and created a new profile. restart-claimed-default: A first run of a dedicated profiles build after a restart chose the old default.'
+  name: startup_profile_selection_reason
+  type: STRING
+  mode: NULLABLE
+- description: First seen admin user at installation
+  name: installation_first_seen_admin_user
+  type: BOOLEAN
+  mode: NULLABLE
+- description: First seen default path at installation
+  name: installation_first_seen_default_path
+  type: BOOLEAN
+  mode: NULLABLE
+- description: First seen failure reason at installation
+  name: installation_first_seen_failure_reason
+  type: STRING
+  mode: NULLABLE
+- description: First seen from MSI at installation
+  name: installation_first_seen_from_msi
+  type: BOOLEAN
+  mode: NULLABLE
+- description: First seen install exists at installation
+  name: installation_first_seen_install_existed
+  type: BOOLEAN
+  mode: NULLABLE
+- description: First seen installer type at installation
+  name: installation_first_seen_installer_type
+  type: STRING
+  mode: NULLABLE
+- description: First seen other inst at installation
+  name: installation_first_seen_other_inst
+  type: BOOLEAN
+  mode: NULLABLE
+- description: First seen other MSIX inst at installation
+  name: installation_first_seen_other_msix_inst
+  type: BOOLEAN
+  mode: NULLABLE
+- description: First seen profdir existed at installation
+  name: installation_first_seen_profdir_existed
+  type: BOOLEAN
+  mode: NULLABLE
+- description: First seen silent at installation
+  name: installation_first_seen_silent
+  type: BOOLEAN
+  mode: NULLABLE
+- description: First seen version at installation
+  name: installation_first_seen_version
+  type: STRING
+  mode: NULLABLE
+- description: OS name - not normalized_os
+  name: os
+  type: STRING
+  mode: NULLABLE
+- description: OS version - not normalized
+  name: os_version
+  type: STRING
+  mode: NULLABLE
+- description: Windows build number
+  name: windows_build_number
+  type: FLOAT64
+  mode: NULLABLE
+- description: Combo of os, os_version, windows_build_number, NULL if not windows
+  name: windows_version
+  type: STRING
+  mode: NULLABLE
+- description: A collection of pings - which ping is reported in the table as well as a record of all other
+    pings in the data for this one particular client
+  name: metadata
+  type: RECORD
+  mode: NULLABLE
+  fields:
+  - description: Ping that reported the first seen date (main, first_shutdown or new_profile).
+    name: first_seen_date_source_ping
+    type: STRING
+    mode: NULLABLE
+  - description: Indicates wether the client ever reported a main ping.
+    name: reported_main_ping
+    type: BOOLEAN
+    mode: NULLABLE
+  - description: Indicates wether the client ever reported a new profile ping.
+    name: reported_new_profile_ping
+    type: BOOLEAN
+    mode: NULLABLE
+  - description: Indicates wether the client ever reported a first shutdown ping.
+    name: reported_shutdown_ping
+    type: BOOLEAN
+    mode: NULLABLE
+- name: profile_group_id
+  type: STRING
+  mode: NULLABLE
+  description: A UUID identifying the profile's group on a single device and allowing user-oriented correlation of data
+- description: Days seen in bits
+  name: days_seen_bits
+  type: INTEGER
+  mode: NULLABLE
+- description: Days visited 1 in uri bits
+  name: days_visited_1_uri_bits
+  type: INTEGER
+  mode: NULLABLE
+- description: Days interacted in bits
+  name: days_interacted_bits
+  type: INTEGER
+  mode: NULLABLE
+- description: Is client activated, true or false
+  name: activated
+  type: BOOLEAN
+  mode: NULLABLE
+- description: Did client return second day
+  name: returned_second_day
+  type: BOOLEAN
+  mode: NULLABLE
+- description: Is client qualified second day
+  name: qualified_second_day
+  type: BOOLEAN
+  mode: NULLABLE
+- description: Is client retained week 4
+  name: retained_week4
+  type: BOOLEAN
+  mode: NULLABLE
+- description: Is client qualified week 4
+  name: qualified_week4
+  type: BOOLEAN
+  mode: NULLABLE
+- description: Submission date
+  name: submission_date
+  type: DATE
+  mode: NULLABLE

Link to full diff

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants