Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

initial add of query.sql WIP for ga downloads_with_attr_v3 #5397

Draft
wants to merge 7 commits into
base: main
Choose a base branch
from

Conversation

Marlene-M-Hirose
Copy link
Contributor

@Marlene-M-Hirose Marlene-M-Hirose commented Apr 19, 2024

Checklist for reviewer:

  • Commits should reference a bug or github issue, if relevant (if a bug is referenced, the pull request should include the bug number in the title).
  • If the PR comes from a fork, trigger integration CI tests by running the Push to upstream workflow and provide the <username>:<branch> of the fork as parameter. The parameter will also show up
    in the logs of the manual-trigger-required-for-fork CI task together with more detailed instructions.
  • If adding a new field to a query, ensure that the schema and dependent downstream schemas have been updated.
  • When adding a new derived dataset, ensure that data is not available already (fully or partially) and recommend extending an existing dataset in favor of creating new ones. Data can be available in the bigquery-etl repository, looker-hub or in looker-spoke-default.

For modifications to schemas in restricted namespaces (see CODEOWNERS):

┆Issue is synchronized with this Jira Task

@dataops-ci-bot

This comment has been minimized.

@dataops-ci-bot

This comment has been minimized.

@dataops-ci-bot

This comment has been minimized.

@dataops-ci-bot

This comment has been minimized.

@dataops-ci-bot

This comment has been minimized.

Copy link
Contributor

@kwindau kwindau left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

would simplify the group by and exclude empty strings/ (not set) but besides that LGTM

@dataops-ci-bot
Copy link

Integration report for "add in normalized_os, normalized_browser, normalized_browser_major_version, normalized_country_code"

sql.diff

Click to expand!
Only in /tmp/workspace/main-generated-sql/dags/: bqetl_acoustic_suppression_list.py
Only in /tmp/workspace/main-generated-sql/dags/: bqetl_braze.py
Only in /tmp/workspace/main-generated-sql/dags/: bqetl_braze_currents.py
Only in /tmp/workspace/main-generated-sql/dags/: bqetl_data_observability_test_data_copy.py
Only in /tmp/workspace/main-generated-sql/dags/: bqetl_desktop_engagement_model.py
Only in /tmp/workspace/main-generated-sql/dags/: bqetl_marketing_suppression_list.py
Only in /tmp/workspace/main-generated-sql/dags/: bqetl_pageload_v1.py
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/dags/bqetl_acoustic_contact_export.py /tmp/workspace/generated-sql/dags/bqetl_acoustic_contact_export.py
--- /tmp/workspace/main-generated-sql/dags/bqetl_acoustic_contact_export.py	2024-04-29 17:41:36.000000000 +0000
+++ /tmp/workspace/generated-sql/dags/bqetl_acoustic_contact_export.py	2024-04-29 17:54:45.000000000 +0000
@@ -22,7 +22,7 @@
 
 #### Owner
 
-leli@mozilla.com
+kik@mozilla.com
 
 #### Tags
 
@@ -32,10 +32,10 @@
 
 
 default_args = {
-    "owner": "leli@mozilla.com",
-    "start_date": datetime.datetime(2024, 4, 3, 0, 0),
+    "owner": "kik@mozilla.com",
+    "start_date": datetime.datetime(2021, 3, 1, 0, 0),
     "end_date": None,
-    "email": ["telemetry-alerts@mozilla.com", "leli@mozilla.com"],
+    "email": ["telemetry-alerts@mozilla.com", "kik@mozilla.com"],
     "depends_on_past": False,
     "retry_delay": datetime.timedelta(seconds=300),
     "email_on_failure": True,
@@ -65,58 +65,42 @@
         pool="DATA_ENG_EXTERNALTASKSENSOR",
     )
 
