Skip to content

Commit 15f34f3

Browse files
authored
Merge pull request #12 from TechArtists/multiple-project-source
Multiple project source
2 parents 8122a37 + 856b527 commit 15f34f3

15 files changed

+119
-94
lines changed

models/analytics/google_analytics_events.sql

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@
77
},
88
incremental_strategy = 'insert_overwrite',
99
require_partition_filter = true,
10-
cluster_by = ["event_name", "platform", "app_id"]
10+
cluster_by = ["event_name", "platform", "bundle_id"]
1111
) }}
1212

1313

14-
{%- set columnNamesEventDimensions = ["app_id", "reverse_app_id", "event_name", "platform", "appstore", "app_version", "platform_version",
14+
{%- set columnNamesEventDimensions = ["bundle_id", "reverse_bundle_id", "event_name", "platform", "appstore", "app_version", "platform_version",
1515
"user_properties", "event_parameters",
1616
"geo", "device_hardware", "device_language", "device_time_zone_offset",
1717
"traffic_source"
@@ -35,6 +35,8 @@
3535

3636
WITH data as (
3737
SELECT DATE(event_ts) as event_date
38+
, project_id
39+
, dataset_id
3840
, {{ ta_firebase.install_age_group("install_age") }} AS install_age_group
3941
, {{ ta_firebase.unpack_columns_into_minicolumns(columnsForEventDimensions, miniColumnsToIgnoreInGroupBy, miniColumnsToAlsoNil, "", "") }}
4042
, COUNT(1) as cnt
@@ -43,9 +45,11 @@ WITH data as (
4345

4446
FROM {{ ref("google_analytics_events_raw") }}
4547
WHERE {{ ta_firebase.analyticsDateFilterFor('event_date') }}
46-
GROUP BY 1,2 {% for n in range(3, 3 + eventDimensionsUnnestedCount) -%} ,{{ n }} {%- endfor %}
48+
GROUP BY 1,2,3,4 {% for n in range(5, 5 + eventDimensionsUnnestedCount) -%} ,{{ n }} {%- endfor %}
4749
)
4850
SELECT event_date
51+
, project_id
52+
, dataset_id
4953
, install_age_group
5054
, {{ ta_firebase.pack_minicolumns_into_structs_for_select(columnsForEventDimensions, miniColumnsToIgnoreInGroupBy, "", "") }}
5155
, cnt

models/analytics/google_analytics_events_count_raw.sql

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,13 @@
1313

1414
SELECT
1515
event_date
16+
,project_id
17+
,dataset_id
1618
,platform
1719
,user_id
1820
,sum(if(event_name = 'user_engagement',1,0)) as user_engagement
1921
FROM {{ ref("google_analytics_events_raw") }}
2022
WHERE {{ ta_firebase.analyticsDateFilterFor('event_date') }}
2123
AND event_name in ('user_engagement')
22-
GROUP by 1,2,3
24+
GROUP by 1,2,3,4,5
2325

models/analytics/google_analytics_events_forced_nulls.sql

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@
77
},
88
incremental_strategy = 'insert_overwrite',
99
require_partition_filter = true,
10-
cluster_by = ["event_name", "platform", "app_id"]
10+
cluster_by = ["event_name", "platform", "bundle_id"]
1111
) }}
1212

1313

14-
{%- set columnNamesEventDimensions = ["app_id", "reverse_app_id", "event_name", "platform", "appstore", "app_version", "platform_version",
14+
{%- set columnNamesEventDimensions = ["bundle_id", "reverse_bundle_id", "event_name", "platform", "appstore", "app_version", "platform_version",
1515
"user_properties", "event_parameters",
1616
"geo", "device_hardware", "device_language", "device_time_zone_offset",
1717
"traffic_source"
@@ -35,6 +35,8 @@
3535

3636
WITH data as (
3737
SELECT DATE(event_ts) as event_date
38+
, project_id
39+
, dataset_id
3840
, {{ ta_firebase.install_age_group("install_age") }} AS install_age_group
3941
, {{ ta_firebase.unpack_columns_into_minicolumns(columnsForEventDimensions, miniColumnsToIgnoreInGroupBy, miniColumnsToAlsoNil, "", "") }}
4042
, COUNT(1) as cnt
@@ -45,10 +47,12 @@ WITH data as (
4547
WHERE {{ ta_firebase.analyticsDateFilterFor('event_date') }}
4648
{%- set eventNamesToLookFor = set(ta_firebase.flatten_list_of_lists(ta_firebase.get_event_parameter_tuples_for_rollup_alsoNullDimensions() | map(attribute="force_null_dimension_event_name_filter") | list)) %}
4749
AND {{ ta_firebase.makeListIntoSQLInFilter("event_name", eventNamesToLookFor| list) }}
48-
GROUP BY 1,2 {% for n in range(3, 3 + eventDimensionsUnnestedCount) -%} ,{{ n }} {%- endfor %}
50+
GROUP BY 1,2,3,4 {% for n in range(5, 5 + eventDimensionsUnnestedCount) -%} ,{{ n }} {%- endfor %}
4951
)
5052
SELECT event_date
5153
, install_age_group
54+
, project_id
55+
, dataset_id
5256
, {{ ta_firebase.pack_minicolumns_into_structs_for_select(columnsForEventDimensions, miniColumnsToIgnoreInGroupBy, "", "") }}
5357
, cnt
5458
, users

models/analytics/google_analytics_events_raw.sql

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
incremental_strategy = 'insert_overwrite',
1010
lookback = 4,
1111
require_partition_filter = true,
12-
cluster_by = ["event_name", "platform", "app_id"]
12+
cluster_by = ["event_name", "platform", "bundle_id"]
1313
) }}
1414

1515
-- https://support.google.com/firebase/answer/7029846
@@ -22,8 +22,8 @@ SELECT
2222
, {{ ta_firebase.calculate_age_between_timestamps("TIMESTAMP_MICROS(event_timestamp)", "TIMESTAMP_MICROS(user_first_touch_timestamp)") }} as install_age
2323
, LOWER(user_pseudo_id) as user_pseudo_id
2424
, LOWER(user_id) as user_id
25-
, app_info.id as app_id
26-
, ARRAY_TO_STRING(ARRAY_REVERSE(SPLIT(app_info.id, '.')), '.') as reverse_app_id
25+
, app_info.id as bundle_id
26+
, ARRAY_TO_STRING(ARRAY_REVERSE(SPLIT(app_info.id, '.')), '.') as reverse_bundle_id
2727
, event_name
2828
, {{ var( 'TA:CUSTOM_PLATFORM_PREPROCESSOR', 'platform') }} as platform
2929
, app_info.install_source as appstore
@@ -53,8 +53,8 @@ SELECT
5353
) AS device_language
5454
, IF(device.time_zone_offset_seconds >= 0,'+', '-') || LEFT(CAST(TIME(TIMESTAMP_SECONDS(ABS(device.time_zone_offset_seconds))) AS STRING),5)
5555
AS device_time_zone_offset
56-
, STRUCT<name STRING, medium STRING, source STRING>(
57-
traffic_source.name, traffic_source.medium, traffic_source.source
56+
, STRUCT<name STRING, medium STRING, source STRING, manual_campaign_id STRING, manual_campaign_name STRING, manual_source STRING, manual_medium STRING, manual_term STRING, manual_content STRING, manual_source_platform STRING, manual_creative_format STRING, manual_marketing_tactic STRING >(
57+
traffic_source.name, traffic_source.medium, traffic_source.source, collected_traffic_source.manual_campaign_id, collected_traffic_source.manual_campaign_name, collected_traffic_source.manual_source, collected_traffic_source.manual_medium, collected_traffic_source.manual_term, collected_traffic_source.manual_content, collected_traffic_source.manual_source_platform, collected_traffic_source.manual_creative_format, collected_traffic_source.manual_marketing_tactic
5858
) AS traffic_source
5959
, STRUCT<revenue FLOAT64, currency STRING>(
6060
user_ltv.revenue, user_ltv.currency
@@ -121,7 +121,7 @@ FROM
121121
{%- endif -%}
122122
) as events
123123
LEFT JOIN {{ref('ta_iso_country')}} as country_codes
124-
ON LOWER(events.geo.country) = LOWER(country_codes.firebase_name)
124+
ON LOWER(events.geo.country) = LOWER(COALESCE(country_codes.firebase_name,country_codes.name))
125125
LEFT JOIN {{ref("ta_iso_language")}} as language_codes
126126
ON LOWER(SPLIT(events.device.language,'-')[SAFE_OFFSET(0)]) = language_codes.alpha_2
127127
LEFT JOIN {{ref('ta_iso_country')}} as language_region_codes -- some language have 3 parts (e.g. zh-hans-us), so just get the last one

models/analytics/google_analytics_events_wid.sql

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,17 @@
77
},
88
incremental_strategy = 'insert_overwrite',
99
require_partition_filter = true,
10-
cluster_by = ["event_name", "platform", "app_id"]
10+
cluster_by = ["event_name", "platform", "bundle_id"]
1111

1212
) }}
1313

