Snowplow Mobile Macros
This page is auto-generated from our dbt packages, some information may be incomplete
Snowplow Mobile
Allow Refresh
macros/allow_refresh.sql
Description
This macro does not currently have a description.
Details
Code
- raw
- default
{% macro allow_refresh() %}
{{ return(adapter.dispatch('allow_refresh', 'snowplow_mobile')()) }}
{% endmacro %}
{% macro default__allow_refresh() %}
{% set allow_refresh = snowplow_utils.get_value_by_target(
dev_value=none,
default_value=var('snowplow__allow_refresh'),
dev_target_name=var('snowplow__dev_target_name')
) %}
{{ return(allow_refresh) }}
{% endmacro %}
Depends On
Referenced By
App Context Fields
macros/bigquery/context_fields.sql
Description
This macro does not currently have a description.
Details
Code
{% macro app_context_fields() %}
{% set app_context_fields = [
{'field':'build', 'dtype':'string'},
{'field':'version', 'dtype':'string'}
] %}
{{ return(app_context_fields) }}
{% endmacro %}
Referenced By
App Error Context Fields
macros/bigquery/context_fields.sql
Description
This macro does not currently have a description.
Details
Code
{% macro app_error_context_fields() %}
{% set app_error_context_fields = [
{'field':'message', 'dtype':'string'},
{'field':'programming_language', 'dtype':'string'},
{'field':'class_name', 'dtype':'string'},
{'field':'exception_name', 'dtype':'string'},
{'field':'file_name', 'dtype':'string'},
{'field':'is_fatal', 'dtype':'boolean'},
{'field':'line_column', 'dtype':'integer'},
{'field':'line_number', 'dtype':'integer'},
{'field':'stack_trace', 'dtype':'string'},
{'field':'thread_id', 'dtype':'integer'},
{'field':'thread_name', 'dtype':'string'}
] %}
{{ return(app_error_context_fields) }}
{% endmacro %}
Referenced By
Bool Or
macros/bool_or.sql
Description
This macro does not currently have a description.
Details
Code
- raw
- bigquery
- default
- snowflake
{% macro bool_or(field) %}
{{ return(adapter.dispatch('bool_or', 'snowplow_mobile')(field)) }}
{% endmacro %}
{% macro bigquery__bool_or(field) %}
LOGICAL_OR(
{{ field }}
)
{% endmacro %}
{% macro default__bool_or(field) %}
BOOL_OR(
{{ field }}
)
{% endmacro %}
{% macro snowflake__bool_or(field) %}
BOOLOR_AGG(
{{ field }}
)
{% endmacro %}
Referenced By
Cluster By Fields App Errors
macros/cluster_by_fields.sql
Description
This macro does not currently have a description.
Details
Code
- raw
- default
{% macro cluster_by_fields_app_errors() %}
{{ return(adapter.dispatch('cluster_by_fields_app_errors', 'snowplow_mobile')()) }}
{% endmacro %}
{% macro default__cluster_by_fields_app_errors() %}
{{ return(snowplow_utils.get_value_by_target_type(bigquery_val=["session_id"], snowflake_val=["to_date(derived_tstamp)"])) }}
{% endmacro %}
Depends On
Referenced By
Geo Context Fields
macros/bigquery/context_fields.sql
Description
This macro does not currently have a description.
Details
Code
{% macro geo_context_fields() %}
{% set geo_context_fields = [
{'field':('latitude', 'device_latitude'), 'dtype':'float64'},
{'field':('longitude', 'device_longitude'), 'dtype':'float64'},
{'field':('latitude_longitude_accuracy', 'device_latitude_longitude_accuracy'), 'dtype':'float64'},
{'field':('altitude', 'device_altitude'), 'dtype':'float64'},
{'field':('altitude_accuracy', 'device_altitude_accuracy'), 'dtype':'float64'},
{'field':('bearing', 'device_bearing'), 'dtype':'float64'},
{'field':('speed', 'device_speed'), 'dtype':'float64'}
] %}
{{ return(geo_context_fields) }}
{% endmacro %}
Referenced By
Get Device User Id Path Sql
macros/get_path_sql.sql
Description
This macro does not currently have a description.
Details
Code
- raw
- bigquery
- databricks
- default
- spark
{% macro get_device_user_id_path_sql(relation_alias) %}
{{ return(adapter.dispatch('get_device_user_id_path_sql', 'snowplow_mobile')(relation_alias)) }}
{% endmacro %}
{% macro bigquery__get_device_user_id_path_sql(relation_alias) %}
-- setting relation through variable is not currently supported (recognised as string), different logic for integration tests
{% if target.schema.startswith('gh_sp_mobile_dbt_') %}
{%- set relation=ref('snowplow_mobile_events_stg') %}
{% else %}
{%- set relation=source('atomic','events') %}
{% endif %}
{%- set user_id = snowplow_utils.combine_column_versions(
relation=relation,
column_prefix='contexts_com_snowplowanalytics_snowplow_client_session_1_',
required_fields=['user_id'],
relation_alias=relation_alias,
include_field_alias=false
)|join('') -%}
{{ return(user_id) }}
{% endmacro %}
{% macro databricks__get_device_user_id_path_sql(relation_alias) %}
{% set user_id %}
{{ relation_alias }}.contexts_com_snowplowanalytics_snowplow_client_session_1[0].user_id::STRING
{% endset %}
{{ return(user_id) }}
{% endmacro %}
{% macro default__get_device_user_id_path_sql(relation_alias) %}
{% set user_id %}
{{ relation_alias }}.contexts_com_snowplowanalytics_snowplow_client_session_1[0]:userId::VARCHAR(36)
{% endset %}
{{ return(user_id) }}
{% endmacro %}
{% macro spark__get_device_user_id_path_sql(relation_alias) %}
{{ return(snowplow_mobile.databricks__get_device_user_id_path_sql(relation_alias)) }}
{% endmacro %}
Depends On
Referenced By
Get Session Id Path Sql
macros/get_path_sql.sql
Description
This macro does not currently have a description.
Details
Code
- raw
- bigquery
- databricks
- default
- spark
{% macro get_session_id_path_sql(relation_alias) %}
{{ return(adapter.dispatch('get_session_id_path_sql', 'snowplow_mobile')(relation_alias)) }}
{% endmacro %}
{% macro bigquery__get_session_id_path_sql(relation_alias) %}
-- setting relation through variable is not currently supported (recognised as string), different logic for integration tests
{% if target.schema.startswith('gh_sp_mobile_dbt_') %}
{%- set relation=ref('snowplow_mobile_events_stg') %}
{% else %}
{%- set relation=source('atomic','events') %}
{% endif %}
{%- set session_id = snowplow_utils.combine_column_versions(
relation=relation,
column_prefix='contexts_com_snowplowanalytics_snowplow_client_session_1_',
required_fields=['session_id'],
relation_alias=relation_alias,
include_field_alias=false
)|join('') -%}
{{ return(session_id) }}
{% endmacro %}
{% macro databricks__get_session_id_path_sql(relation_alias) %}
{% set session_id %}
{{ relation_alias }}.contexts_com_snowplowanalytics_snowplow_client_session_1[0].session_id::STRING
{% endset %}
{{ return(session_id) }}
{% endmacro %}
{% macro default__get_session_id_path_sql(relation_alias) %}
{% set session_id %}
{{ relation_alias }}.contexts_com_snowplowanalytics_snowplow_client_session_1[0]:sessionId::VARCHAR(36)
{% endset %}
{{ return(session_id) }}
{% endmacro %}
{% macro spark__get_session_id_path_sql(relation_alias) %}
{{ return(snowplow_mobile.databricks__get_session_id_path_sql(relation_alias)) }}
{% endmacro %}
Depends On
Referenced By
Mobile Cluster By Fields Screen Views
macros/cluster_by_fields.sql
Description
This macro does not currently have a description.
Details
Code
- raw
- default
{% macro mobile_cluster_by_fields_screen_views() %}
{{ return(adapter.dispatch('mobile_cluster_by_fields_screen_views', 'snowplow_mobile')()) }}
{% endmacro %}
{% macro default__mobile_cluster_by_fields_screen_views() %}
{{ return(snowplow_utils.get_value_by_target_type(bigquery_val=["device_user_id", "session_id"], snowflake_val=["to_date(derived_tstamp)"])) }}
{% endmacro %}
Depends On
Referenced By
Mobile Cluster By Fields Sessions
macros/cluster_by_fields.sql
Description
This macro does not currently have a description.
Details
Code
- raw
- default
{% macro mobile_cluster_by_fields_sessions() %}
{{ return(adapter.dispatch('mobile_cluster_by_fields_sessions', 'snowplow_mobile')()) }}
{% endmacro %}
{% macro default__mobile_cluster_by_fields_sessions() %}
{{ return(snowplow_utils.get_value_by_target_type(bigquery_val=["device_user_id"], snowflake_val=["to_date(start_tstamp)"])) }}
{% endmacro %}
Depends On
Referenced By
Mobile Cluster By Fields Sessions Lifecycle
macros/cluster_by_fields.sql
Description
This macro does not currently have a description.
Details
Code
- raw
- default
{% macro mobile_cluster_by_fields_sessions_lifecycle() %}
{{ return(adapter.dispatch('mobile_cluster_by_fields_sessions_lifecycle', 'snowplow_mobile')()) }}
{% endmacro %}
{% macro default__mobile_cluster_by_fields_sessions_lifecycle() %}
{{ return(snowplow_utils.get_value_by_target_type(bigquery_val=["session_id"], snowflake_val=["to_date(start_tstamp)"])) }}
{% endmacro %}
Depends On
Referenced By
Mobile Cluster By Fields Users
macros/cluster_by_fields.sql
Description
This macro does not currently have a description.
Details
Code
- raw
- default
{% macro mobile_cluster_by_fields_users() %}
{{ return(adapter.dispatch('mobile_cluster_by_fields_users', 'snowplow_mobile')()) }}
{% endmacro %}
{% macro default__mobile_cluster_by_fields_users() %}
{{ return(snowplow_utils.get_value_by_target_type(bigquery_val=["device_user_id"], snowflake_val=["to_date(start_tstamp)"])) }}
{% endmacro %}
Depends On
Referenced By
Mobile Context Fields
macros/bigquery/context_fields.sql
Description
This macro does not currently have a description.
Details
Code
{% macro mobile_context_fields() %}
{% set mobile_context_fields = [
{'field':'device_manufacturer', 'dtype':'string'},
{'field':'device_model', 'dtype':'string'},
{'field':'os_type', 'dtype':'string'},
{'field':'os_version', 'dtype':'string'},
{'field':'android_idfa', 'dtype':'string'},
{'field':'apple_idfa', 'dtype':'string'},
{'field':'apple_idfv', 'dtype':'string'},
{'field':'carrier', 'dtype':'string'},
{'field':'open_idfa', 'dtype':'string'},
{'field':'network_technology', 'dtype':'string'},
{'field':'network_type', 'dtype':'string'}
] %}
{{ return(mobile_context_fields) }}
{% endmacro %}
Referenced By
Screen Context Fields
macros/bigquery/context_fields.sql
Description
This macro does not currently have a description.
Details
Code
{% macro screen_context_fields() %}
{% set screen_context_fields = [
{'field':('id', 'screen_id'), 'dtype':'string'},
{'field':('name', 'screen_name'), 'dtype':'string'},
{'field':('activity', 'screen_activity'), 'dtype':'string'},
{'field':('fragment', 'screen_fragment'), 'dtype':'string'},
{'field':('top_view_controller', 'screen_top_view_controller'), 'dtype':'string'},
{'field':('type', 'screen_type'), 'dtype':'string'},
{'field':('view_controller', 'screen_view_controller'), 'dtype':'string'}
] %}
{{ return(screen_context_fields) }}
{% endmacro %}
Referenced By
Screen View Event Fields
macros/bigquery/unstruct_event_fields.sql
Description
This macro does not currently have a description.
Details
Code
{% macro screen_view_event_fields() %}
{% set screen_view_event_fields = [
{'field':('id', 'screen_view_id'), 'dtype':'string'},
{'field':('name', 'screen_view_name'), 'dtype':'string'},
{'field':('previous_id', 'screen_view_previous_id'), 'dtype':'string'},
{'field':('previous_name', 'screen_view_previous_name'), 'dtype':'string'},
{'field':('previous_type', 'screen_view_previous_type'), 'dtype':'string'},
{'field':('transition_type', 'screen_view_transition_type'), 'dtype':'string'},
{'field':('type', 'screen_view_type'), 'dtype':'string'}
] %}
{{ return(screen_view_event_fields) }}
{% endmacro %}
Referenced By
Session Context Fields
macros/bigquery/context_fields.sql
Description
This macro does not currently have a description.
Details
Code
{% macro session_context_fields() %}
{% set session_context_fields = [
{'field':'session_id', 'dtype':'string'},
{'field':'session_index', 'dtype':'integer'},
{'field':'previous_session_id', 'dtype':'string'},
{'field':('user_id', 'device_user_id'), 'dtype':'string'},
{'field':('first_event_id', 'session_first_event_id'), 'dtype':'string'}
] %}
{{ return(session_context_fields) }}
{% endmacro %}
Referenced By
Stitch User Identifiers
macros/stitch_user_identifiers.sql
Description
This macro does not currently have a description.
Details
Code
{% macro stitch_user_identifiers(enabled, relation=this, user_mapping_relation='snowplow_mobile_user_mapping') %}
{% if enabled and target.type not in ['databricks', 'spark'] | as_bool() %}
-- Update sessions table with mapping
update {{ relation }} as s
set stitched_user_id = um.user_id
from {{ ref(user_mapping_relation) }} as um
where s.device_user_id = um.device_user_id;
{% elif enabled and target.type in ['databricks', 'spark'] | as_bool() %}
-- Update sessions table with mapping
merge into {{ relation }} as s
using {{ ref(user_mapping_relation) }} as um
on s.device_user_id = um.device_user_id
when matched then
update set s.stitched_user_id = um.user_id;
{% endif %}
{% endmacro %}