-    acoustic_derived__contact__v1 = bigquery_etl_query(
-        task_id="acoustic_derived__contact__v1",
+    acoustic__contact__v1 = bigquery_etl_query(
+        task_id="acoustic__contact__v1",
         destination_table="contact_v1",
-        dataset_id="acoustic_derived",
-        project_id="moz-fx-data-shared-prod",
-        owner="leli@mozilla.com",
-        email=["leli@mozilla.com", "telemetry-alerts@mozilla.com"],
+        dataset_id="acoustic",
+        project_id="moz-fx-data-marketing-prod",
+        owner="kik@mozilla.com",
+        email=["kik@mozilla.com", "telemetry-alerts@mozilla.com"],
         date_partition_parameter="submission_date",
         depends_on_past=False,
     )
 
-    acoustic_derived__contact_current_snapshot__v1 = bigquery_etl_query(
-        task_id="acoustic_derived__contact_current_snapshot__v1",
+    acoustic__contact_current_snapshot__v1 = bigquery_etl_query(
+        task_id="acoustic__contact_current_snapshot__v1",
         destination_table="contact_current_snapshot_v1",
-        dataset_id="acoustic_derived",
-        project_id="moz-fx-data-shared-prod",
-        owner="leli@mozilla.com",
-        email=["leli@mozilla.com", "telemetry-alerts@mozilla.com"],
+        dataset_id="acoustic",
+        project_id="moz-fx-data-marketing-prod",
+        owner="kik@mozilla.com",
+        email=["kik@mozilla.com", "telemetry-alerts@mozilla.com"],
         date_partition_parameter=None,
         depends_on_past=False,
         task_concurrency=1,
     )
 
-    acoustic_external__contact_raw__v1 = bigquery_etl_query(
-        task_id="acoustic_external__contact_raw__v1",
+    acoustic__contact_raw__v1 = bigquery_etl_query(
+        task_id="acoustic__contact_raw__v1",
         destination_table="contact_raw_v1",
-        dataset_id="acoustic_external",
-        project_id="moz-fx-data-shared-prod",
-        owner="leli@mozilla.com",
-        email=["leli@mozilla.com", "telemetry-alerts@mozilla.com"],
+        dataset_id="acoustic",
+        project_id="moz-fx-data-marketing-prod",
+        owner="kik@mozilla.com",
+        email=["kik@mozilla.com", "telemetry-alerts@mozilla.com"],
         date_partition_parameter="submission_date",
         depends_on_past=False,
     )
 
-    with TaskGroup(
-        "acoustic_external__contact_raw__v1_external",
-    ) as acoustic_external__contact_raw__v1_external:
-        ExternalTaskMarker(
-            task_id="bqetl_braze__wait_for_acoustic_external__contact_raw__v1",
-            external_dag_id="bqetl_braze",
-            external_task_id="wait_for_acoustic_external__contact_raw__v1",
-            execution_date="{{ (execution_date - macros.timedelta(days=-1, seconds=82800)).isoformat() }}",
-        )
-
-        acoustic_external__contact_raw__v1_external.set_upstream(
-            acoustic_external__contact_raw__v1
-        )
+    acoustic__contact__v1.set_upstream(acoustic__contact_raw__v1)
 
-    acoustic_derived__contact__v1.set_upstream(acoustic_external__contact_raw__v1)
-
-    acoustic_derived__contact_current_snapshot__v1.set_upstream(
-        acoustic_derived__contact__v1
-    )
+    acoustic__contact_current_snapshot__v1.set_upstream(acoustic__contact__v1)
 
-    acoustic_external__contact_raw__v1.set_upstream(wait_for_fivetran_load_completed)
+    acoustic__contact_raw__v1.set_upstream(wait_for_fivetran_load_completed)
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/dags/bqetl_acoustic_raw_recipient_export.py /tmp/workspace/generated-sql/dags/bqetl_acoustic_raw_recipient_export.py
--- /tmp/workspace/main-generated-sql/dags/bqetl_acoustic_raw_recipient_export.py	2024-04-29 17:41:36.000000000 +0000
+++ /tmp/workspace/generated-sql/dags/bqetl_acoustic_raw_recipient_export.py	2024-04-29 17:54:45.000000000 +0000
@@ -22,7 +22,7 @@
 
 #### Owner
 
-leli@mozilla.com
+kik@mozilla.com
 
 #### Tags
 
@@ -32,10 +32,10 @@
 
 
 default_args = {
-    "owner": "leli@mozilla.com",
-    "start_date": datetime.datetime(2024, 4, 3, 0, 0),
+    "owner": "kik@mozilla.com",
+    "start_date": datetime.datetime(2022, 3, 1, 0, 0),
     "end_date": None,
-    "email": ["telemetry-alerts@mozilla.com", "leli@mozilla.com"],
+    "email": ["telemetry-alerts@mozilla.com", "kik@mozilla.com"],
     "depends_on_past": False,
     "retry_delay": datetime.timedelta(seconds=300),
     "email_on_failure": True,
@@ -65,32 +65,28 @@
         pool="DATA_ENG_EXTERNALTASKSENSOR",
     )
 
-    acoustic_derived__raw_recipient__v1 = bigquery_etl_query(
-        task_id="acoustic_derived__raw_recipient__v1",
+    acoustic__raw_recipient__v1 = bigquery_etl_query(
+        task_id="acoustic__raw_recipient__v1",
         destination_table="raw_recipient_v1",
-        dataset_id="acoustic_derived",
-        project_id="moz-fx-data-shared-prod",
-        owner="leli@mozilla.com",
-        email=["leli@mozilla.com", "telemetry-alerts@mozilla.com"],
+        dataset_id="acoustic",
+        project_id="moz-fx-data-marketing-prod",
+        owner="kik@mozilla.com",
+        email=["kik@mozilla.com", "telemetry-alerts@mozilla.com"],
         date_partition_parameter="submission_date",
         depends_on_past=False,
     )
 
-    acoustic_external__raw_recipient_raw__v1 = bigquery_etl_query(
-        task_id="acoustic_external__raw_recipient_raw__v1",
+    acoustic__raw_recipient_raw__v1 = bigquery_etl_query(
+        task_id="acoustic__raw_recipient_raw__v1",
         destination_table="raw_recipient_raw_v1",
-        dataset_id="acoustic_external",
-        project_id="moz-fx-data-shared-prod",
-        owner="leli@mozilla.com",
-        email=["leli@mozilla.com", "telemetry-alerts@mozilla.com"],
+        dataset_id="acoustic",
+        project_id="moz-fx-data-marketing-prod",
+        owner="kik@mozilla.com",
+        email=["kik@mozilla.com", "telemetry-alerts@mozilla.com"],
         date_partition_parameter="submission_date",
         depends_on_past=False,
     )
 
-    acoustic_derived__raw_recipient__v1.set_upstream(
-        acoustic_external__raw_recipient_raw__v1
-    )
+    acoustic__raw_recipient__v1.set_upstream(acoustic__raw_recipient_raw__v1)
 
-    acoustic_external__raw_recipient_raw__v1.set_upstream(
-        wait_for_fivetran_load_completed
-    )
+    acoustic__raw_recipient_raw__v1.set_upstream(wait_for_fivetran_load_completed)
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/dags/bqetl_acoustic_suppression_list.py /tmp/workspace/generated-sql/dags/bqetl_acoustic_suppression_list.py
--- /tmp/workspace/main-generated-sql/dags/bqetl_acoustic_suppression_list.py	2024-04-29 17:41:36.000000000 +0000
+++ /tmp/workspace/generated-sql/dags/bqetl_acoustic_suppression_list.py	1970-01-01 00:00:00.000000000 +0000
@@ -1,85 +0,0 @@
-# Generated via https://github.com/mozilla/bigquery-etl/blob/main/bigquery_etl/query_scheduling/generate_airflow_dags.py
-
-from airflow import DAG
-from airflow.sensors.external_task import ExternalTaskMarker
-from airflow.sensors.external_task import ExternalTaskSensor
-from airflow.utils.task_group import TaskGroup
-import datetime
-from operators.gcp_container_operator import GKEPodOperator
-from utils.constants import ALLOWED_STATES, FAILED_STATES
-from utils.gcp import bigquery_etl_query, bigquery_dq_check
-
-docs = """
-### bqetl_acoustic_suppression_list
-
-Built from bigquery-etl repo, [`dags/bqetl_acoustic_suppression_list.py`](https://github.com/mozilla/bigquery-etl/blob/generated-sql/dags/bqetl_acoustic_suppression_list.py)
-
-#### Description
-
-ETL for Acoustic suppression list.
-
-#### Owner
-
-leli@mozilla.com
-
-#### Tags
-
-* impact/tier_3
-* repo/bigquery-etl
-"""
-
-
-default_args = {
-    "owner": "leli@mozilla.com",
-    "start_date": datetime.datetime(2024, 4, 3, 0, 0),
-    "end_date": None,
-    "email": ["leli@mozilla.com"],
-    "depends_on_past": False,
-    "retry_delay": datetime.timedelta(seconds=1800),
-    "email_on_failure": True,
-    "email_on_retry": True,
-    "retries": 1,
-}
-
-tags = ["impact/tier_3", "repo/bigquery-etl"]
-
-with DAG(
-    "bqetl_acoustic_suppression_list",
-    default_args=default_args,
-    schedule_interval="0 9 * * *",
-    doc_md=docs,
-    tags=tags,
-) as dag:
-
-    acoustic_external__suppression_list__v1 = bigquery_etl_query(
-        task_id="acoustic_external__suppression_list__v1",
-        destination_table="suppression_list_v1",
-        dataset_id="acoustic_external",
-        project_id="moz-fx-data-shared-prod",
-        owner="leli@mozilla.com",
-        email=["leli@mozilla.com"],
-        date_partition_parameter=None,
-        depends_on_past=False,
-        task_concurrency=1,
-    )
-
-    with TaskGroup(
-        "acoustic_external__suppression_list__v1_external",
-    ) as acoustic_external__suppression_list__v1_external:
-        ExternalTaskMarker(
-            task_id="bqetl_braze__wait_for_acoustic_external__suppression_list__v1",
-            external_dag_id="bqetl_braze",
-            external_task_id="wait_for_acoustic_external__suppression_list__v1",
-            execution_date="{{ (execution_date - macros.timedelta(days=-1, seconds=82800)).isoformat() }}",
-        )
-
-        ExternalTaskMarker(
-            task_id="bqetl_marketing_suppression_list__wait_for_acoustic_external__suppression_list__v1",
-            external_dag_id="bqetl_marketing_suppression_list",
-            external_task_id="wait_for_acoustic_external__suppression_list__v1",
-            execution_date="{{ (execution_date - macros.timedelta(seconds=21600)).isoformat() }}",
-        )
-
-        acoustic_external__suppression_list__v1_external.set_upstream(
-            acoustic_external__suppression_list__v1
-        )
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/dags/bqetl_analytics_aggregations.py /tmp/workspace/generated-sql/dags/bqetl_analytics_aggregations.py
--- /tmp/workspace/main-generated-sql/dags/bqetl_analytics_aggregations.py	2024-04-29 17:41:36.000000000 +0000
+++ /tmp/workspace/generated-sql/dags/bqetl_analytics_aggregations.py	2024-04-29 17:54:46.000000000 +0000
@@ -80,10 +80,10 @@
         pool="DATA_ENG_EXTERNALTASKSENSOR",
     )
 
-    wait_for_checks__fail_org_mozilla_fenix_derived__baseline_clients_last_seen__v1 = ExternalTaskSensor(
-        task_id="wait_for_checks__fail_org_mozilla_fenix_derived__baseline_clients_last_seen__v1",
+    wait_for_org_mozilla_fenix_derived__baseline_clients_last_seen__v1 = ExternalTaskSensor(
+        task_id="wait_for_org_mozilla_fenix_derived__baseline_clients_last_seen__v1",
         external_dag_id="bqetl_glean_usage",
-        external_task_id="fenix.checks__fail_org_mozilla_fenix_derived__baseline_clients_last_seen__v1",
+        external_task_id="fenix.org_mozilla_fenix_derived__baseline_clients_last_seen__v1",
         execution_delta=datetime.timedelta(seconds=8100),
         check_existence=True,
         mode="reschedule",
@@ -92,10 +92,10 @@
         pool="DATA_ENG_EXTERNALTASKSENSOR",
     )
 
-    wait_for_checks__fail_org_mozilla_fenix_nightly_derived__baseline_clients_last_seen__v1 = ExternalTaskSensor(
-        task_id="wait_for_checks__fail_org_mozilla_fenix_nightly_derived__baseline_clients_last_seen__v1",
+    wait_for_org_mozilla_fenix_nightly_derived__baseline_clients_last_seen__v1 = ExternalTaskSensor(
+        task_id="wait_for_org_mozilla_fenix_nightly_derived__baseline_clients_last_seen__v1",
         external_dag_id="bqetl_glean_usage",
-        external_task_id="fenix.checks__fail_org_mozilla_fenix_nightly_derived__baseline_clients_last_seen__v1",
+        external_task_id="fenix.org_mozilla_fenix_nightly_derived__baseline_clients_last_seen__v1",
         execution_delta=datetime.timedelta(seconds=8100),
         check_existence=True,
         mode="reschedule",
@@ -104,10 +104,10 @@
         pool="DATA_ENG_EXTERNALTASKSENSOR",
     )
 
-    wait_for_checks__fail_org_mozilla_fennec_aurora_derived__baseline_clients_last_seen__v1 = ExternalTaskSensor(
-        task_id="wait_for_checks__fail_org_mozilla_fennec_aurora_derived__baseline_clients_last_seen__v1",
+    wait_for_org_mozilla_fennec_aurora_derived__baseline_clients_last_seen__v1 = ExternalTaskSensor(
+        task_id="wait_for_org_mozilla_fennec_aurora_derived__baseline_clients_last_seen__v1",
         external_dag_id="bqetl_glean_usage",
-        external_task_id="fenix.checks__fail_org_mozilla_fennec_aurora_derived__baseline_clients_last_seen__v1",
+        external_task_id="fenix.org_mozilla_fennec_aurora_derived__baseline_clients_last_seen__v1",
         execution_delta=datetime.timedelta(seconds=8100),
         check_existence=True,
         mode="reschedule",
@@ -116,10 +116,10 @@
         pool="DATA_ENG_EXTERNALTASKSENSOR",
     )
 
-    wait_for_checks__fail_org_mozilla_firefox_beta_derived__baseline_clients_last_seen__v1 = ExternalTaskSensor(
-        task_id="wait_for_checks__fail_org_mozilla_firefox_beta_derived__baseline_clients_last_seen__v1",
+    wait_for_org_mozilla_firefox_beta_derived__baseline_clients_last_seen__v1 = ExternalTaskSensor(
+        task_id="wait_for_org_mozilla_firefox_beta_derived__baseline_clients_last_seen__v1",
         external_dag_id="bqetl_glean_usage",
-        external_task_id="fenix.checks__fail_org_mozilla_firefox_beta_derived__baseline_clients_last_seen__v1",
+        external_task_id="fenix.org_mozilla_firefox_beta_derived__baseline_clients_last_seen__v1",
         execution_delta=datetime.timedelta(seconds=8100),
         check_existence=True,
         mode="reschedule",
@@ -128,10 +128,10 @@
         pool="DATA_ENG_EXTERNALTASKSENSOR",
     )
 
-    wait_for_checks__fail_org_mozilla_firefox_derived__baseline_clients_last_seen__v1 = ExternalTaskSensor(
-        task_id="wait_for_checks__fail_org_mozilla_firefox_derived__baseline_clients_last_seen__v1",
+    wait_for_org_mozilla_firefox_derived__baseline_clients_last_seen__v1 = ExternalTaskSensor(
+        task_id="wait_for_org_mozilla_firefox_derived__baseline_clients_last_seen__v1",
         external_dag_id="bqetl_glean_usage",
-        external_task_id="fenix.checks__fail_org_mozilla_firefox_derived__baseline_clients_last_seen__v1",
+        external_task_id="fenix.org_mozilla_firefox_derived__baseline_clients_last_seen__v1",
         execution_delta=datetime.timedelta(seconds=8100),
         check_existence=True,
         mode="reschedule",
@@ -590,27 +590,27 @@
     )
 
     checks__warn_fenix_derived__active_users_aggregates__v3.set_upstream(
-        wait_for_checks__fail_org_mozilla_fenix_derived__baseline_clients_last_seen__v1
+        fenix_active_users_aggregates
     )
 
     checks__warn_fenix_derived__active_users_aggregates__v3.set_upstream(
-        wait_for_checks__fail_org_mozilla_fenix_nightly_derived__baseline_clients_last_seen__v1
+        wait_for_org_mozilla_fenix_derived__baseline_clients_last_seen__v1
     )
 
     checks__warn_fenix_derived__active_users_aggregates__v3.set_upstream(
-        wait_for_checks__fail_org_mozilla_fennec_aurora_derived__baseline_clients_last_seen__v1
+        wait_for_org_mozilla_fenix_nightly_derived__baseline_clients_last_seen__v1
     )
 
     checks__warn_fenix_derived__active_users_aggregates__v3.set_upstream(
-        wait_for_checks__fail_org_mozilla_firefox_beta_derived__baseline_clients_last_seen__v1
+        wait_for_org_mozilla_fennec_aurora_derived__baseline_clients_last_seen__v1
     )
 
     checks__warn_fenix_derived__active_users_aggregates__v3.set_upstream(
-        wait_for_checks__fail_org_mozilla_firefox_derived__baseline_clients_last_seen__v1
+        wait_for_org_mozilla_firefox_beta_derived__baseline_clients_last_seen__v1
     )
 
     checks__warn_fenix_derived__active_users_aggregates__v3.set_upstream(
-        fenix_active_users_aggregates
+        wait_for_org_mozilla_firefox_derived__baseline_clients_last_seen__v1
     )
 
     checks__warn_firefox_desktop_derived__active_users_aggregates__v3.set_upstream(
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	2024-04-29 17:41:36.000000000 +0000
+++ /tmp/workspace/generated-sql/dags/bqetl_analytics_tables.py	2024-04-29 17:54:47.000000000 +0000
@@ -101,10 +101,10 @@
         pool="DATA_ENG_EXTERNALTASKSENSOR",
     )
 
-    wait_for_checks__fail_org_mozilla_fenix_derived__baseline_clients_last_seen__v1 = ExternalTaskSensor(
-        task_id="wait_for_checks__fail_org_mozilla_fenix_derived__baseline_clients_last_seen__v1",
+    wait_for_org_mozilla_fenix_derived__baseline_clients_last_seen__v1 = ExternalTaskSensor(
+        task_id="wait_for_org_mozilla_fenix_derived__baseline_clients_last_seen__v1",
         external_dag_id="bqetl_glean_usage",
-        external_task_id="fenix.checks__fail_org_mozilla_fenix_derived__baseline_clients_last_seen__v1",
+        external_task_id="fenix.org_mozilla_fenix_derived__baseline_clients_last_seen__v1",
         check_existence=True,
         mode="reschedule",
         allowed_states=ALLOWED_STATES,
@@ -112,10 +112,10 @@
         pool="DATA_ENG_EXTERNALTASKSENSOR",
     )
 
-    wait_for_checks__fail_org_mozilla_fenix_nightly_derived__baseline_clients_last_seen__v1 = ExternalTaskSensor(
-        task_id="wait_for_checks__fail_org_mozilla_fenix_nightly_derived__baseline_clients_last_seen__v1",
+    wait_for_org_mozilla_fenix_nightly_derived__baseline_clients_last_seen__v1 = ExternalTaskSensor(
+        task_id="wait_for_org_mozilla_fenix_nightly_derived__baseline_clients_last_seen__v1",
         external_dag_id="bqetl_glean_usage",
-        external_task_id="fenix.checks__fail_org_mozilla_fenix_nightly_derived__baseline_clients_last_seen__v1",
+        external_task_id="fenix.org_mozilla_fenix_nightly_derived__baseline_clients_last_seen__v1",
         check_existence=True,
         mode="reschedule",
         allowed_states=ALLOWED_STATES,
@@ -123,10 +123,10 @@
         pool="DATA_ENG_EXTERNALTASKSENSOR",
     )
 
-    wait_for_checks__fail_org_mozilla_fennec_aurora_derived__baseline_clients_last_seen__v1 = ExternalTaskSensor(
-        task_id="wait_for_checks__fail_org_mozilla_fennec_aurora_derived__baseline_clients_last_seen__v1",
+    wait_for_org_mozilla_fennec_aurora_derived__baseline_clients_last_seen__v1 = ExternalTaskSensor(
+        task_id="wait_for_org_mozilla_fennec_aurora_derived__baseline_clients_last_seen__v1",
         external_dag_id="bqetl_glean_usage",
-        external_task_id="fenix.checks__fail_org_mozilla_fennec_aurora_derived__baseline_clients_last_seen__v1",
+        external_task_id="fenix.org_mozilla_fennec_aurora_derived__baseline_clients_last_seen__v1",
         check_existence=True,
         mode="reschedule",
         allowed_states=ALLOWED_STATES,
@@ -134,10 +134,10 @@
         pool="DATA_ENG_EXTERNALTASKSENSOR",
     )
 
-    wait_for_checks__fail_org_mozilla_firefox_beta_derived__baseline_clients_last_seen__v1 = ExternalTaskSensor(
-        task_id="wait_for_checks__fail_org_mozilla_firefox_beta_derived__baseline_clients_last_seen__v1",
+    wait_for_org_mozilla_firefox_beta_derived__baseline_clients_last_seen__v1 = ExternalTaskSensor(
+        task_id="wait_for_org_mozilla_firefox_beta_derived__baseline_clients_last_seen__v1",
         external_dag_id="bqetl_glean_usage",
-        external_task_id="fenix.checks__fail_org_mozilla_firefox_beta_derived__baseline_clients_last_seen__v1",
+        external_task_id="fenix.org_mozilla_firefox_beta_derived__baseline_clients_last_seen__v1",
         check_existence=True,
         mode="reschedule",
         allowed_states=ALLOWED_STATES,
@@ -145,10 +145,10 @@
         pool="DATA_ENG_EXTERNALTASKSENSOR",
     )
 
-    wait_for_checks__fail_org_mozilla_firefox_derived__baseline_clients_last_seen__v1 = ExternalTaskSensor(
-        task_id="wait_for_checks__fail_org_mozilla_firefox_derived__baseline_clients_last_seen__v1",
+    wait_for_org_mozilla_firefox_derived__baseline_clients_last_seen__v1 = ExternalTaskSensor(
+        task_id="wait_for_org_mozilla_firefox_derived__baseline_clients_last_seen__v1",
         external_dag_id="bqetl_glean_usage",
-        external_task_id="fenix.checks__fail_org_mozilla_firefox_derived__baseline_clients_last_seen__v1",
+        external_task_id="fenix.org_mozilla_firefox_derived__baseline_clients_last_seen__v1",
         check_existence=True,
         mode="reschedule",
         allowed_states=ALLOWED_STATES,
@@ -270,21 +270,76 @@
             execution_date="{{ (execution_date - macros.timedelta(days=-1, seconds=72000)).isoformat() }}",
         )
 
-        ExternalTaskMarker(
-            task_id="bqetl_data_observability_test_data_copy__wait_for_checks__fail_fenix_derived__firefox_android_clients__v1",
-            external_dag_id="bqetl_data_observability_test_data_copy",
-            external_task_id="wait_for_checks__fail_fenix_derived__firefox_android_clients__v1",
-            execution_date="{{ (execution_date - macros.timedelta(days=-1, seconds=64800)).isoformat() }}",
+        checks__fail_fenix_derived__firefox_android_clients__v1_external.set_upstream(
+            checks__fail_fenix_derived__firefox_android_clients__v1
+        )
+
+    checks__fail_fenix_derived__funnel_retention_clients_week_2__v1 = bigquery_dq_check(
+        task_id="checks__fail_fenix_derived__funnel_retention_clients_week_2__v1",
+        source_table="funnel_retention_clients_week_2_v1",
+        dataset_id="fenix_derived",
+        project_id="moz-fx-data-shared-prod",
+        is_dq_check_fail=True,
+        owner="kik@mozilla.com",
+        email=[
+            "gkaberere@mozilla.com",
+            "kik@mozilla.com",
+            "lvargas@mozilla.com",
+            "telemetry-alerts@mozilla.com",
+        ],
+        depends_on_past=False,
+        parameters=["submission_date:DATE:{{ds}}"],
+        retries=0,
+    )
+
+    checks__fail_fenix_derived__funnel_retention_clients_week_4__v1 = bigquery_dq_check(
+        task_id="checks__fail_fenix_derived__funnel_retention_clients_week_4__v1",
+        source_table="funnel_retention_clients_week_4_v1",
+        dataset_id="fenix_derived",
+        project_id="moz-fx-data-shared-prod",
+        is_dq_check_fail=True,
+        owner="kik@mozilla.com",
+        email=[
+            "gkaberere@mozilla.com",
+            "kik@mozilla.com",
+            "lvargas@mozilla.com",
+            "telemetry-alerts@mozilla.com",
+        ],
+        depends_on_past=False,
+        parameters=["submission_date:DATE:{{ds}}"],
+        retries=0,
         )
 
+    with TaskGroup(
+        "checks__fail_fenix_derived__funnel_retention_clients_week_4__v1_external",
+    ) as checks__fail_fenix_derived__funnel_retention_clients_week_4__v1_external:
         ExternalTaskMarker(
-            task_id="bqetl_fivetran_google_ads__wait_for_checks__fail_fenix_derived__firefox_android_clients__v1",
-            external_dag_id="bqetl_fivetran_google_ads",
-            external_task_id="wait_for_checks__fail_fenix_derived__firefox_android_clients__v1",
+            task_id="bqetl_generated_funnels__wait_for_checks__fail_fenix_derived__funnel_retention_clients_week_4__v1",
+            external_dag_id="bqetl_generated_funnels",
+            external_task_id="wait_for_checks__fail_fenix_derived__funnel_retention_clients_week_4__v1",
+            execution_date="{{ (execution_date - macros.timedelta(days=-1, seconds=75600)).isoformat() }}",
         )
 
-        checks__fail_fenix_derived__firefox_android_clients__v1_external.set_upstream(
-            checks__fail_fenix_derived__firefox_android_clients__v1
+        checks__fail_fenix_derived__funnel_retention_clients_week_4__v1_external.set_upstream(
+            checks__fail_fenix_derived__funnel_retention_clients_week_4__v1
+        )
+
+    checks__fail_fenix_derived__funnel_retention_week_4__v1 = bigquery_dq_check(
+        task_id="checks__fail_fenix_derived__funnel_retention_week_4__v1",
+        source_table="funnel_retention_week_4_v1",
+        dataset_id="fenix_derived",
+        project_id="moz-fx-data-shared-prod",
+        is_dq_check_fail=True,
+        owner="kik@mozilla.com",
+        email=[
+            "gkaberere@mozilla.com",
+            "kik@mozilla.com",
+            "lvargas@mozilla.com",
+            "telemetry-alerts@mozilla.com",
+        ],
+        depends_on_past=False,
+        parameters=["submission_date:DATE:{{ds}}"],
+        retries=0,
         )
 
     checks__fail_telemetry_derived__clients_first_seen__v2 = bigquery_dq_check(
@@ -348,13 +403,6 @@
             execution_date="{{ (execution_date - macros.timedelta(days=-1, seconds=78300)).isoformat() }}",
         )
 
-        ExternalTaskMarker(
-            task_id="bqetl_desktop_engagement_model__wait_for_checks__fail_telemetry_derived__clients_first_seen__v2",
-            external_dag_id="bqetl_desktop_engagement_model",
-            external_task_id="wait_for_checks__fail_telemetry_derived__clients_first_seen__v2",
-            execution_date="{{ (execution_date - macros.timedelta(days=-1, seconds=50400)).isoformat() }}",
-        )
-
         checks__fail_telemetry_derived__clients_first_seen__v2_external.set_upstream(
             checks__fail_telemetry_derived__clients_first_seen__v2
         )
@@ -377,42 +425,6 @@
         retries=0,
     )
 
-    checks__warn_fenix_derived__funnel_retention_clients_week_2__v1 = bigquery_dq_check(
-        task_id="checks__warn_fenix_derived__funnel_retention_clients_week_2__v1",
-        source_table="funnel_retention_clients_week_2_v1",
-        dataset_id="fenix_derived",
-        project_id="moz-fx-data-shared-prod",
-        is_dq_check_fail=False,
-        owner="kik@mozilla.com",
-        email=[
-            "gkaberere@mozilla.com",
-            "kik@mozilla.com",
-            "lvargas@mozilla.com",
-            "telemetry-alerts@mozilla.com",
-        ],
-        depends_on_past=False,
-        parameters=["submission_date:DATE:{{ds}}"],
-        retries=0,
-    )
-
-    checks__warn_fenix_derived__funnel_retention_clients_week_4__v1 = bigquery_dq_check(
-        task_id="checks__warn_fenix_derived__funnel_retention_clients_week_4__v1",
-        source_table="funnel_retention_clients_week_4_v1",
-        dataset_id="fenix_derived",
-        project_id="moz-fx-data-shared-prod",
-        is_dq_check_fail=False,
-        owner="kik@mozilla.com",
-        email=[
-            "gkaberere@mozilla.com",
-            "kik@mozilla.com",
-            "lvargas@mozilla.com",
-            "telemetry-alerts@mozilla.com",
-        ],
-        depends_on_past=False,
-        parameters=["submission_date:DATE:{{ds}}"],
-        retries=0,
-    )
-
     checks__warn_fenix_derived__funnel_retention_week_4__v1 = bigquery_dq_check(
         task_id="checks__warn_fenix_derived__funnel_retention_week_4__v1",
         source_table="funnel_retention_week_4_v1",
@@ -479,20 +491,6 @@
         depends_on_past=False,
     )
 
-    with TaskGroup(
-        "fenix_derived__funnel_retention_clients_week_4__v1_external",
-    ) as fenix_derived__funnel_retention_clients_week_4__v1_external:
-        ExternalTaskMarker(
-            task_id="bqetl_generated_funnels__wait_for_fenix_derived__funnel_retention_clients_week_4__v1",
-            external_dag_id="bqetl_generated_funnels",
-            external_task_id="wait_for_fenix_derived__funnel_retention_clients_week_4__v1",
-            execution_date="{{ (execution_date - macros.timedelta(days=-1, seconds=75600)).isoformat() }}",
-        )
-
-        fenix_derived__funnel_retention_clients_week_4__v1_external.set_upstream(
-            fenix_derived__funnel_retention_clients_week_4__v1
-        )
-
     fenix_derived__funnel_retention_week_4__v1 = bigquery_etl_query(
         task_id="fenix_derived__funnel_retention_week_4__v1",
         destination_table="funnel_retention_week_4_v1",
@@ -551,6 +549,22 @@
         firefox_android_clients
     )
 
+    checks__fail_fenix_derived__funnel_retention_clients_week_2__v1.set_upstream(
+        fenix_derived__funnel_retention_clients_week_2__v1
+    )
+
+    checks__fail_fenix_derived__funnel_retention_clients_week_4__v1.set_upstream(
+        fenix_derived__funnel_retention_clients_week_4__v1
+    )
+
+    checks__fail_fenix_derived__funnel_retention_week_4__v1.set_upstream(
+        checks__fail_fenix_derived__funnel_retention_clients_week_4__v1
+    )
+
+    checks__fail_fenix_derived__funnel_retention_week_4__v1.set_upstream(
+        fenix_derived__funnel_retention_week_4__v1
+    )
+
     checks__fail_telemetry_derived__clients_first_seen__v2.set_upstream(
         clients_first_seen_v2
     )
@@ -571,16 +585,8 @@
         firefox_android_clients
     )
 
-    checks__warn_fenix_derived__funnel_retention_clients_week_2__v1.set_upstream(
-        fenix_derived__funnel_retention_clients_week_2__v1
-    )
-
-    checks__warn_fenix_derived__funnel_retention_clients_week_4__v1.set_upstream(
-        fenix_derived__funnel_retention_clients_week_4__v1
-    )
-
     checks__warn_fenix_derived__funnel_retention_week_4__v1.set_upstream(
-        fenix_derived__funnel_retention_clients_week_4__v1
+        checks__fail_fenix_derived__funnel_retention_clients_week_4__v1
     )
 
     checks__warn_fenix_derived__funnel_retention_week_4__v1.set_upstream(
@@ -598,23 +604,23 @@
     )
 
     fenix_derived__funnel_retention_clients_week_2__v1.set_upstream(
-        wait_for_checks__fail_org_mozilla_fenix_derived__baseline_clients_last_seen__v1
+        wait_for_org_mozilla_fenix_derived__baseline_clients_last_seen__v1
     )
 
     fenix_derived__funnel_retention_clients_week_2__v1.set_upstream(
-        wait_for_checks__fail_org_mozilla_fenix_nightly_derived__baseline_clients_last_seen__v1
+        wait_for_org_mozilla_fenix_nightly_derived__baseline_clients_last_seen__v1
     )
 
     fenix_derived__funnel_retention_clients_week_2__v1.set_upstream(
-        wait_for_checks__fail_org_mozilla_fennec_aurora_derived__baseline_clients_last_seen__v1
+        wait_for_org_mozilla_fennec_aurora_derived__baseline_clients_last_seen__v1
     )
 
     fenix_derived__funnel_retention_clients_week_2__v1.set_upstream(
-        wait_for_checks__fail_org_mozilla_firefox_beta_derived__baseline_clients_last_seen__v1
+        wait_for_org_mozilla_firefox_beta_derived__baseline_clients_last_seen__v1
     )
 
     fenix_derived__funnel_retention_clients_week_2__v1.set_upstream(
-        wait_for_checks__fail_org_mozilla_firefox_derived__baseline_clients_last_seen__v1
+        wait_for_org_mozilla_firefox_derived__baseline_clients_last_seen__v1
     )
 
     fenix_derived__funnel_retention_clients_week_4__v1.set_upstream(
@@ -622,27 +628,27 @@
     )
 
     fenix_derived__funnel_retention_clients_week_4__v1.set_upstream(
-        wait_for_checks__fail_org_mozilla_fenix_derived__baseline_clients_last_seen__v1
+        wait_for_org_mozilla_fenix_derived__baseline_clients_last_seen__v1
     )
 
     fenix_derived__funnel_retention_clients_week_4__v1.set_upstream(
-        wait_for_checks__fail_org_mozilla_fenix_nightly_derived__baseline_clients_last_seen__v1
+        wait_for_org_mozilla_fenix_nightly_derived__baseline_clients_last_seen__v1
     )
 
     fenix_derived__funnel_retention_clients_week_4__v1.set_upstream(
-        wait_for_checks__fail_org_mozilla_fennec_aurora_derived__baseline_clients_last_seen__v1
+        wait_for_org_mozilla_fennec_aurora_derived__baseline_clients_last_seen__v1
     )
 
     fenix_derived__funnel_retention_clients_week_4__v1.set_upstream(
-        wait_for_checks__fail_org_mozilla_firefox_beta_derived__baseline_clients_last_seen__v1
+        wait_for_org_mozilla_firefox_beta_derived__baseline_clients_last_seen__v1
     )
 
     fenix_derived__funnel_retention_clients_week_4__v1.set_upstream(
-        wait_for_checks__fail_org_mozilla_firefox_derived__baseline_clients_last_seen__v1
+        wait_for_org_mozilla_firefox_derived__baseline_clients_last_seen__v1
     )
 
     fenix_derived__funnel_retention_week_4__v1.set_upstream(
-        fenix_derived__funnel_retention_clients_week_4__v1
+        checks__fail_fenix_derived__funnel_retention_clients_week_4__v1
     )
 
     firefox_android_clients.set_upstream(wait_for_copy_deduplicate_all)
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/dags/bqetl_braze.py /tmp/workspace/generated-sql/dags/bqetl_braze.py
--- /tmp/workspace/main-generated-sql/dags/bqetl_braze.py	2024-04-29 17:41:36.000000000 +0000
+++ /tmp/workspace/generated-sql/dags/bqetl_braze.py	1970-01-01 00:00:00.000000000 +0000
@@ -1,318 +0,0 @@
-# Generated via https://github.com/mozilla/bigquery-etl/blob/main/bigquery_etl/query_scheduling/generate_airflow_dags.py
-
-from airflow import DAG
-from airflow.sensors.external_task import ExternalTaskMarker
-from airflow.sensors.external_task import ExternalTaskSensor
-from airflow.utils.task_group import TaskGroup
-import datetime
-from operators.gcp_container_operator import GKEPodOperator
-from utils.constants import ALLOWED_STATES, FAILED_STATES
-from utils.gcp import bigquery_etl_query, bigquery_dq_check
-
-docs = """
-### bqetl_braze
-
-Built from bigquery-etl repo, [`dags/bqetl_braze.py`](https://github.com/mozilla/bigquery-etl/blob/generated-sql/dags/bqetl_braze.py)
-
-#### Description
-
-ETL for Braze workflows.
-
-#### Owner
-
-cbeck@mozilla.com
-
-#### Tags
-
-* impact/tier_2
-* repo/bigquery-etl
-"""
-
-
-default_args = {
-    "owner": "cbeck@mozilla.com",
-    "start_date": datetime.datetime(2024, 4, 15, 0, 0),
-    "end_date": None,
-    "email": ["cbeck@mozilla.com"],
-    "depends_on_past": False,
-    "retry_delay": datetime.timedelta(seconds=1800),
-    "email_on_failure": True,
-    "email_on_retry": True,
-    "retries": 1,
-}
-
-tags = ["impact/tier_2", "repo/bigquery-etl"]
-
-with DAG(
-    "bqetl_braze",
-    default_args=default_args,
-    schedule_interval="0 10 * * *",
-    doc_md=docs,
-    tags=tags,
-) as dag:
-
-    wait_for_subscription_platform_derived__stripe_subscriptions__v1 = (
-        ExternalTaskSensor(
-            task_id="wait_for_subscription_platform_derived__stripe_subscriptions__v1",
-            external_dag_id="bqetl_subplat",
-            external_task_id="subscription_platform_derived__stripe_subscriptions__v1",
-            execution_delta=datetime.timedelta(seconds=29700),
-            check_existence=True,
-            mode="reschedule",
-            allowed_states=ALLOWED_STATES,
-            failed_states=FAILED_STATES,
-            pool="DATA_ENG_EXTERNALTASKSENSOR",
-        )
-    )
-
-    wait_for_acoustic_external__contact_raw__v1 = ExternalTaskSensor(
-        task_id="wait_for_acoustic_external__contact_raw__v1",
-        external_dag_id="bqetl_acoustic_contact_export",
-        external_task_id="acoustic_external__contact_raw__v1",
-        execution_delta=datetime.timedelta(seconds=3600),
-        check_existence=True,
-        mode="reschedule",
-        allowed_states=ALLOWED_STATES,
-        failed_states=FAILED_STATES,
-        pool="DATA_ENG_EXTERNALTASKSENSOR",
-    )
-
-    wait_for_acoustic_external__suppression_list__v1 = ExternalTaskSensor(
-        task_id="wait_for_acoustic_external__suppression_list__v1",
-        external_dag_id="bqetl_acoustic_suppression_list",
-        external_task_id="acoustic_external__suppression_list__v1",
-        execution_delta=datetime.timedelta(seconds=3600),
-        check_existence=True,
-        mode="reschedule",
-        allowed_states=ALLOWED_STATES,
-        failed_states=FAILED_STATES,
-        pool="DATA_ENG_EXTERNALTASKSENSOR",
-    )
-
-    braze_derived__newsletters__v1 = bigquery_etl_query(
-        task_id="braze_derived__newsletters__v1",
-        destination_table="newsletters_v1",
-        dataset_id="braze_derived",
-        project_id="moz-fx-data-shared-prod",
-        owner="cbeck@mozilla.com",
-        email=["cbeck@mozilla.com"],
-        date_partition_parameter=None,
-        depends_on_past=False,
-        task_concurrency=1,
-    )
-
-    braze_derived__products__v1 = bigquery_etl_query(
-        task_id="braze_derived__products__v1",
-        destination_table="products_v1",
-        dataset_id="braze_derived",
-        project_id="moz-fx-data-shared-prod",
-        owner="cbeck@mozilla.com",
-        email=["cbeck@mozilla.com"],
-        date_partition_parameter=None,
-        depends_on_past=False,
-        task_concurrency=1,
-    )
-
-    braze_derived__subscriptions__v1 = bigquery_etl_query(
-        task_id="braze_derived__subscriptions__v1",
-        destination_table="subscriptions_v1",
-        dataset_id="braze_derived",
-        project_id="moz-fx-data-shared-prod",
-        owner="cbeck@mozilla.com",
-        email=["cbeck@mozilla.com"],
-        date_partition_parameter=None,
-        depends_on_past=False,
-        task_concurrency=1,
-    )
-
-    braze_derived__suppressions__v1 = bigquery_etl_query(
-        task_id="braze_derived__suppressions__v1",
-        destination_table="suppressions_v1",
-        dataset_id="braze_derived",
-        project_id="moz-fx-data-shared-prod",
-        owner="cbeck@mozilla.com",
-        email=["cbeck@mozilla.com"],
-        date_partition_parameter=None,
-        depends_on_past=False,
-        task_concurrency=1,
-    )
-
-    braze_derived__user_profiles__v1 = bigquery_etl_query(
-        task_id="braze_derived__user_profiles__v1",
-        destination_table="user_profiles_v1",
-        dataset_id="braze_derived",
-        project_id="moz-fx-data-shared-prod",
-        owner="cbeck@mozilla.com",
-        email=["cbeck@mozilla.com"],
-        date_partition_parameter=None,
-        depends_on_past=False,
-        task_concurrency=1,
-    )
-
-    braze_derived__users__v1 = bigquery_etl_query(
-        task_id="braze_derived__users__v1",
-        destination_table="users_v1",
-        dataset_id="braze_derived",
-        project_id="moz-fx-data-shared-prod",
-        owner="cbeck@mozilla.com",
-        email=["cbeck@mozilla.com"],
-        date_partition_parameter=None,
-        depends_on_past=False,
-        task_concurrency=1,
-    )
-
-    braze_derived__waitlists__v1 = bigquery_etl_query(
-        task_id="braze_derived__waitlists__v1",
-        destination_table="waitlists_v1",
-        dataset_id="braze_derived",
-        project_id="moz-fx-data-shared-prod",
-        owner="cbeck@mozilla.com",
-        email=["cbeck@mozilla.com"],
-        date_partition_parameter=None,
-        depends_on_past=False,
-        task_concurrency=1,
-    )
-
-    braze_external__changed_newsletters_sync__v1 = bigquery_etl_query(
-        task_id="braze_external__changed_newsletters_sync__v1",
-        destination_table="changed_newsletters_sync_v1",
-        dataset_id="braze_external",
-        project_id="moz-fx-data-shared-prod",
-        owner="cbeck@mozilla.com",
-        email=["cbeck@mozilla.com"],
-        date_partition_parameter=None,
-        depends_on_past=False,
-        task_concurrency=1,
-    )
-
-    braze_external__changed_subscriptions_sync__v1 = bigquery_etl_query(
-        task_id="braze_external__changed_subscriptions_sync__v1",
-        destination_table="changed_subscriptions_sync_v1",
-        dataset_id="braze_external",
-        project_id="moz-fx-data-shared-prod",
-        owner="cbeck@mozilla.com",
-        email=["cbeck@mozilla.com"],
-        date_partition_parameter=None,
-        depends_on_past=False,
-        task_concurrency=1,
-    )
-
-    braze_external__changed_users__v1 = bigquery_etl_query(
-        task_id="braze_external__changed_users__v1",
-        destination_table="changed_users_v1",
-        dataset_id="braze_external",
-        project_id="moz-fx-data-shared-prod",
-        owner="cbeck@mozilla.com",
-        email=["cbeck@mozilla.com"],
-        date_partition_parameter=None,
-        depends_on_past=False,
-        task_concurrency=1,
-    )
-
-    braze_external__changed_users_sync__v1 = bigquery_etl_query(
-        task_id="braze_external__changed_users_sync__v1",
-        destination_table="changed_users_sync_v1",
-        dataset_id="braze_external",
-        project_id="moz-fx-data-shared-prod",
-        owner="cbeck@mozilla.com",
-        email=["cbeck@mozilla.com"],
-        date_partition_parameter=None,
-        depends_on_past=False,
-        task_concurrency=1,
-    )
-
-    braze_external__changed_waitlists_sync__v1 = bigquery_etl_query(
-        task_id="braze_external__changed_waitlists_sync__v1",
-        destination_table="changed_waitlists_sync_v1",
-        dataset_id="braze_external",
-        project_id="moz-fx-data-shared-prod",
-        owner="cbeck@mozilla.com",
-        email=["cbeck@mozilla.com"],
-        date_partition_parameter=None,
-        depends_on_past=False,
-        task_concurrency=1,
-    )
-
-    braze_external__delete_users_sync__v1 = bigquery_etl_query(
-        task_id="braze_external__delete_users_sync__v1",
-        destination_table="delete_users_sync_v1",
-        dataset_id="braze_external",
-        project_id="moz-fx-data-shared-prod",
-        owner="cbeck@mozilla.com",
-        email=["cbeck@mozilla.com"],
-        date_partition_parameter=None,
-        depends_on_past=False,
-        task_concurrency=1,
-    )
-
-    braze_external__users_previous_day_snapshot__v1 = bigquery_etl_query(
-        task_id="braze_external__users_previous_day_snapshot__v1",
-        destination_table=None,
-        dataset_id="braze_external",
-        project_id="moz-fx-data-shared-prod",
-        owner="cbeck@mozilla.com",
-        email=["cbeck@mozilla.com"],
-        date_partition_parameter=None,
-        depends_on_past=False,
-        sql_file_path="sql/moz-fx-data-shared-prod/braze_external/users_previous_day_snapshot_v1/script.sql",
-    )
-
-    braze_derived__newsletters__v1.set_upstream(braze_derived__users__v1)
-
-    braze_derived__products__v1.set_upstream(braze_derived__users__v1)
-
-    braze_derived__products__v1.set_upstream(
-        wait_for_subscription_platform_derived__stripe_subscriptions__v1
-    )
-
-    braze_derived__subscriptions__v1.set_upstream(braze_derived__user_profiles__v1)
-
-    braze_derived__subscriptions__v1.set_upstream(braze_derived__users__v1)
-
-    braze_derived__suppressions__v1.set_upstream(
-        wait_for_acoustic_external__contact_raw__v1
-    )
-
-    braze_derived__suppressions__v1.set_upstream(
-        wait_for_acoustic_external__suppression_list__v1
-    )
-
-    braze_derived__user_profiles__v1.set_upstream(braze_derived__newsletters__v1)
-
-    braze_derived__user_profiles__v1.set_upstream(braze_derived__products__v1)
-
-    braze_derived__user_profiles__v1.set_upstream(braze_derived__users__v1)
-
-    braze_derived__user_profiles__v1.set_upstream(braze_derived__waitlists__v1)
-
-    braze_derived__users__v1.set_upstream(braze_derived__suppressions__v1)
-
-    braze_derived__users__v1.set_upstream(
-        wait_for_subscription_platform_derived__stripe_subscriptions__v1
-    )
-
-    braze_external__changed_newsletters_sync__v1.set_upstream(
-        braze_derived__newsletters__v1
-    )
-
-    braze_external__changed_subscriptions_sync__v1.set_upstream(
-        braze_derived__subscriptions__v1
-    )
-
-    braze_external__changed_users__v1.set_upstream(braze_derived__users__v1)
-
-    braze_external__changed_users__v1.set_upstream(
-        braze_external__users_previous_day_snapshot__v1
-    )
-
-    braze_external__changed_users_sync__v1.set_upstream(
-        braze_external__changed_users__v1
-    )
-
-    braze_external__changed_waitlists_sync__v1.set_upstream(
-        braze_derived__waitlists__v1
-    )
-
-    braze_external__delete_users_sync__v1.set_upstream(
-        braze_external__changed_users__v1
-    )
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/dags/bqetl_braze_currents.py /tmp/workspace/generated-sql/dags/bqetl_braze_currents.py
--- /tmp/workspace/main-generated-sql/dags/bqetl_braze_currents.py	2024-04-29 17:41:36.000000000 +0000
+++ /tmp/workspace/generated-sql/dags/bqetl_braze_currents.py	1970-01-01 00:00:00.000000000 +0000
@@ -1,104 +0,0 @@
-# Generated via https://github.com/mozilla/bigquery-etl/blob/main/bigquery_etl/query_scheduling/generate_airflow_dags.py
-
-from airflow import DAG
-from airflow.sensors.external_task import ExternalTaskMarker
-from airflow.sensors.external_task import ExternalTaskSensor
-from airflow.utils.task_group import TaskGroup
-import datetime
-from operators.gcp_container_operator import GKEPodOperator
-from utils.constants import ALLOWED_STATES, FAILED_STATES
-from utils.gcp import bigquery_etl_query, bigquery_dq_check
-
-docs = """
-### bqetl_braze_currents
-
-Built from bigquery-etl repo, [`dags/bqetl_braze_currents.py`](https://github.com/mozilla/bigquery-etl/blob/generated-sql/dags/bqetl_braze_currents.py)
-
-#### Description
-
-Load Braze current data from GCS into BigQuery
-
-#### Owner
-
-leli@mozilla.com
-
-#### Tags
-
-* impact/tier_2
-* repo/bigquery-etl
-"""
-
-
-default_args = {
-    "owner": "leli@mozilla.com",
-    "start_date": datetime.datetime(2024, 4, 15, 0, 0),
-    "end_date": None,
-    "email": ["leli@mozilla.com"],
-    "depends_on_past": False,
-    "retry_delay": datetime.timedelta(seconds=1800),
-    "email_on_failure": True,
-    "email_on_retry": True,
-    "retries": 1,
-}
-
-tags = ["impact/tier_2", "repo/bigquery-etl"]
-
-with DAG(
-    "bqetl_braze_currents",
-    default_args=default_args,
-    schedule_interval="0 2 * * *",
-    doc_md=docs,
-    tags=tags,
-) as dag:
-
-    braze_external__hard_bounces__v1 = GKEPodOperator(
-        task_id="braze_external__hard_bounces__v1",
-        arguments=[
-            "python",
-            "sql/moz-fx-data-shared-prod/braze_external/hard_bounces_v1/query.py",
-        ]
-        + [],
-        image="gcr.io/moz-fx-data-airflow-prod-88e0/bigquery-etl:latest",
-        owner="leli@mozilla.com",
-        email=["leli@mozilla.com"],
-    )
-
-    with TaskGroup(
-        "braze_external__hard_bounces__v1_external",
-    ) as braze_external__hard_bounces__v1_external:
-        ExternalTaskMarker(
-            task_id="bqetl_marketing_suppression_list__wait_for_braze_external__hard_bounces__v1",
-            external_dag_id="bqetl_marketing_suppression_list",
-            external_task_id="wait_for_braze_external__hard_bounces__v1",
-            execution_date="{{ (execution_date - macros.timedelta(days=-1, seconds=82800)).isoformat() }}",
-        )
-
-        braze_external__hard_bounces__v1_external.set_upstream(
-            braze_external__hard_bounces__v1
-        )
-
-    braze_external__unsubscribes__v1 = GKEPodOperator(
-        task_id="braze_external__unsubscribes__v1",
-        arguments=[
-            "python",
-            "sql/moz-fx-data-shared-prod/braze_external/unsubscribes_v1/query.py",
-        ]
-        + [],
-        image="gcr.io/moz-fx-data-airflow-prod-88e0/bigquery-etl:latest",
-        owner="leli@mozilla.com",
-        email=["leli@mozilla.com"],
-    )
-
-    with TaskGroup(
-        "braze_external__unsubscribes__v1_external",
-    ) as braze_external__unsubscribes__v1_external:
-        ExternalTaskMarker(
-            task_id="bqetl_marketing_suppression_list__wait_for_braze_external__unsubscribes__v1",
-            external_dag_id="bqetl_marketing_suppression_list",
-            external_task_id="wait_for_braze_external__unsubscribes__v1",
-            execution_date="{{ (execution_date - macros.timedelta(days=-1, seconds=82800)).isoformat() }}",
-        )
-
-        braze_external__unsubscribes__v1_external.set_upstream(
-            braze_external__unsubscribes__v1
-        )
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/dags/bqetl_data_observability_test_data_copy.py /tmp/workspace/generated-sql/dags/bqetl_data_observability_test_data_copy.py
--- /tmp/workspace/main-generated-sql/dags/bqetl_data_observability_test_data_copy.py	2024-04-29 17:41:36.000000000 +0000
+++ /tmp/workspace/generated-sql/dags/bqetl_data_observability_test_data_copy.py	1970-01-01 00:00:00.000000000 +0000
@@ -1,192 +0,0 @@
-# Generated via https://github.com/mozilla/bigquery-etl/blob/main/bigquery_etl/query_scheduling/generate_airflow_dags.py
-
-from airflow import DAG
-from airflow.sensors.external_task import ExternalTaskMarker
-from airflow.sensors.external_task import ExternalTaskSensor
-from airflow.utils.task_group import TaskGroup
-import datetime
-from operators.gcp_container_operator import GKEPodOperator
-from utils.constants import ALLOWED_STATES, FAILED_STATES
-from utils.gcp import bigquery_etl_query, bigquery_dq_check
-
-docs = """
-### bqetl_data_observability_test_data_copy
-
-Built from bigquery-etl repo, [`dags/bqetl_data_observability_test_data_copy.py`](https://github.com/mozilla/bigquery-etl/blob/generated-sql/dags/bqetl_data_observability_test_data_copy.py)
-
-#### Description
-
-ETL used to copy over data to data-observability-dev BQ project used
-for testing out different data observability platforms.
-
-#### Owner
-
-kik@mozilla.com
-
-#### Tags
-
-* impact/tier_3
-* repo/bigquery-etl
-* triage/no_triage
-"""
-
-
-default_args = {
-    "owner": "kik@mozilla.com",
-    "start_date": datetime.datetime(2024, 3, 20, 0, 0),
-    "end_date": None,
-    "email": ["kik@mozilla.com", "akommasani@mozilla.com", "ascholtz@mozilla.com"],
-    "depends_on_past": False,
-    "retry_delay": datetime.timedelta(seconds=1800),
-    "email_on_failure": True,
-    "email_on_retry": True,
-    "retries": 2,
-}
-
-tags = ["impact/tier_3", "repo/bigquery-etl", "triage/no_triage"]
-
-with DAG(
-    "bqetl_data_observability_test_data_copy",
-    default_args=default_args,
-    schedule_interval="0 8 * * *",
-    doc_md=docs,
-    tags=tags,
-) as dag:
-
-    wait_for_fenix_derived__clients_last_seen_joined__v1 = ExternalTaskSensor(
-        task_id="wait_for_fenix_derived__clients_last_seen_joined__v1",
-        external_dag_id="bqetl_glean_usage",
-        external_task_id="fenix.fenix_derived__clients_last_seen_joined__v1",
-        execution_delta=datetime.timedelta(seconds=21600),
-        check_existence=True,
-        mode="reschedule",
-        allowed_states=ALLOWED_STATES,
-        failed_states=FAILED_STATES,
-        pool="DATA_ENG_EXTERNALTASKSENSOR",
-    )
-
-    wait_for_fenix_derived__event_types__v1 = ExternalTaskSensor(
-        task_id="wait_for_fenix_derived__event_types__v1",
-        external_dag_id="bqetl_fenix_event_rollup",
-        external_task_id="fenix_derived__event_types__v1",
-        execution_delta=datetime.timedelta(seconds=21600),
-        check_existence=True,
-        mode="reschedule",
-        allowed_states=ALLOWED_STATES,
-        failed_states=FAILED_STATES,
-        pool="DATA_ENG_EXTERNALTASKSENSOR",
-    )
-
-    wait_for_fenix_derived__events_daily__v1 = ExternalTaskSensor(
-        task_id="wait_for_fenix_derived__events_daily__v1",
-        external_dag_id="bqetl_fenix_event_rollup",
-        external_task_id="fenix_derived__events_daily__v1",
-        execution_delta=datetime.timedelta(seconds=21600),
-        check_existence=True,
-        mode="reschedule",
-        allowed_states=ALLOWED_STATES,
-        failed_states=FAILED_STATES,
-        pool="DATA_ENG_EXTERNALTASKSENSOR",
-    )
-
-    wait_for_checks__fail_fenix_derived__firefox_android_clients__v1 = (
-        ExternalTaskSensor(
-            task_id="wait_for_checks__fail_fenix_derived__firefox_android_clients__v1",
-            external_dag_id="bqetl_analytics_tables",
-            external_task_id="checks__fail_fenix_derived__firefox_android_clients__v1",
-            execution_delta=datetime.timedelta(seconds=21600),
-            check_existence=True,
-            mode="reschedule",
-            allowed_states=ALLOWED_STATES,
-            failed_states=FAILED_STATES,
-            pool="DATA_ENG_EXTERNALTASKSENSOR",
-        )
-    )
-
-    wait_for_fenix_derived__metrics_clients_last_seen__v1 = ExternalTaskSensor(
-        task_id="wait_for_fenix_derived__metrics_clients_last_seen__v1",
-        external_dag_id="bqetl_glean_usage",
-        external_task_id="fenix.fenix_derived__metrics_clients_last_seen__v1",
-        execution_delta=datetime.timedelta(seconds=21600),
-        check_existence=True,
-        mode="reschedule",
-        allowed_states=ALLOWED_STATES,
-        failed_states=FAILED_STATES,
-        pool="DATA_ENG_EXTERNALTASKSENSOR",
-    )
-
-    fenix_derived__clients_last_seen_joined__v1 = bigquery_etl_query(
-        task_id="fenix_derived__clients_last_seen_joined__v1",
-        destination_table="clients_last_seen_joined_v1",
-        dataset_id="fenix_derived",
-        project_id="data-observability-dev",
-        owner="kik@mozilla.com",
-        email=["akommasani@mozilla.com", "ascholtz@mozilla.com", "kik@mozilla.com"],
-        date_partition_parameter="submission_date",
-        depends_on_past=True,
-    )
-
-    fenix_derived__event_types__v1 = bigquery_etl_query(
-        task_id="fenix_derived__event_types__v1",
-        destination_table="event_types_v1",
-        dataset_id="fenix_derived",
-        project_id="data-observability-dev",
-        owner="kik@mozilla.com",
-        email=["akommasani@mozilla.com", "ascholtz@mozilla.com", "kik@mozilla.com"],
-        date_partition_parameter=None,
-        depends_on_past=False,
-        task_concurrency=1,
-        parameters=["submission_date:DATE:{{ds}}"],
-    )
-
-    fenix_derived__events_daily__v1 = bigquery_etl_query(
-        task_id="fenix_derived__events_daily__v1",
-        destination_table="events_daily_v1",
-        dataset_id="fenix_derived",
-        project_id="data-observability-dev",
-        owner="kik@mozilla.com",
-        email=["akommasani@mozilla.com", "ascholtz@mozilla.com", "kik@mozilla.com"],
-        date_partition_parameter="submission_date",
-        depends_on_past=False,
-    )
-
-    fenix_derived__firefox_android_clients__v1 = bigquery_etl_query(
-        task_id="fenix_derived__firefox_android_clients__v1",
-        destination_table="firefox_android_clients_v1",
-        dataset_id="fenix_derived",
-        project_id="data-observability-dev",
-        owner="kik@mozilla.com",
-        email=["akommasani@mozilla.com", "ascholtz@mozilla.com", "kik@mozilla.com"],
-        date_partition_parameter=None,
-        depends_on_past=True,
-        parameters=["submission_date:DATE:{{ds}}"],
-    )
-
-    fenix_derived__metrics_clients_last_seen__v1 = bigquery_etl_query(
-        task_id="fenix_derived__metrics_clients_last_seen__v1",
-        destination_table="metrics_clients_last_seen_v1",
-        dataset_id="fenix_derived",
-        project_id="data-observability-dev",
-        owner="kik@mozilla.com",
-        email=["akommasani@mozilla.com", "ascholtz@mozilla.com", "kik@mozilla.com"],
-        date_partition_parameter="submission_date",
-        depends_on_past=False,
-    )
-
-    fenix_derived__clients_last_seen_joined__v1.set_upstream(
-        wait_for_fenix_derived__clients_last_seen_joined__v1
-    )
-
-    fenix_derived__event_types__v1.set_upstream(wait_for_fenix_derived__event_types__v1)
-
-    fenix_derived__events_daily__v1.set_upstream(
-        wait_for_fenix_derived__events_daily__v1
-    )
-
-    fenix_derived__firefox_android_clients__v1.set_upstream(
-        wait_for_checks__fail_fenix_derived__firefox_android_clients__v1
-    )
-
-    fenix_derived__metrics_clients_last_seen__v1.set_upstream(
-        wait_for_fenix_derived__metrics_clients_last_seen__v1
-    )
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/dags/bqetl_desktop_engagement_model.py /tmp/workspace/generated-sql/dags/bqetl_desktop_engagement_model.py
--- /tmp/workspace/main-generated-sql/dags/bqetl_desktop_engagement_model.py	2024-04-29 17:41:36.000000000 +0000
+++ /tmp/workspace/generated-sql/dags/bqetl_desktop_engagement_model.py	1970-01-01 00:00:00.000000000 +0000
@@ -1,111 +0,0 @@
-# Generated via https://github.com/mozilla/bigquery-etl/blob/main/bigquery_etl/query_scheduling/generate_airflow_dags.py
-
-from airflow import DAG
-from airflow.sensors.external_task import ExternalTaskMarker
-from airflow.sensors.external_task import ExternalTaskSensor
-from airflow.utils.task_group import TaskGroup
-import datetime
-from operators.gcp_container_operator import GKEPodOperator
-from utils.constants import ALLOWED_STATES, FAILED_STATES
-from utils.gcp import bigquery_etl_query, bigquery_dq_check
-
-docs = """
-### bqetl_desktop_engagement_model
-
-Built from bigquery-etl repo, [`dags/bqetl_desktop_engagement_model.py`](https://github.com/mozilla/bigquery-etl/blob/generated-sql/dags/bqetl_desktop_engagement_model.py)
-
-#### Description
-
-Loads the desktop engagement model tables
-#### Owner
-
-kwindau@mozilla.com
-
-#### Tags
-
-* impact/tier_2
-* repo/bigquery-etl
-"""
-
-
-default_args = {
-    "owner": "kwindau@mozilla.com",
-    "start_date": datetime.datetime(2024, 4, 24, 0, 0),
-    "end_date": None,
-    "email": ["kwindau@mozilla.com", "telemetry-alerts@mozilla.com"],
-    "depends_on_past": False,
-    "retry_delay": datetime.timedelta(seconds=1800),
-    "email_on_failure": True,
-    "email_on_retry": False,
-    "retries": 2,
-}
-
-tags = ["impact/tier_2", "repo/bigquery-etl"]
-
-with DAG(
-    "bqetl_desktop_engagement_model",
-    default_args=default_args,
-    schedule_interval="0 12 * * *",
-    doc_md=docs,
-    tags=tags,
-) as dag:
-
-    wait_for_checks__fail_telemetry_derived__clients_first_seen__v2 = (
-        ExternalTaskSensor(
-            task_id="wait_for_checks__fail_telemetry_derived__clients_first_seen__v2",
-            external_dag_id="bqetl_analytics_tables",
-            external_task_id="checks__fail_telemetry_derived__clients_first_seen__v2",
-            execution_delta=datetime.timedelta(seconds=36000),
-            check_existence=True,
-            mode="reschedule",
-            allowed_states=ALLOWED_STATES,
-            failed_states=FAILED_STATES,
-            pool="DATA_ENG_EXTERNALTASKSENSOR",
-        )
-    )
-
-    wait_for_checks__fail_telemetry_derived__clients_last_seen__v2 = ExternalTaskSensor(
-        task_id="wait_for_checks__fail_telemetry_derived__clients_last_seen__v2",
-        external_dag_id="bqetl_main_summary",
-        external_task_id="checks__fail_telemetry_derived__clients_last_seen__v2",
-        execution_delta=datetime.timedelta(seconds=36000),
-        check_existence=True,
-        mode="reschedule",
-        allowed_states=ALLOWED_STATES,
-        failed_states=FAILED_STATES,
-        pool="DATA_ENG_EXTERNALTASKSENSOR",
-    )
-
-    telemetry_derived__desktop_engagement_agg__v1 = bigquery_etl_query(
-        task_id="telemetry_derived__desktop_engagement_agg__v1",
-        destination_table="desktop_engagement_agg_v1",
-        dataset_id="telemetry_derived",
-        project_id="moz-fx-data-shared-prod",
-        owner="kwindau@mozilla.com",
-        email=["kwindau@mozilla.com", "telemetry-alerts@mozilla.com"],
-        date_partition_parameter="submission_date",
-        depends_on_past=False,
-    )
-
-    telemetry_derived__desktop_engagement_client__v1 = bigquery_etl_query(
-        task_id="telemetry_derived__desktop_engagement_client__v1",
-        destination_table="desktop_engagement_client_v1",
-        dataset_id="telemetry_derived",
-        project_id="moz-fx-data-shared-prod",
-        owner="kwindau@mozilla.com",
-        email=["kwindau@mozilla.com", "telemetry-alerts@mozilla.com"],
-        date_partition_parameter="submission_date",
-        depends_on_past=False,
-    )
-
-    telemetry_derived__desktop_engagement_agg__v1.set_upstream(
-        telemetry_derived__desktop_engagement_client__v1
-    )
-
-    telemetry_derived__desktop_engagement_client__v1.set_upstream(
-        wait_for_checks__fail_telemetry_derived__clients_first_seen__v2
-    )
-
-    telemetry_derived__desktop_engagement_client__v1.set_upstream(
-        wait_for_checks__fail_telemetry_derived__clients_last_seen__v2
-    )
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/dags/bqetl_desktop_installs_v1.py /tmp/workspace/generated-sql/dags/bqetl_desktop_installs_v1.py
--- /tmp/workspace/main-generated-sql/dags/bqetl_desktop_installs_v1.py	2024-04-29 17:41:36.000000000 +0000
+++ /tmp/workspace/generated-sql/dags/bqetl_desktop_installs_v1.py	2024-04-29 17:54:46.000000000 +0000
@@ -62,6 +62,18 @@
         pool="DATA_ENG_EXTERNALTASKSENSOR",
     )
 
+    wait_for_ga_derived__downloads_with_attribution__v1 = ExternalTaskSensor(
+        task_id="wait_for_ga_derived__downloads_with_attribution__v1",
+        external_dag_id="bqetl_google_analytics_derived",
+        external_task_id="ga_derived__downloads_with_attribution__v1",
+        execution_delta=datetime.timedelta(seconds=3300),
+        check_existence=True,
+        mode="reschedule",
+        allowed_states=ALLOWED_STATES,
+        failed_states=FAILED_STATES,
+        pool="DATA_ENG_EXTERNALTASKSENSOR",
+    )
+
     firefox_desktop_derived__desktop_installs__v1 = bigquery_etl_query(
         task_id="firefox_desktop_derived__desktop_installs__v1",
         destination_table="desktop_installs_v1",
@@ -76,3 +88,7 @@
     firefox_desktop_derived__desktop_installs__v1.set_upstream(
         wait_for_copy_deduplicate_all
     )
+
+    firefox_desktop_derived__desktop_installs__v1.set_upstream(
+        wait_for_ga_derived__downloads_with_attribution__v1
+    )
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/dags/bqetl_fenix_event_rollup.py /tmp/workspace/generated-sql/dags/bqetl_fenix_event_rollup.py
--- /tmp/workspace/main-generated-sql/dags/bqetl_fenix_event_rollup.py	2024-04-29 17:41:36.000000000 +0000
+++ /tmp/workspace/generated-sql/dags/bqetl_fenix_event_rollup.py	2024-04-29 17:54:43.000000000 +0000
@@ -72,20 +72,6 @@
         parameters=["submission_date:DATE:{{ds}}"],
     )
 
-    with TaskGroup(
-        "fenix_derived__event_types__v1_external",
-    ) as fenix_derived__event_types__v1_external:
-        ExternalTaskMarker(
-            task_id="bqetl_data_observability_test_data_copy__wait_for_fenix_derived__event_types__v1",
-            external_dag_id="bqetl_data_observability_test_data_copy",
-            external_task_id="wait_for_fenix_derived__event_types__v1",
-            execution_date="{{ (execution_date - macros.timedelta(days=-1, seconds=64800)).isoformat() }}",
-        )
-
-        fenix_derived__event_types__v1_external.set_upstream(
-            fenix_derived__event_types__v1
-        )
-
     fenix_derived__event_types_history__v1 = bigquery_etl_query(
         task_id="fenix_derived__event_types_history__v1",
         destination_table="event_types_history_v1",
@@ -108,20 +94,6 @@
         depends_on_past=False,
     )
 
-    with TaskGroup(
-        "fenix_derived__events_daily__v1_external",
-    ) as fenix_derived__events_daily__v1_external:
-        ExternalTaskMarker(
-            task_id="bqetl_data_observability_test_data_copy__wait_for_fenix_derived__events_daily__v1",
-            external_dag_id="bqetl_data_observability_test_data_copy",
-            external_task_id="wait_for_fenix_derived__events_daily__v1",
-            execution_date="{{ (execution_date - macros.timedelta(days=-1, seconds=64800)).isoformat() }}",
-  

⚠️ Only part of the diff is displayed.

Link to full diff

@SuYoungHong
Copy link

I reviewed, left some notes. Supplementary materials here: Downloads with Attribution V3 Review Doc

Actually, I would step back and think about what you want this table to be. I think we discussed it a bit last time. To me, there’s two choices:
1) Replication of downloads_with_attribution_v2
- Will need to be all records from the DL token logs (so 1 record per day per dl token) with the following conditions
- Matched via stub_session_id and GA client id
- Matched via GA client id only with only one session found
- Matched via GA client id only with multiple sessions found (one arbitrarily chosen for match)
- Has GA client id and/or stubsession_id but not match in GA data
- No GA info found so cannot match
2) A table of GA sessions per day
(use case, for marketing to use)
append the following metrics
- Has DL (from the GA side)
- Has DL token logs match
- Is there one, is there multiple?
- Has new profile
- Matched via DL token
- In case of multiple DL tokens or profiles, log that info
- Has returning user profile
- Ditto as above
Has wk4 retained
- Ditto as above

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.

None yet

4 participants