1414

15-
{%- set columnNamesEventDimensions = ["app_id", "reverse_app_id","event_name", "platform", "appstore", "app_version", "platform_version",
15+
{%- set columnNamesEventDimensions = ["bundle_id", "reverse_bundle_id","event_name", "platform", "appstore", "app_version", "platform_version",
1616
"user_properties", "event_parameters",
1717
"geo", "device_hardware", "device_language", "device_time_zone_offset",
1818
"traffic_source"
1919
] -%}
20-
{%- set columnNamesInstallDimensions = ["app_id", "reverse_app_id", "event_name", "platform", "appstore", "app_version", "platform_version",
20+
{%- set columnNamesInstallDimensions = ["bundle_id", "reverse_bundle_id", "event_name", "platform", "appstore", "app_version", "platform_version",
2121
"user_properties", "event_parameters",
2222
"geo", "device_hardware", "device_language", "device_time_zone_offset",
2323
"traffic_source"
@@ -49,6 +49,8 @@
4949
{%- set miniColumnsToAlsoNil = [] -%}
5050
WITH data as (
5151
SELECT DATE(events.event_ts) as event_date
52+
, events.project_id
53+
, events.dataset_id
5254
, {{ ta_firebase.unpack_columns_into_minicolumns(columnsForEventDimensions, miniColumnsToIgnoreInGroupBy, miniColumnsToAlsoNil ,"events.", "event_") }}
5355
, DATE(installs.install_ts) as install_date
5456
, events.install_age as install_age
@@ -64,11 +66,13 @@ WITH data as (
6466
AND installs.event_date >= '2020-01-01'
6567
-- TODO: max join on installs ? Have an LTV_MAX variable (e.g. 2 years)
6668
-- and then join on installs via installs > EVENT_DATE - 2 years?
67-
GROUP BY 1,2,3,4 {% for n in range(5, 5 + eventDimensionsUnnestedCount + installedDatesDimensionsUnnestedCount + installDimensionsUnnestedCount) -%} ,{{ n }} {%- endfor %}
69+
GROUP BY 1,2,3,4,5,6 {% for n in range(7, 7 + eventDimensionsUnnestedCount + installedDatesDimensionsUnnestedCount + installDimensionsUnnestedCount) -%} ,{{ n }} {%- endfor %}
6870
)
6971

7072

7173
SELECT event_date
74+
, project_id
75+
, dataset_id
7276
, {{ ta_firebase.pack_minicolumns_into_structs_for_select(columnsForEventDimensions, miniColumnsToIgnoreInGroupBy, "event_", "") }}
7377
, install_age
7478
, install_date

models/analytics/google_analytics_events_wid_forced_nulls.sql

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,17 @@
77
},
88
incremental_strategy = 'insert_overwrite',
99
require_partition_filter = true,
10-
cluster_by = ["event_name", "platform", "app_id"]
10+
cluster_by = ["event_name", "platform", "bundle_id"]
1111

1212
) }}
1313

1414

15-
{%- set columnNamesEventDimensions = ["app_id", "reverse_app_id","event_name", "platform", "appstore", "app_version", "platform_version",
15+
{%- set columnNamesEventDimensions = ["bundle_id", "reverse_bundle_id","event_name", "platform", "appstore", "app_version", "platform_version",
1616
"user_properties", "event_parameters",
1717
"geo", "device_hardware", "device_language", "device_time_zone_offset",
1818
"traffic_source"
1919
] -%}
20-
{%- set columnNamesInstallDimensions = ["app_id", "reverse_app_id", "event_name", "platform", "appstore", "app_version", "platform_version",
20+
{%- set columnNamesInstallDimensions = ["bundle_id", "reverse_bundle_id", "event_name", "platform", "appstore", "app_version", "platform_version",
2121
"user_properties", "event_parameters",
2222
"geo", "device_hardware", "device_language", "device_time_zone_offset",
2323
"traffic_source"
@@ -50,6 +50,8 @@
5050
{%- set miniColumnsToAlsoNil = ta_firebase.get_mini_columns_to_also_force_null_when_rolling_up() -%}
5151
WITH data as (
5252
SELECT DATE(events.event_ts) as event_date
53+
, events.project_id
54+
, events.dataset_id
5355
, {{ ta_firebase.unpack_columns_into_minicolumns(columnsForEventDimensions, miniColumnsToIgnoreInGroupBy, miniColumnsToAlsoNil ,"events.", "event_") }}
5456
, DATE(installs.install_ts) as install_date
5557
, events.install_age as install_age
@@ -66,11 +68,13 @@ WITH data as (
6668
AND {{ ta_firebase.makeListIntoSQLInFilter("events.event_name", eventNamesToLookFor| list) }}
6769
AND installs.event_date >= '2020-01-01'
6870
-- TODO: max join on installs ?
69-
GROUP BY 1,2,3,4 {% for n in range(5, 5 + eventDimensionsUnnestedCount + installedDatesDimensionsUnnestedCount + installDimensionsUnnestedCount) -%} ,{{ n }} {%- endfor %}
71+
GROUP BY 1,2,3,4,5,6 {% for n in range(7, 7 + eventDimensionsUnnestedCount + installedDatesDimensionsUnnestedCount + installDimensionsUnnestedCount) -%} ,{{ n }} {%- endfor %}
7072
)
7173

7274

7375
SELECT event_date
76+
, project_id
77+
, dataset_id
7478
, {{ ta_firebase.pack_minicolumns_into_structs_for_select(columnsForEventDimensions, miniColumnsToIgnoreInGroupBy, "event_", "") }}
7579
, install_age
7680
, install_date

models/analytics/google_analytics_installs.sql

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@
77
},
88
incremental_strategy = 'insert_overwrite',
99
require_partition_filter = true,
10-
cluster_by = ["event_name", "platform", "app_id"]
10+
cluster_by = ["event_name", "platform", "bundle_id"]
1111
) }}
1212

1313

14-
{%- set columnNamesEventDimensions = ["app_id", "reverse_app_id", "event_name", "platform", "appstore", "app_version", "platform_version",
14+
{%- set columnNamesEventDimensions = ["bundle_id", "reverse_bundle_id", "event_name", "platform", "appstore", "app_version", "platform_version",
1515
"user_properties", "event_parameters",
1616
"geo", "device_hardware", "device_language", "device_time_zone_offset",
1717
"traffic_source"
@@ -26,17 +26,21 @@
2626
WITH data as (
2727
SELECT DATE(event_ts) as event_date
2828
, DATE(install_ts) as install_date
29+
, project_id
30+
, dataset_id
2931
, install_age
3032
, {{ ta_firebase.unpack_columns_into_minicolumns(columnsForEventDimensions, miniColumnsToIgnoreInGroupBy, [], "", "") }}
3133
, COUNT(1) as cnt
3234
, COUNT(DISTINCT(user_pseudo_id)) as users
3335

3436
FROM {{ ref("google_analytics_installs_raw") }}
3537
WHERE {{ ta_firebase.analyticsDateFilterFor('event_date') }}
36-
GROUP BY 1,2,3 {% for n in range(4, 4 + eventDimensionsUnnestedCount) -%} ,{{ n }} {%- endfor %}
38+
GROUP BY 1,2,3,4,5 {% for n in range(6, 6 + eventDimensionsUnnestedCount) -%} ,{{ n }} {%- endfor %}
3739
)
3840
SELECT event_date
3941
, install_date
42+
, project_id
43+
, dataset_id
4044
, install_age
4145
, {{ ta_firebase.pack_minicolumns_into_structs_for_select(columnsForEventDimensions, miniColumnsToIgnoreInGroupBy, "", "") }}
4246
, cnt

models/analytics/google_analytics_installs_raw.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
},
88
incremental_strategy = 'insert_overwrite',
99
require_partition_filter = true,
10-
cluster_by = ["platform", "app_id"],
10+
cluster_by = ["platform", "bundle_id"],
1111
) }}
1212
-- incremental_strategy='insert_overwrite',
1313
-- require_partition_filter = false

models/analytics/google_analytics_ui.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
},
88
incremental_strategy = 'insert_overwrite',
99
require_partition_filter = true,
10-
cluster_by = ["event_name", "platform", "app_id"]
10+
cluster_by = ["event_name", "platform", "bundle_id"]
1111
) }}
1212

1313
SELECT *

models/analytics/google_analytics_ui_wid.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
},
88
incremental_strategy = 'insert_overwrite',
99
require_partition_filter = true,
10-
cluster_by = ["event_name", "platform", "app_id"]
10+
cluster_by = ["event_name", "platform", "bundle_id"]
1111

1212
) }}
1313

0 commit comments

Comments
 (0)