|
3 | 3 | {% endmacro %}
|
4 | 4 |
|
5 | 5 | {% macro default__base_select_source() %}
|
6 |
| - parse_date('%Y%m%d',event_date) as event_date_dt, |
7 |
| - event_timestamp, |
8 |
| - event_name, |
9 |
| - event_params, |
10 |
| - event_previous_timestamp, |
11 |
| - event_value_in_usd, |
12 |
| - event_bundle_sequence_id, |
13 |
| - event_server_timestamp_offset, |
14 |
| - user_id, |
15 |
| - user_pseudo_id, |
16 |
| - privacy_info, |
17 |
| - user_properties, |
18 |
| - user_first_touch_timestamp, |
19 |
| - user_ltv, |
20 |
| - device, |
21 |
| - geo, |
22 |
| - app_info, |
23 |
| - traffic_source, |
24 |
| - stream_id, |
25 |
| - platform, |
26 |
| - ecommerce, |
27 |
| - items, |
| 6 | + parse_date('%Y%m%d',event_date) as event_date_dt |
| 7 | + , event_timestamp |
| 8 | + , event_name |
| 9 | + , event_params |
| 10 | + , event_previous_timestamp |
| 11 | + , event_value_in_usd |
| 12 | + , event_bundle_sequence_id |
| 13 | + , event_server_timestamp_offset |
| 14 | + , user_id |
| 15 | + , user_pseudo_id |
| 16 | + , privacy_info |
| 17 | + , user_properties |
| 18 | + , user_first_touch_timestamp |
| 19 | + , user_ltv |
| 20 | + , device |
| 21 | + , geo |
| 22 | + , app_info |
| 23 | + , traffic_source |
| 24 | + , stream_id |
| 25 | + , platform |
| 26 | + , ecommerce.total_item_quantity |
| 27 | + , ecommerce.purchase_revenue_in_usd |
| 28 | + , ecommerce.purchase_revenue |
| 29 | + , ecommerce.refund_value_in_usd |
| 30 | + , ecommerce.refund_value |
| 31 | + , ecommerce.shipping_value_in_usd |
| 32 | + , ecommerce.shipping_value |
| 33 | + , ecommerce.tax_value_in_usd |
| 34 | + , ecommerce.tax_value |
| 35 | + , ecommerce.unique_items |
| 36 | + , ecommerce.transaction_id |
| 37 | + , items |
28 | 38 | {% endmacro %}
|
29 | 39 |
|
30 | 40 | {% macro base_select_renamed() %}
|
31 | 41 | {{ return(adapter.dispatch('base_select_renamed', 'ga4')()) }}
|
32 | 42 | {% endmacro %}
|
33 | 43 |
|
34 | 44 | {% macro default__base_select_renamed() %}
|
35 |
| - event_date_dt, |
36 |
| - event_timestamp, |
37 |
| - lower(replace(trim(event_name), " ", "_")) as event_name, -- Clean up all event names to be snake cased |
38 |
| - event_params, |
39 |
| - event_previous_timestamp, |
40 |
| - event_value_in_usd, |
41 |
| - event_bundle_sequence_id, |
42 |
| - event_server_timestamp_offset, |
43 |
| - user_id, |
44 |
| - user_pseudo_id, |
45 |
| - privacy_info.analytics_storage as privacy_info_analytics_storage, |
46 |
| - privacy_info.ads_storage as privacy_info_ads_storage, |
47 |
| - privacy_info.uses_transient_token as privacy_info_uses_transient_token, |
48 |
| - user_properties, |
49 |
| - user_first_touch_timestamp, |
50 |
| - user_ltv.revenue as user_ltv_revenue, |
51 |
| - user_ltv.currency as user_ltv_currency, |
52 |
| - device.category as device_category, |
53 |
| - device.mobile_brand_name as device_mobile_brand_name, |
54 |
| - device.mobile_model_name as device_mobile_model_name, |
55 |
| - device.mobile_marketing_name as device_mobile_marketing_name, |
56 |
| - device.mobile_os_hardware_model as device_mobile_os_hardware_model, |
57 |
| - device.operating_system as device_operating_system, |
58 |
| - device.operating_system_version as device_operating_system_version, |
59 |
| - device.vendor_id as device_vendor_id, |
60 |
| - device.advertising_id as device_advertising_id, |
61 |
| - device.language as device_language, |
62 |
| - device.is_limited_ad_tracking as device_is_limited_ad_tracking, |
63 |
| - device.time_zone_offset_seconds as device_time_zone_offset_seconds, |
64 |
| - device.browser as device_browser, |
65 |
| - device.browser_version as device_browser_version, |
66 |
| - device.web_info.browser as device_web_info_browser, |
67 |
| - device.web_info.browser_version as device_web_info_browser_version, |
68 |
| - device.web_info.hostname as device_web_info_hostname, |
69 |
| - geo.continent as geo_continent, |
70 |
| - geo.country as geo_country, |
71 |
| - geo.region as geo_region, |
72 |
| - geo.city as geo_city, |
73 |
| - geo.sub_continent as geo_sub_continent, |
74 |
| - geo.metro as geo_metro, |
75 |
| - app_info.id as app_info_id, |
76 |
| - app_info.version as app_info_version, |
77 |
| - app_info.install_store as app_info_install_store, |
78 |
| - app_info.firebase_app_id as app_info_firebase_app_id, |
79 |
| - app_info.install_source as app_info_install_source, |
80 |
| - traffic_source.name as user_campaign, |
81 |
| - traffic_source.medium as user_medium, |
82 |
| - traffic_source.source as user_source, |
83 |
| - stream_id, |
84 |
| - platform, |
85 |
| - ecommerce, |
86 |
| - items, |
87 |
| - {{ ga4.unnest_key('event_params', 'ga_session_id', 'int_value', 'session_id') }}, |
88 |
| - {{ ga4.unnest_key('event_params', 'page_location') }}, |
89 |
| - {{ ga4.unnest_key('event_params', 'ga_session_number', 'int_value', 'session_number') }}, |
90 |
| - COALESCE( |
| 45 | + event_date_dt |
| 46 | + , event_timestamp |
| 47 | + , lower(replace(trim(event_name), " ", "_")) as event_name -- Clean up all event names to be snake cased |
| 48 | + , event_params |
| 49 | + , event_previous_timestamp |
| 50 | + , event_value_in_usd |
| 51 | + , event_bundle_sequence_id |
| 52 | + , event_server_timestamp_offset |
| 53 | + , user_id |
| 54 | + , user_pseudo_id |
| 55 | + , privacy_info.analytics_storage as privacy_info_analytics_storage |
| 56 | + , privacy_info.ads_storage as privacy_info_ads_storage |
| 57 | + , privacy_info.uses_transient_token as privacy_info_uses_transient_token |
| 58 | + , user_properties |
| 59 | + , user_first_touch_timestamp |
| 60 | + , user_ltv.revenue as user_ltv_revenue |
| 61 | + , user_ltv.currency as user_ltv_currency |
| 62 | + , device.category as device_category |
| 63 | + , device.mobile_brand_name as device_mobile_brand_name |
| 64 | + , device.mobile_model_name as device_mobile_model_name |
| 65 | + , device.mobile_marketing_name as device_mobile_marketing_name |
| 66 | + , device.mobile_os_hardware_model as device_mobile_os_hardware_model |
| 67 | + , device.operating_system as device_operating_system |
| 68 | + , device.operating_system_version as device_operating_system_version |
| 69 | + , device.vendor_id as device_vendor_id |
| 70 | + , device.advertising_id as device_advertising_id |
| 71 | + , device.language as device_language |
| 72 | + , device.is_limited_ad_tracking as device_is_limited_ad_tracking |
| 73 | + , device.time_zone_offset_seconds as device_time_zone_offset_seconds |
| 74 | + , device.browser as device_browser |
| 75 | + , device.browser_version as device_browser_version |
| 76 | + , device.web_info.browser as device_web_info_browser |
| 77 | + , device.web_info.browser_version as device_web_info_browser_version |
| 78 | + , device.web_info.hostname as device_web_info_hostname |
| 79 | + , geo.continent as geo_continent |
| 80 | + , geo.country as geo_country |
| 81 | + , geo.region as geo_region |
| 82 | + , geo.city as geo_city |
| 83 | + , geo.sub_continent as geo_sub_continent |
| 84 | + , geo.metro as geo_metro |
| 85 | + , app_info.id as app_info_id |
| 86 | + , app_info.version as app_info_version |
| 87 | + , app_info.install_store as app_info_install_store |
| 88 | + , app_info.firebase_app_id as app_info_firebase_app_id |
| 89 | + , app_info.install_source as app_info_install_source |
| 90 | + , traffic_source.name as user_campaign |
| 91 | + , traffic_source.medium as user_medium |
| 92 | + , traffic_source.source as user_source |
| 93 | + , stream_id |
| 94 | + , platform |
| 95 | + , struct( |
| 96 | + total_item_quantity |
| 97 | + , purchase_revenue_in_usd |
| 98 | + , purchase_revenue |
| 99 | + , refund_value_in_usd |
| 100 | + , refund_value |
| 101 | + , shipping_value_in_usd |
| 102 | + , shipping_value |
| 103 | + , tax_value_in_usd |
| 104 | + , tax_value |
| 105 | + , unique_items |
| 106 | + , transaction_id |
| 107 | + ) as ecommerce |
| 108 | + , (select |
| 109 | + array_agg(struct( |
| 110 | + unnested_items.item_id |
| 111 | + , unnested_items.item_name |
| 112 | + , unnested_items.item_brand |
| 113 | + , unnested_items.item_variant |
| 114 | + , unnested_items.item_category |
| 115 | + , unnested_items.item_category2 |
| 116 | + , unnested_items.item_category3 |
| 117 | + , unnested_items.item_category4 |
| 118 | + , unnested_items.item_category5 |
| 119 | + , unnested_items.price_in_usd |
| 120 | + , unnested_items.price |
| 121 | + , unnested_items.quantity |
| 122 | + , unnested_items.item_revenue_in_usd |
| 123 | + , unnested_items.item_revenue |
| 124 | + , unnested_items.item_refund_in_usd |
| 125 | + , unnested_items.item_refund |
| 126 | + , unnested_items.coupon |
| 127 | + , unnested_items.affiliation |
| 128 | + , unnested_items.location_id |
| 129 | + , unnested_items.item_list_id |
| 130 | + , unnested_items.item_list_name |
| 131 | + , unnested_items.item_list_index |
| 132 | + , unnested_items.promotion_id |
| 133 | + , unnested_items.promotion_name |
| 134 | + , unnested_items.creative_name |
| 135 | + , unnested_items.creative_slot |
| 136 | + , unnested_items.item_params |
| 137 | + )) from unnest(items) as unnested_items |
| 138 | + ) items |
| 139 | + , {{ ga4.unnest_key('event_params', 'ga_session_id', 'int_value', 'session_id') }} |
| 140 | + , {{ ga4.unnest_key('event_params', 'page_location') }} |
| 141 | + , {{ ga4.unnest_key('event_params', 'ga_session_number', 'int_value', 'session_number') }} |
| 142 | + , COALESCE( |
91 | 143 | (SELECT value.int_value FROM unnest(event_params) WHERE key = "session_engaged"),
|
92 | 144 | (CASE WHEN (SELECT value.string_value FROM unnest(event_params) WHERE key = "session_engaged") = "1" THEN 1 END)
|
93 |
| - ) as session_engaged, |
94 |
| - {{ ga4.unnest_key('event_params', 'engagement_time_msec', 'int_value') }}, |
95 |
| - {{ ga4.unnest_key('event_params', 'page_title') }}, |
96 |
| - {{ ga4.unnest_key('event_params', 'page_referrer') }}, |
97 |
| - {{ ga4.unnest_key('event_params', 'source', 'lower_string_value', 'event_source') }}, |
98 |
| - {{ ga4.unnest_key('event_params', 'medium', 'lower_string_value', 'event_medium') }}, |
99 |
| - {{ ga4.unnest_key('event_params', 'campaign', 'lower_string_value', 'event_campaign') }}, |
100 |
| - {{ ga4.unnest_key('event_params', 'content', 'lower_string_value', 'event_content') }}, |
101 |
| - {{ ga4.unnest_key('event_params', 'term', 'lower_string_value', 'event_term') }}, |
102 |
| - CASE |
| 145 | + ) as session_engaged |
| 146 | + , {{ ga4.unnest_key('event_params', 'engagement_time_msec', 'int_value') }} |
| 147 | + , {{ ga4.unnest_key('event_params', 'page_title') }} |
| 148 | + , {{ ga4.unnest_key('event_params', 'page_referrer') }} |
| 149 | + , {{ ga4.unnest_key('event_params', 'source', 'lower_string_value', 'event_source') }} |
| 150 | + , {{ ga4.unnest_key('event_params', 'medium', 'lower_string_value', 'event_medium') }} |
| 151 | + , {{ ga4.unnest_key('event_params', 'campaign', 'lower_string_value', 'event_campaign') }} |
| 152 | + , {{ ga4.unnest_key('event_params', 'content', 'lower_string_value', 'event_content') }} |
| 153 | + , {{ ga4.unnest_key('event_params', 'term', 'lower_string_value', 'event_term') }} |
| 154 | + , CASE |
103 | 155 | WHEN event_name = 'page_view' THEN 1
|
104 | 156 | ELSE 0
|
105 |
| - END AS is_page_view, |
106 |
| - CASE |
| 157 | + END AS is_page_view |
| 158 | + , CASE |
107 | 159 | WHEN event_name = 'purchase' THEN 1
|
108 | 160 | ELSE 0
|
109 | 161 | END AS is_purchase
|
|
0 commit comments