dbt
Crowdfunding
Event Attributes
Event Attributes model for crowdfunding.
inferred
Blocks
_event_attributes.sql · 124 lines
inferred
-- models/_event_attributes.sql
{{ config(materialized='view') }}
(SELECT event_id AS "event_id"
, sent_at as "sent_at"
, received_at as "received_at"
, anonymous_id as "anonymous_id"
, user_id as "user_id"
, region
, context_page_referrer
, campaign_uid
, context_page_path
, context_user_agent
, 'sign up started' as "event_type"
, link_id as link
, flow_id
, context_campaign_medium
, context_campaign_source
, context_campaign_name
, context_page_url
, context_page_title
, context_page_search
from production.sign_up_start
)
UNION ALL
(SELECT event_id
, sent_at
, received_at
, anonymous_id
, user_id::text
, region
, context_page_referrer
, campaign_uid
, context_page_path
, context_user_agent
, 'sign up succesful'
, NULL as link
, flow_id
, context_campaign_medium
, context_campaign_source
, context_campaign_name
, context_page_url
, context_page_title
, context_page_search
from production.sign_up_success
)
UNION ALL
(SELECT event_id
, sent_at
, received_at
, anonymous_id
, user_id
, region
, context_page_referrer
, campaign_uid
, context_page_path
, context_user_agent
, 'page creation started'
, link_id as link
, flow_id
, context_campaign_medium
, context_campaign_source
, context_campaign_name
, context_page_url
, context_page_title
, context_page_search
from production.page_creation_start
)
UNION ALL
(SELECT event_id
, sent_at
, received_at
, anonymous_id
, user_id::text
, region
, context_page_referrer
, campaign_uid
, context_page_path
, context_user_agent
, 'page succesfully created'
, NULL as link
, flow_id
, NULL as context_campaign_medium
, NULL as context_campaign_source
, NULL as context_campaign_name
, context_page_url
, context_page_title
, context_page_search
from production.page_creation_success
)
# models/schema.yml
version: 2
models:
- name: _event_attributes
columns:
- name: flow_id
- name: context_campaign_medium
- name: context_campaign_source
- name: context_campaign_name
- name: context_page_url
- name: context_page_title
- name: context_page_search
- name: pk
tests:
- unique
- not_null
- name: event_id
- name: context_page_referrer
- name: campaign_uid
- name: context_page_path
- name: context_user_agent
- name: region
- name: anonymous_id
- name: user_id
- name: event_type
- name: link
- name: context_user_agent_device
Assumptions
- materialized='view' is the default; no persist hint found.
- schema.yml columns come from view dimensions; a primary_key dimension gets unique + not_null tests.
_event_attributes.sql · 92 lines
source-preserved
validation: parses
(SELECT event_id AS "event_id"
, sent_at as "sent_at"
, received_at as "received_at"
, anonymous_id as "anonymous_id"
, user_id as "user_id"
, region
, context_page_referrer
, campaign_uid
, context_page_path
, context_user_agent
, 'sign up started' as "event_type"
, link_id as link
, flow_id
, context_campaign_medium
, context_campaign_source
, context_campaign_name
, context_page_url
, context_page_title
, context_page_search
from production.sign_up_start
)
UNION ALL
(SELECT event_id
, sent_at
, received_at
, anonymous_id
, user_id::text
, region
, context_page_referrer
, campaign_uid
, context_page_path
, context_user_agent
, 'sign up succesful'
, NULL as link
, flow_id
, context_campaign_medium
, context_campaign_source
, context_campaign_name
, context_page_url
, context_page_title
, context_page_search
from production.sign_up_success
)
UNION ALL
(SELECT event_id
, sent_at
, received_at
, anonymous_id
, user_id
, region
, context_page_referrer
, campaign_uid
, context_page_path
, context_user_agent
, 'page creation started'
, link_id as link
, flow_id
, context_campaign_medium
, context_campaign_source
, context_campaign_name
, context_page_url
, context_page_title
, context_page_search
from production.page_creation_start
)
UNION ALL
(SELECT event_id
, sent_at
, received_at
, anonymous_id
, user_id::text
, region
, context_page_referrer
, campaign_uid
, context_page_path
, context_user_agent
, 'page succesfully created'
, NULL as link
, flow_id
, NULL as context_campaign_medium
, NULL as context_campaign_source
, NULL as context_campaign_name
, context_page_url
, context_page_title
, context_page_search
from production.page_creation_success
)
_event_attributes.view.lkml · 245 lines
inferred
view: _event_attributes {
derived_table: {
sql: (SELECT event_id AS "event_id"
, sent_at as "sent_at"
, received_at as "received_at"
, anonymous_id as "anonymous_id"
, user_id as "user_id"
, region
, context_page_referrer
, campaign_uid
, context_page_path
, context_user_agent
, 'sign up started' as "event_type"
, link_id as link
, flow_id
, context_campaign_medium
, context_campaign_source
, context_campaign_name
, context_page_url
, context_page_title
, context_page_search
from production.sign_up_start
)
UNION ALL
(SELECT event_id
, sent_at
, received_at
, anonymous_id
, user_id::text
, region
, context_page_referrer
, campaign_uid
, context_page_path
, context_user_agent
, 'sign up succesful'
, NULL as link
, flow_id
, context_campaign_medium
, context_campaign_source
, context_campaign_name
, context_page_url
, context_page_title
, context_page_search
from production.sign_up_success
)
UNION ALL
(SELECT event_id
, sent_at
, received_at
, anonymous_id
, user_id
, region
, context_page_referrer
, campaign_uid
, context_page_path
, context_user_agent
, 'page creation started'
, link_id as link
, flow_id
, context_campaign_medium
, context_campaign_source
, context_campaign_name
, context_page_url
, context_page_title
, context_page_search
from production.page_creation_start
)
UNION ALL
(SELECT event_id
, sent_at
, received_at
, anonymous_id
, user_id::text
, region
, context_page_referrer
, campaign_uid
, context_page_path
, context_user_agent
, 'page succesfully created'
, NULL as link
, flow_id
, NULL as context_campaign_medium
, NULL as context_campaign_source
, NULL as context_campaign_name
, context_page_url
, context_page_title
, context_page_search
from production.page_creation_success
) ;;
}
dimension: flow_id {
sql: ${TABLE}.flow_id ;;
}
dimension: context_campaign_medium {
sql: ${TABLE}.context_campaign_medium ;;
}
dimension: context_campaign_source {
sql: ${TABLE}.context_campaign_source ;;
}
dimension: context_campaign_name {
sql: ${TABLE}.context_campaign_name ;;
}
dimension: context_page_url {
sql: ${TABLE}.context_page_url ;;
}
dimension: context_page_title {
sql: ${TABLE}.context_page_title ;;
}
dimension: context_page_search {
sql: ${TABLE}.context_page_search ;;
}
dimension: pk {
primary_key: yes
hidden: yes
sql: ${event_id} || ${sent_at_time} || ${anonymous_id} || ${user_id} ;;
}
dimension: event_id {
hidden: yes
sql: ${TABLE}.event_id ;;
}
dimension: context_page_referrer {
sql: ${TABLE}.context_page_referrer ;;
}
dimension: campaign_uid {
sql: ${TABLE}.campaign_uid ;;
}
dimension: context_page_path {
sql: ${TABLE}.context_page_path ;;
}
dimension: context_user_agent {
sql: ${TABLE}.context_user_agent ;;
}
dimension: region {
sql: ${TABLE}.region ;;
}
dimension: anonymous_id {
hidden: yes
sql: ${TABLE}.anonymous_id ;;
}
dimension: user_id {
hidden: yes
sql: ${TABLE}.user_id ;;
}
dimension: event_type {
sql: ${TABLE}.event_type ;;
}
dimension: link {
sql: ${TABLE}.link ;;
}
dimension: context_user_agent_device {
sql: CASE
WHEN POSITION('iPad' IN ${context_user_agent}) != 0 THEN 'Tablet'
WHEN POSITION('iPhone' IN ${context_user_agent}) != 0 OR POSITION('iphone' IN ${context_user_agent}) != 0 AND POSITION('iPad' IN ${context_user_agent}) = 0 THEN 'Mobile Phone'
WHEN POSITION('Windows' IN ${context_user_agent}) != 0 OR POSITION('windows' IN ${context_user_agent}) != 0 OR POSITION('Win/5.0' IN ${context_user_agent}) != 0 THEN 'Desktop'
WHEN POSITION('Nokia' IN ${context_user_agent}) != 0 THEN 'Mobile Phone'
WHEN POSITION('DoCoMo' IN ${context_user_agent}) != 0 THEN 'Mobile Phone'
WHEN POSITION('Mobile' IN ${context_user_agent}) != 0 THEN 'Mobile Phone'
WHEN POSITION('Linux' IN ${context_user_agent}) != 0 THEN 'Desktop'
WHEN POSITION('Mac OS X' IN ${context_user_agent}) != 0 OR POSITION('Mac OSX' IN ${context_user_agent}) != 0 THEN 'Desktop'
WHEN POSITION('Android' IN ${context_user_agent}) != 0 OR POSITION('android' IN ${context_user_agent}) != 0THEN 'Mobile Phone'
WHEN POSITION('SAMSUNG' IN ${context_user_agent}) != 0 THEN 'Mobile Phone'
WHEN POSITION('Opera Mini' IN ${context_user_agent}) != 0 THEN 'Mobile Phone'
WHEN POSITION('Macintosh' IN ${context_user_agent}) != 0 THEN 'Desktop'
WHEN POSITION('X11' IN ${context_user_agent}) != 0 THEN 'Desktop'
WHEN POSITION('BlackBerry' IN ${context_user_agent}) != 0 THEN 'Mobile Phone'
ELSE 'Other'
END ;;
}
dimension_group: sent_at {
type: time
timeframes: [time, date, week, month]
sql: ${TABLE}.sent_at ;;
}
dimension_group: received_at {
type: time
timeframes: [time, date, week, month]
sql: ${TABLE}.received_at ;;
}
measure: count {
type: count
hidden: yes
drill_fields: [detail*]
}
measure: count_sign_ups_started {
type: count_distinct
drill_fields: [detail*]
sql: ${aliases_mapping.universal_visitor_id} ;;
}
measure: count_successful_sign_ups {
type: count_distinct
sql: ${aliases_mapping.universal_visitor_id} ;;
}
measure: count_page_creation_started {
type: count_distinct
drill_fields: [detail*]
sql: ${aliases_mapping.universal_visitor_id} ;;
}
measure: count_successful_page_creation {
type: count_distinct
sql: ${aliases_mapping.universal_visitor_id} ;;
}
measure: conversion_rate_sign_up {
type: number
value_format: "##.00%"
sql: 1.00*${count_successful_sign_ups}/NULLIF(${count_sign_ups_started},0) ;;
}
measure: conversion_rate_create_page {
type: number
value_format: "##.00%"
sql: 1.00*${count_successful_page_creation}/NULLIF(${count_page_creation_started},0) ;;
}
}
_event_attributes.view.lookml · 198 lines
source-preserved
- view: _event_attributes
derived_table:
sql: (SELECT event_id AS "event_id"
, sent_at as "sent_at"
, received_at as "received_at"
, anonymous_id as "anonymous_id"
, user_id as "user_id"
, region
, context_page_referrer
, campaign_uid
, context_page_path
, context_user_agent
, 'sign up started' as "event_type"
, link_id as link
, flow_id
, context_campaign_medium
, context_campaign_source
, context_campaign_name
, context_page_url
, context_page_title
, context_page_search
from production.sign_up_start
)
UNION ALL
(SELECT event_id
, sent_at
, received_at
, anonymous_id
, user_id::text
, region
, context_page_referrer
, campaign_uid
, context_page_path
, context_user_agent
, 'sign up succesful'
, NULL as link
, flow_id
, context_campaign_medium
, context_campaign_source
, context_campaign_name
, context_page_url
, context_page_title
, context_page_search
from production.sign_up_success
)
UNION ALL
(SELECT event_id
, sent_at
, received_at
, anonymous_id
, user_id
, region
, context_page_referrer
, campaign_uid
, context_page_path
, context_user_agent
, 'page creation started'
, link_id as link
, flow_id
, context_campaign_medium
, context_campaign_source
, context_campaign_name
, context_page_url
, context_page_title
, context_page_search
from production.page_creation_start
)
UNION ALL
(SELECT event_id
, sent_at
, received_at
, anonymous_id
, user_id::text
, region
, context_page_referrer
, campaign_uid
, context_page_path
, context_user_agent
, 'page succesfully created'
, NULL as link
, flow_id
, NULL as context_campaign_medium
, NULL as context_campaign_source
, NULL as context_campaign_name
, context_page_url
, context_page_title
, context_page_search
from production.page_creation_success
)
fields:
- dimension: flow_id
sql: ${TABLE}.flow_id
- dimension: context_campaign_medium
sql: ${TABLE}.context_campaign_medium
- dimension: context_campaign_source
sql: ${TABLE}.context_campaign_source
- dimension: context_campaign_name
sql: ${TABLE}.context_campaign_name
- dimension: context_page_url
sql: ${TABLE}.context_page_url
- dimension: context_page_title
sql: ${TABLE}.context_page_title
- dimension: context_page_search
sql: ${TABLE}.context_page_search
- dimension: pk
primary_key: true
hidden: true
sql: ${event_id} || ${sent_at_time} || ${anonymous_id} || ${user_id}
- dimension: event_id
hidden: true
sql: ${TABLE}.event_id
- dimension: context_page_referrer
sql: ${TABLE}.context_page_referrer
- dimension: campaign_uid
sql: ${TABLE}.campaign_uid
- dimension: context_page_path
sql: ${TABLE}.context_page_path
- dimension: context_user_agent
sql: ${TABLE}.context_user_agent
- dimension: region
sql: ${TABLE}.region
- dimension: anonymous_id
hidden: true
sql: ${TABLE}.anonymous_id
- dimension: user_id
hidden: true
sql: ${TABLE}.user_id
- dimension: event_type
sql: ${TABLE}.event_type
- dimension: link
sql: ${TABLE}.link
- dimension: context_user_agent_device
sql: CASE
WHEN POSITION('iPad' IN ${context_user_agent}) != 0 THEN 'Tablet'
WHEN POSITION('iPhone' IN ${context_user_agent}) != 0 OR POSITION('iphone' IN ${context_user_agent}) != 0 AND POSITION('iPad' IN ${context_user_agent}) = 0 THEN 'Mobile Phone'
WHEN POSITION('Windows' IN ${context_user_agent}) != 0 OR POSITION('windows' IN ${context_user_agent}) != 0 OR POSITION('Win/5.0' IN ${context_user_agent}) != 0 THEN 'Desktop'
WHEN POSITION('Nokia' IN ${context_user_agent}) != 0 THEN 'Mobile Phone'
WHEN POSITION('DoCoMo' IN ${context_user_agent}) != 0 THEN 'Mobile Phone'
WHEN POSITION('Mobile' IN ${context_user_agent}) != 0 THEN 'Mobile Phone'
WHEN POSITION('Linux' IN ${context_user_agent}) != 0 THEN 'Desktop'
WHEN POSITION('Mac OS X' IN ${context_user_agent}) != 0 OR POSITION('Mac OSX' IN ${context_user_agent}) != 0 THEN 'Desktop'
WHEN POSITION('Android' IN ${context_user_agent}) != 0 OR POSITION('android' IN ${context_user_agent}) != 0THEN 'Mobile Phone'
WHEN POSITION('SAMSUNG' IN ${context_user_agent}) != 0 THEN 'Mobile Phone'
WHEN POSITION('Opera Mini' IN ${context_user_agent}) != 0 THEN 'Mobile Phone'
WHEN POSITION('Macintosh' IN ${context_user_agent}) != 0 THEN 'Desktop'
WHEN POSITION('X11' IN ${context_user_agent}) != 0 THEN 'Desktop'
WHEN POSITION('BlackBerry' IN ${context_user_agent}) != 0 THEN 'Mobile Phone'
ELSE 'Other'
END
- dimension_group: sent_at
type: time
timeframes:
- time
- date
- week
- month
sql: ${TABLE}.sent_at
- dimension_group: received_at
type: time
timeframes:
- time
- date
- week
- month
sql: ${TABLE}.received_at
- measure: count
type: count
drill_fields:
- detail*
- measure: count_sign_ups_started
type: count_distinct
drill_fields:
- detail*
sql: ${aliases_mapping.universal_visitor_id}
- measure: count_successful_sign_ups
type: count_distinct
sql: ${aliases_mapping.universal_visitor_id}
- measure: count_page_creation_started
type: count_distinct
drill_fields:
- detail*
sql: ${aliases_mapping.universal_visitor_id}
- measure: count_successful_page_creation
type: count_distinct
sql: ${aliases_mapping.universal_visitor_id}
- measure: conversion_rate_sign_up
type: number
value_format: '##.00%'
sql: 1.00*${count_successful_sign_ups}/NULLIF(${count_sign_ups_started},0)
- measure: conversion_rate_create_page
type: number
value_format: '##.00%'
sql: 1.00*${count_successful_page_creation}/NULLIF(${count_page_creation_started},0)
Contents
- _event_attributes.sql
- _event_attributes.sql
- _event_attributes.view.lkml
- _event_attributes.view.lookml