Skip to content

Commit

Permalink
Consider screen view ID from the screen view context (close #14)
Browse files Browse the repository at this point in the history
  • Loading branch information
matus-tomlein committed Jan 2, 2024
1 parent d736544 commit 74151e3
Show file tree
Hide file tree
Showing 10 changed files with 144 additions and 136 deletions.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
user_id,user_identifier,network_userid,start_tstamp,end_tstamp,model_tstamp,first_platform,last_platform,on_web,on_mobile,last_screen_resolution,last_os_type,last_os_version,last_mobile__device_manufacturer,last_mobile__device_model,last_mobile__carrier,first_mobile__device_manufacturer,first_mobile__device_model,mobile__os_type,mobile__os_version,mobile__android_idfa,mobile__apple_idfa,mobile__apple_idfv,first_mobile__carrier,mobile__open_idfa,mobile__network_technology,mobile__network_type,mobile__physical_memory,mobile__system_available_memory,mobile__app_available_memory,mobile__battery_level,mobile__battery_state,mobile__low_power_mode,mobile__available_storage,mobile__total_storage,mobile__is_portrait,mobile__resolution,mobile__scale,mobile__language,mobile__app_set_id,mobile__app_set_id_scope,first_geo_country,first_geo_country_name,first_geo_continent,first_geo_city,first_geo_region_name,last_geo_country,last_geo_country_name,last_geo_continent,last_geo_city,last_geo_region_name,geo_zipcode,geo_latitude,geo_longitude,geo_timezone,"views",sessions,active_days,engaged_time_in_s,screen_names_viewed,sessions_duration_s,page_referrer,refr_medium,refr_source,refr_term,first_page_title,first_page_url,first_page_urlscheme,first_page_urlhost,first_page_urlpath,first_page_urlquery,first_page_urlfragment,first_br_lang,first_br_lang_name,last_page_title,last_page_url,last_page_urlscheme,last_page_urlhost,last_page_urlpath,last_page_urlquery,last_page_urlfragment,last_br_lang,last_br_lang_name,refr_urlscheme,refr_urlhost,refr_urlpath,refr_urlquery,refr_urlfragment,first_screen_view__name,first_screen_view__type,last_screen_view__name,last_screen_view__transition_type,last_screen_view__type,mkt_medium,mkt_source,mkt_term,mkt_content,mkt_campaign,mkt_clickid,mkt_network,mkt_source_platform,default_channel_group,app_errors,fatal_app_errors,first_event_id,first_event_id2,last_event_id,last_event_id2
Unexpired session,12c98e1f5869e3f298fef62699ad9bbe5410d1685e8344a1a1f86e92029685f0,0af211ddbca948cb63c5c7eecf386e5920842b030126f30d121e24d1fa809313,2020-07-03 15:55:18.542000000,2020-07-03 15:55:18.542000000,2023-09-26 11:37:50.200000000,web,web,true,false,,MacOS,>=10.15.7,,,,,,,,,,,,,,,,,,,,,,,,,,,,,GB,United Kingdom of Great Britain and Northern Ireland,Europe,Hackney,Hackney,GB,United Kingdom of Great Britain and Northern Ireland,Europe,Hackney,Hackney,E2,51.5507,-0.0537,Europe/London,"1",1,1,0,0,0,http://localhost:3000/177234df-d425-412e-ad8d-8b97515b2807/getting-started,,,,Snowplow,http://localhost:3000/177234df-d425-412e-ad8d-8b97515b2807/getting-started,http,localhost,/177234df-d425-412e-ad8d-8b97515b2807/getting-started,,,en-GB,English (United Kingdom),Snowplow,http://localhost:3000/177234df-d425-412e-ad8d-8b97515b2807/getting-started,http,localhost,/177234df-d425-412e-ad8d-8b97515b2807/getting-started,,,en-GB,English (United Kingdom),http,localhost,/177234df-d425-412e-ad8d-8b97515b2807/getting-started,,,,,,,,,,,,,,,,Unassigned,0,0,3b0fd63c907de8e2212972c8f409e51ff9628e48904185350d07ac8da380d335,3b0fd63c907de8e2212972c8f409e51ff9628e48904185350d07ac8da380d335-first,3b0fd63c907de8e2212972c8f409e51ff9628e48904185350d07ac8da380d335,3b0fd63c907de8e2212972c8f409e51ff9628e48904185350d07ac8da380d335-last
long session,a7208f5a-5e77-4351-8840-f28a3d2a6507,73df60bfe16d26e0acb01d699a174243b6d4dbef08d60c4b5e8fd360f05264ea,2021-02-01 23:55:13.000000000,2021-02-27 14:17:24.000000000,2023-09-26 11:37:50.200000000,mob,mob,false,true,1440x2960,Google Android 8.1 (Oreo),8.1,Samsung,SM-N960N Galaxy Note9 TD-LTE KR 128GB,Unknown,Samsung,SM-N960N Galaxy Note9 TD-LTE KR 128GB,Google Android 8.1 (Oreo),8.1,00000000-0000-0000-0000-000000000000,na,na,Unknown,na,2G,wifi,1,1,1,42,charging,true,1,128000000000,false,1440x2960,1,na,na,na,IE,Ireland,Europe,Dublin,Leinster,IE,Ireland,Europe,Dublin,Leinster,D02,53.3338,-6.2488,Europe/Dublin,"30",2,2,0,2,87732,,,,,,,,,,,,English,,,,,,,,,English,,,,,,,na,na,na,na,na,,,,,,,,,Unassigned,0,0,7f536c8a-5ae9-44eb-aff5-78cbcddf3269,7f536c8a-5ae9-44eb-aff5-78cbcddf3269-first,1421c98b-7875-4b16-926c-4fb75800bd4f,1421c98b-7875-4b16-926c-4fb75800bd4f-last
NULL screen_view_id,7a62ec9d-2aa0-4426-b014-eba2d0dcfebb,68db430d2fbbd2966db71f94c0c0c256fd5c0c3bdafe3672958d0884f91dcd30,2021-02-21 11:31:33.000000000,2021-02-21 11:34:28.000000000,2023-09-26 11:37:50.200000000,mob,mob,false,true,1440x2960,Google Android 8.1 (Oreo),8.1,Samsung,SM-N960N Galaxy Note9 TD-LTE KR 128GB,Unknown,Samsung,SM-N960N Galaxy Note9 TD-LTE KR 128GB,Google Android 8.1 (Oreo),8.1,00000000-0000-0000-0000-000000000000,na,na,Unknown,na,2G,wifi,1,1,1,42,charging,true,1,128000000000,false,1440x2960,1,na,na,na,DE,Germany,Europe,Frankfurt am Main,Hesse,DE,Germany,Europe,Frankfurt am Main,Hesse,60313,50.1188,8.6843,Europe/Berlin,"6",2,1,0,2,19,,,,,,,,,,,,en,English,,,,,,,,en,English,,,,,,na,na,na,na,na,,,,,,,,,Unassigned,0,0,994ba6d9-8b6e-42a3-b4cf-3e9ca969d28c,994ba6d9-8b6e-42a3-b4cf-3e9ca969d28c-first,1548be58-4ce7-4a32-a5e8-2696ece941f4,1548be58-4ce7-4a32-a5e8-2696ece941f4-last
dupe: event_id different collector_tstamp,7813445e-40ed-4306-8d92-01cefe2235c7,0e77779ebe3beec35d423f1c1952b81d69ecda6325902921c8e761856835808d,2021-02-26 10:50:34.000000000,2021-02-26 11:08:47.000000000,2023-09-26 11:37:50.200000000,mob,mob,false,true,1440x2960,Google Android 8.1 (Oreo),8.1,Samsung,SM-N960N Galaxy Note9 TD-LTE KR 128GB,Unknown,Samsung,SM-N960N Galaxy Note9 TD-LTE KR 128GB,Google Android 8.1 (Oreo),8.1,00000000-0000-0000-0000-000000000000,na,na,Unknown,na,2G,wifi,1,1,1,42,charging,true,1,128000000000,false,1440x2960,1,na,na,na,IT,Italy,Europe,Genoa,Provincia di Genova,IT,Italy,Europe,Genoa,Provincia di Genova,16167,44.4028,8.9448,Europe/Rome,"41",2,1,0,2,1098,,,,,,,,,,,,English,,,,,,,,,English,,,,,,,na,na,na,na,na,,,,,,,,,Unassigned,0,0,3cfe1cd4-a20e-4fc7-952a-a5cb7f7d063f,3cfe1cd4-a20e-4fc7-952a-a5cb7f7d063f-first,3cfe1cd4-a20e-4fc7-952a-a5cb7f7d063f,3cfe1cd4-a20e-4fc7-952a-a5cb7f7d063f-last
long session,a7208f5a-5e77-4351-8840-f28a3d2a6507,73df60bfe16d26e0acb01d699a174243b6d4dbef08d60c4b5e8fd360f05264ea,2021-02-01 23:55:13.000000000,2021-02-27 14:17:24.000000000,2023-09-26 11:37:50.200000000,mob,mob,false,true,1440x2960,Google Android 8.1 (Oreo),8.1,Samsung,SM-N960N Galaxy Note9 TD-LTE KR 128GB,Unknown,Samsung,SM-N960N Galaxy Note9 TD-LTE KR 128GB,Google Android 8.1 (Oreo),8.1,00000000-0000-0000-0000-000000000000,na,na,Unknown,na,2G,wifi,1,1,1,42,charging,true,1,128000000000,false,1440x2960,1,na,na,na,IE,Ireland,Europe,Dublin,Leinster,IE,Ireland,Europe,Dublin,Leinster,D02,53.3338,-6.2488,Europe/Dublin,"32",2,2,0,2,87732,,,,,,,,,,,,English,,,,,,,,,English,,,,,,,na,na,na,na,na,,,,,,,,,Unassigned,0,0,7f536c8a-5ae9-44eb-aff5-78cbcddf3269,7f536c8a-5ae9-44eb-aff5-78cbcddf3269-first,1421c98b-7875-4b16-926c-4fb75800bd4f,1421c98b-7875-4b16-926c-4fb75800bd4f-last
NULL screen_view_id,7a62ec9d-2aa0-4426-b014-eba2d0dcfebb,68db430d2fbbd2966db71f94c0c0c256fd5c0c3bdafe3672958d0884f91dcd30,2021-02-21 11:31:33.000000000,2021-02-21 11:34:28.000000000,2023-09-26 11:37:50.200000000,mob,mob,false,true,1440x2960,Google Android 8.1 (Oreo),8.1,Samsung,SM-N960N Galaxy Note9 TD-LTE KR 128GB,Unknown,Samsung,SM-N960N Galaxy Note9 TD-LTE KR 128GB,Google Android 8.1 (Oreo),8.1,00000000-0000-0000-0000-000000000000,na,na,Unknown,na,2G,wifi,1,1,1,42,charging,true,1,128000000000,false,1440x2960,1,na,na,na,DE,Germany,Europe,Frankfurt am Main,Hesse,DE,Germany,Europe,Frankfurt am Main,Hesse,60313,50.1188,8.6843,Europe/Berlin,"8",2,1,0,2,19,,,,,,,,,,,,en,English,,,,,,,,en,English,,,,,,na,na,na,na,na,,,,,,,,,Unassigned,0,0,994ba6d9-8b6e-42a3-b4cf-3e9ca969d28c,994ba6d9-8b6e-42a3-b4cf-3e9ca969d28c-first,1548be58-4ce7-4a32-a5e8-2696ece941f4,1548be58-4ce7-4a32-a5e8-2696ece941f4-last
dupe: event_id different collector_tstamp,7813445e-40ed-4306-8d92-01cefe2235c7,0e77779ebe3beec35d423f1c1952b81d69ecda6325902921c8e761856835808d,2021-02-26 10:50:34.000000000,2021-02-26 11:08:47.000000000,2023-09-26 11:37:50.200000000,mob,mob,false,true,1440x2960,Google Android 8.1 (Oreo),8.1,Samsung,SM-N960N Galaxy Note9 TD-LTE KR 128GB,Unknown,Samsung,SM-N960N Galaxy Note9 TD-LTE KR 128GB,Google Android 8.1 (Oreo),8.1,00000000-0000-0000-0000-000000000000,na,na,Unknown,na,2G,wifi,1,1,1,42,charging,true,1,128000000000,false,1440x2960,1,na,na,na,IT,Italy,Europe,Genoa,Provincia di Genova,IT,Italy,Europe,Genoa,Provincia di Genova,16167,44.4028,8.9448,Europe/Rome,"42",2,1,0,2,1098,,,,,,,,,,,,English,,,,,,,,,English,,,,,,,na,na,na,na,na,,,,,,,,,Unassigned,0,0,3cfe1cd4-a20e-4fc7-952a-a5cb7f7d063f,3cfe1cd4-a20e-4fc7-952a-a5cb7f7d063f-first,3cfe1cd4-a20e-4fc7-952a-a5cb7f7d063f,3cfe1cd4-a20e-4fc7-952a-a5cb7f7d063f-last
long session,4f011c929234934761dfff0bca3b5509a1b6d139560439e894a8d26a363654ad,3dbf6369fde3ce359786fd49194f705f54af3a53a8986b5de5bfbd717e2960a7,2021-03-01 21:39:43.815000000,2021-03-03 21:39:50.989000000,2023-09-26 11:37:50.200000000,web,web,true,false,,MacOS,>=10.15.7,,,,,,,,,,,,,,,,,,,,,,,,,,,,,GB,United Kingdom of Great Britain and Northern Ireland,Europe,Redhill,Surrey,GB,United Kingdom of Great Britain and Northern Ireland,Europe,Redhill,Surrey,RH1,51.24,-0.0973,Europe/London,"2",1,1,0,0,172807,https://www.google.co.uk,,,,White paper: Transform behavioral data into actional insights| Snowplow,https://snowplowanalytics.com/resources/data-utilization/?utm_source=google-ad&utm_medium=ppc&utm_campaign=data-utilization&utm_content=&creative=502863204369&keyword=data%20strategy&matchtype=e&network=g&device=m&campaignid=12477606708&adgroupid=119084231415&adid=502863204369&gclid=EAIaIQobChMI2K3yxpmp7wIVqhkGAB0wLAicEAAYAiAAEgKyYfD_BwE,https,snowplowanalytics.com,/resources/data-utilization/,utm_source=google-ad&utm_medium=ppc&utm_campaign=data-utilization&utm_content=&creative=502863204369&keyword=data%20strategy&matchtype=e&network=g&device=m&campaignid=12477606708&adgroupid=119084231415&adid=502863204369&gclid=EAIaIQobChMI2K3yxpmp7wIVqhkGAB0wLAicEAAYAiAAEgKyYfD_BwE,,en-gb,English (United Kingdom),"Collect, manage and operationalize behavioral data at scale | Snowplow",https://snowplowanalytics.com/,https,snowplowanalytics.com,/,,,en-gb,English (United Kingdom),https,www.google.co.uk,,,,,,,,,ppc,google-ad,,,data-utilization,EAIaIQobChMI2K3yxpmp7wIVqhkGAB0wLAicEAAYAiAAEgKyYfD_BwE,Google,,Paid Other,0,0,9f53ce75-cceb-4437-934e-68e1911bc599,9f53ce75-cceb-4437-934e-68e1911bc599-first,9f53ce75-cceb-4437-934e-68e1911bc599,9f53ce75-cceb-4437-934e-68e1911bc599-last
dupe: event_id same collector_tstamp,bc0da66ea89bbb0991f1c37ecdc1830a97f1ed9e24296ef6dbf19635220a064e,508312389e03ec34ae2083cc3ba15ba6768b783a13d0816567fafce27ef83981,2021-03-01 20:39:52.944000000,2021-03-01 20:59:19.860000000,2023-09-26 11:37:50.200000000,web,web,true,false,,MacOS,>=10.15.7,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DE,Germany,Europe,,,DE,Germany,Europe,,,,51.2993,9.491,Europe/Berlin,"6",1,1,0,0,1167,,,,,eBook: Using data to develop killer products | Snowplow,https://snowplowanalytics.com/resources/product-analytics-ebook/?utm_source=google-ad&utm_medium=display&utm_campaign=product-analytics-new-ebook&creative=486771159105&keyword=&matchtype=&network=d&device=m&campaignid=11857971003&adgroupid=118244365394&adid=486771159105&gclid=Cj0KCQiAvvKBBhCXARIsACTePW8KY3WUt6QUTRyoI9fVb8Vftz_aZlW8mrqZ_ALTRCya8yuOOoKOvQUaAmChEALw_wcB,https,snowplowanalytics.com,/resources/product-analytics-ebook/,utm_source=google-ad&utm_medium=display&utm_campaign=product-analytics-new-ebook&creative=486771159105&keyword=&matchtype=&network=d&device=m&campaignid=11857971003&adgroupid=118244365394&adid=486771159105&gclid=Cj0KCQiAvvKBBhCXARIsACTePW8KY3WUt6QUTRyoI9fVb8Vftz_aZlW8mrqZ_ALTRCya8yuOOoKOvQUaAmChEALw_wcB,,en-US,English (United States),White paper: Transform behavioral data into actional insights| Snowplow,https://snowplowanalytics.com/resources/data-utilization/?success=true,https,snowplowanalytics.com,/resources/data-utilization/,success=true,,en-US,English (United States),,,,,,,,,,,display,google-ad,,,product-analytics-new-ebook,Cj0KCQiAvvKBBhCXARIsACTePW8KY3WUt6QUTRyoI9fVb8Vftz_aZlW8mrqZ_ALTRCya8yuOOoKOvQUaAmChEALw_wcB,Google,,Display,0,0,bcbeb513-27a7-4b9c-9755-af5936f42c0d,bcbeb513-27a7-4b9c-9755-af5936f42c0d-first,bcbeb513-27a7-4b9c-9755-af5936f42c0d,bcbeb513-27a7-4b9c-9755-af5936f42c0d-last
user stitch - session: 1st id: 1,434dff58299fdc4f124ddf56a4f117d76f69bedb06f76d9858ffde85e16e14e1,769a8c9ba35df5018cf72c1650f846e3bd9146ad008a0c9dca0af5df5e8fc2e0,2021-03-01 23:57:04.705000000,2021-03-03 00:47:49.409000000,2023-09-26 11:37:50.200000000,web,web,true,false,,MacOS,>=10.15.7,,,,,,,,,,,,,,,,,,,,,,,,,,,,,AU,Australia,Oceania,,New South Wales,AU,Australia,Oceania,,New South Wales,,-33.8592,151.2055,Australia/Sydney,"7",2,2,0,0,3048,,,,,Discourse – Test,https://discourse.snowplowanalytics.com/,https,discourse.snowplowanalytics.com,/,,,en-GB,English (United Kingdom),Discourse – Snowplow - Are you following us on Twitter yet? @Snowplowlabs,https://discourse.snowplowanalytics.com/,https,discourse.snowplowanalytics.com,/,,,en-GB,English (United Kingdom),,,,,,,,,,,,,,,,,,,Unassigned,0,0,0aada0f0f6e6772c8f5908619cfc235225c40217e288e39740654b32707a71bd,0aada0f0f6e6772c8f5908619cfc235225c40217e288e39740654b32707a71bd-first,4ef77ae4-1e5a-4d25-90ab-fda713772553,4ef77ae4-1e5a-4d25-90ab-fda713772553-last
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -200,9 +200,6 @@ select
,first_geo__latitude_longitude_accuracy
,first_geo__longitude
,first_geo__speed
,screen__fragment
,screen__top_view_controller
,screen__view_controller
,app_errors
,fatal_app_errors
,useragent
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -217,9 +217,6 @@ SELECT
,first_geo__latitude_longitude_accuracy
,first_geo__longitude
,first_geo__speed
,screen__fragment
,screen__top_view_controller
,screen__view_controller
,app_errors
,fatal_app_errors
,useragent
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -211,8 +211,8 @@ geo__latitude_longitude_accuracy,
geo__longitude,
geo__speed,
screen__fragment,
screen__top_view_controller,
screen__view_controller,
cast(screen__top_view_controller as {{ dbt.type_string() }}) as screen__top_view_controller,
cast(screen__view_controller as {{ dbt.type_string() }}) as screen__view_controller,
useragent,
v_collector,
event_id2
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,27 @@ and you may not use this file except in compliance with the Snowplow Personal an
You may obtain a copy of the Snowplow Personal and Academic License Version 1.0 at https://docs.snowplow.io/personal-and-academic-license-1.0/
#}

with events as (
select event_id, collector_tstamp, platform, contexts_com_snowplowanalytics_mobile_screen_1_0_0
from {{ ref('snowplow_unified_events') }}
)

select
event_id as root_id,
collector_tstamp::timestamp as root_tstamp,
case when platform = 'web' then null else '4e8c2289-b1cd-4915-90de-2d87e1976a58' end as id,
case when platform = 'web' then null else 'Add New Item' end as name,
case when platform = 'web' then null else 'na' end as activity,
case when platform = 'web' then null else 'na' end as type,
case when platform = 'web' then null else 'na' end as fragment,
case when platform = 'web' then null else 'na' end as top_view_controller,
case when platform = 'web' then null else 'na' end as view_controller,
ev.event_id as root_id,
ev.collector_tstamp::timestamp as root_tstamp,
case when ev.platform = 'web' then null else
{% if target.type == 'postgres' -%}
JSON_EXTRACT_PATH_TEXT(contexts_com_snowplowanalytics_mobile_screen_1_0_0::json, '0', 'id')
{%- else -%}
JSON_EXTRACT_PATH_TEXT(JSON_EXTRACT_ARRAY_ELEMENT_TEXT(contexts_com_snowplowanalytics_mobile_screen_1_0_0, 0), 'id')
{%- endif %}
end as id,
case when ev.platform = 'web' then null else 'Add New Item' end as name,
case when ev.platform = 'web' then null else 'na' end as activity,
case when ev.platform = 'web' then null else 'na' end as type,
case when ev.platform = 'web' then null else 'na' end as fragment,
case when ev.platform = 'web' then null else 'na' end as top_view_controller,
case when ev.platform = 'web' then null else 'na' end as view_controller,
'screen_context' as schema_name

from {{ ref('snowplow_unified_events') }}
from events as ev
3 changes: 3 additions & 0 deletions macros/unify_fields_query.sql
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@ You may obtain a copy of the Snowplow Personal and Academic License Version 1.0
{% endif %}
{% if var('snowplow__enable_mobile') %}
ev.screen_view__id,
{% if var('snowplow__enable_screen_context') %}
ev.screen__id,
{% endif %}
{% endif %}
null, null) as view_id,

Expand Down

0 comments on commit 74151e3

Please sign in to comment.