dbt
Electronics kids
Verified Visits
Verified Visits model for electronics kids.
inferred
Blocks
verified_visits.sql · 53 lines
inferred
-- models/verified_visits.sql
{{ config(materialized='view') }}
select vt.*
, ( select count(*) from ahoy_events e
where e.visit_id = vt.id
and e.name = '$view') as pageviews
, ( select count(*)
from ahoy_events e_7
join ahoy_event_properties ep_7
on e_7.id = ep_7.event_id
and e_7.name = 'checkout_funnel'
and ep_7.name = 'funnel_step'
and ep_7.value = 'order_confirmation'
where e_7.visit_id = vt.id ) as orders
from visits vt
join visitor_profiles vp
on vp.visitor_id = vt.visitor_id
and vp.verified_at is not null
group by 1, 2, 3, 4, 5, 6, 7, 8
# models/schema.yml
version: 2
models:
- name: verified_visits
columns:
- name: id
- name: visitor_id
- name: ip
- name: user_agent
- name: referrer
- name: landing_page
- name: user_id
- name: referring_domain
- name: search_keyword
- name: browser
- name: os
- name: device_type
- name: screen_height
- name: screen_width
- name: country
- name: region
- name: city
- name: utm_source
- name: utm_medium
- name: utm_term
- name: utm_content
- name: utm_campaign
- name: started_at
- name: pageviews
- name: is_bounce
- name: orders
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.
verified_visits.sql · 17 lines
source-preserved
validation: parses
select vt.*
, ( select count(*) from ahoy_events e
where e.visit_id = vt.id
and e.name = '$view') as pageviews
, ( select count(*)
from ahoy_events e_7
join ahoy_event_properties ep_7
on e_7.id = ep_7.event_id
and e_7.name = 'checkout_funnel'
and ep_7.name = 'funnel_step'
and ep_7.value = 'order_confirmation'
where e_7.visit_id = vt.id ) as orders
from visits vt
join visitor_profiles vp
on vp.visitor_id = vt.visitor_id
and vp.verified_at is not null
group by 1, 2, 3, 4, 5, 6, 7, 8
verified_visits.view.lkml · 150 lines
inferred
view: verified_visits {
derived_table: {
sql: select vt.*
, ( select count(*) from ahoy_events e
where e.visit_id = vt.id
and e.name = '$view') as pageviews
, ( select count(*)
from ahoy_events e_7
join ahoy_event_properties ep_7
on e_7.id = ep_7.event_id
and e_7.name = 'checkout_funnel'
and ep_7.name = 'funnel_step'
and ep_7.value = 'order_confirmation'
where e_7.visit_id = vt.id ) as orders
from visits vt
join visitor_profiles vp
on vp.visitor_id = vt.visitor_id
and vp.verified_at is not null
group by 1, 2, 3, 4, 5, 6, 7, 8 ;;
}
dimension: id {
sql: ${TABLE}.id ;;
}
dimension: visitor_id {
sql: ${TABLE}.visitor_id ;;
}
dimension: ip {
sql: ${TABLE}.ip ;;
}
dimension: user_agent {
sql: ${TABLE}.user_agent ;;
}
dimension: referrer {
sql: ${TABLE}.referrer ;;
}
dimension: landing_page {
sql: ${TABLE}.landing_page ;;
}
dimension: user_id {
sql: ${TABLE}.user_id ;;
}
dimension: referring_domain {
sql: ${TABLE}.referring_domain ;;
}
dimension: search_keyword {
sql: ${TABLE}.search_keyword ;;
}
dimension: browser {
sql: ${TABLE}.browser ;;
}
dimension: os {
sql: ${TABLE}.os ;;
}
dimension: device_type {
sql: ${TABLE}.device_type ;;
}
dimension: screen_height {
sql: ${TABLE}.screen_height ;;
}
dimension: screen_width {
sql: ${TABLE}.screen_width ;;
}
dimension: country {
sql: ${TABLE}.country ;;
}
dimension: region {
sql: ${TABLE}.region ;;
}
dimension: city {
sql: ${TABLE}.city ;;
}
dimension: utm_source {
sql: ${TABLE}.utm_source ;;
}
dimension: utm_medium {
sql: ${TABLE}.utm_medium ;;
}
dimension: utm_term {
sql: ${TABLE}.utm_term ;;
}
dimension: utm_content {
sql: ${TABLE}.utm_content ;;
}
dimension: utm_campaign {
sql: ${TABLE}.utm_campaign ;;
}
dimension: started_at {
sql: ${TABLE}.started_at ;;
}
dimension: pageviews {
type: number
sql: ${TABLE}.pageviews ;;
}
dimension: is_bounce {
type: yesno
sql: ${pageviews} < 2 ;;
}
dimension: orders {
type: number
sql: ${TABLE}.orders ;;
}
dimension_group: created_at {
type: time
timeframes: [time, date, week, month, day_of_week, hour_of_day]
sql: ${TABLE}.created_at ;;
}
measure: count {
type: count
drill_fields: [detail*]
}
measure: count_bounces {
type: count
filters: [is_bounce: "Yes"]
}
measure: bounce_rate {
type: number
value_format: "#.0%"
sql: ${count_bounces} / nullif(${count},0) ;;
}
}
verified_visits.view.lookml · 97 lines
source-preserved
- view: verified_visits
derived_table:
sql: select vt.*
, ( select count(*) from ahoy_events e
where e.visit_id = vt.id
and e.name = '$view') as pageviews
, ( select count(*)
from ahoy_events e_7
join ahoy_event_properties ep_7
on e_7.id = ep_7.event_id
and e_7.name = 'checkout_funnel'
and ep_7.name = 'funnel_step'
and ep_7.value = 'order_confirmation'
where e_7.visit_id = vt.id ) as orders
from visits vt
join visitor_profiles vp
on vp.visitor_id = vt.visitor_id
and vp.verified_at is not null
group by 1, 2, 3, 4, 5, 6, 7, 8
fields:
- dimension: id
sql: ${TABLE}.id
- dimension: visitor_id
sql: ${TABLE}.visitor_id
- dimension: ip
sql: ${TABLE}.ip
- dimension: user_agent
sql: ${TABLE}.user_agent
- dimension: referrer
sql: ${TABLE}.referrer
- dimension: landing_page
sql: ${TABLE}.landing_page
- dimension: user_id
sql: ${TABLE}.user_id
- dimension: referring_domain
sql: ${TABLE}.referring_domain
- dimension: search_keyword
sql: ${TABLE}.search_keyword
- dimension: browser
sql: ${TABLE}.browser
- dimension: os
sql: ${TABLE}.os
- dimension: device_type
sql: ${TABLE}.device_type
- dimension: screen_height
sql: ${TABLE}.screen_height
- dimension: screen_width
sql: ${TABLE}.screen_width
- dimension: country
sql: ${TABLE}.country
- dimension: region
sql: ${TABLE}.region
- dimension: city
sql: ${TABLE}.city
- dimension: utm_source
sql: ${TABLE}.utm_source
- dimension: utm_medium
sql: ${TABLE}.utm_medium
- dimension: utm_term
sql: ${TABLE}.utm_term
- dimension: utm_content
sql: ${TABLE}.utm_content
- dimension: utm_campaign
sql: ${TABLE}.utm_campaign
- dimension: started_at
sql: ${TABLE}.started_at
- dimension: pageviews
type: number
sql: ${TABLE}.pageviews
- dimension: is_bounce
type: yesno
sql: ${pageviews} < 2
- dimension: orders
type: number
sql: ${TABLE}.orders
- dimension_group: created_at
type: time
timeframes:
- time
- date
- week
- month
- day_of_week
- hour_of_day
sql: ${TABLE}.created_at
- measure: count
type: count
drill_fields:
- detail*
- measure: count_bounces
type: count
filters:
- is_bounce: Yes
- measure: bounce_rate
type: number
value_format: '#.0%'
sql: ${count_bounces} / nullif(${count},0)
Contents
- verified_visits.sql
- verified_visits.sql
- verified_visits.view.lkml
- verified_visits.view.lookml