SQL
Saas crm
Provider Ad Stats
Provider Ad Stats model for saas crm.
source-preserved
Blocks
provider_ad_stats.sql · 140 lines
inferred
-- models/provider_ad_stats.sql
{{ config(materialized='view') }}
SELECT
b.provider_ad_id_all AS provider_ad_id,
case when <% parameter date_group %> = 'Week'
then date_trunc('week',b.period_start_date)::date
when <% parameter date_group %> = 'Month'
then date_trunc('month',b.period_start_date)::date
when <% parameter date_group %> = 'Rollup'
then '1900-01-01'::date
when <% parameter date_group %> = 'Day'
then b.period_start_date
end as timeframe,
MIN(b.first_start_date) AS first_start_date,
b.ad_period AS ad_period,
sum(b.visitors) AS visitors,
sum(b.views) AS views,
sum(b.cta_submits) AS cta_submits,
sum(b.unique_cta_submits) AS unique_cta_submits,
sum(b.cta_clicks) AS cta_clicks,
sum(b.leads) AS leads,
sum(b.clicks) AS clicks,
sum(b.total_spend) AS total_spend,
sum(b.impressions) AS impressions
FROM (
SELECT
c.engagement_id,
c.ad_id,
c.provider_ad_id_all,
MIN(c.start_date) OVER (PARTITION BY c.provider_ad_id_all,c.ad_period) as period_start_date,
c.first_start_date,
c.ad_period,
c.visitors,
c.views,
c.cta_submits,
c.unique_cta_submits,
c.cta_clicks,
c.leads,
c.clicks,
c.total_spend,
c.impressions
FROM (
SELECT
a.engagement_id,
a.ad_id,
a.provider_ad_id_all,
a.start_date,
a.first_start_date,
case when <% parameter date_group %> = 'Week'
then (start_date - first_start_date)/7::int
when <% parameter date_group %> = 'Month'
then (EXTRACT('year' FROM a.start_date) - EXTRACT('year' FROM a.first_start_date)) * 12 +
(EXTRACT('month' FROM a.start_date) - EXTRACT('month' FROM a.first_start_date)) -
CASE WHEN (CEILING(DATE_PART('day',a.start_date) - DATE_PART('day',a.first_start_date))) < 0 THEN 1 ELSE 0 end
when <% parameter date_group %> = 'Day'
then (start_date - first_start_date)::int
when <% parameter date_group %> = 'Rollup'
then 0::int
end as ad_period,
a.visitors,
a.views,
a.cta_submits,
a.unique_cta_submits,
a.cta_clicks,
a.leads,
a.clicks,
a.total_spend,
a.impressions
FROM (
SELECT
z.engagement_id,
z.ad_id,
z.provider_ad_id_all,
z.start_date,
MIN(z.start_date) OVER (PARTITION BY z.provider_ad_id_all) as first_start_date,
z.visitors,
z.views,
z.cta_submits,
z.unique_cta_submits,
z.cta_clicks,
z.leads,
z.clicks,
z.total_spend,
z.impressions
FROM (
SELECT
x.id as engagement_id,
y.id as ad_id,
CASE WHEN x.provider_ad_id IS NOT NULL THEN x.provider_ad_id
ELSE y.provider_ad_id
END
AS provider_ad_id_all,
CASE WHEN x.start_date IS NOT NULL then x.start_date
ELSE y.start_date
END
as start_date,
x.visitors,
x.views,
x.cta_submits,
x.unique_cta_submits,
x.cta_clicks,
x.leads,
y.clicks,
y.total_spend,
y.impressions
FROM (
SELECT
*
FROM
public_schema.provider_engagement_stats
WHERE
provider_ad_id IS NOT NULL
) as x
FULL OUTER JOIN
public_schema.provider_ad_stats y
ON
x.provider_ad_id = y.provider_ad_id AND
x.start_date = y.start_date
) as z
) as a
) as c
) as b
GROUP BY
b.provider_ad_id_all, timeframe, b.ad_period
# models/schema.yml
version: 2
models:
- name: provider_ad_stats
columns:
- name: provider_ad_id
- name: ad_period
- name: period_start
- name: period_end
- name: spend
- name: messaging_version
- name: manager
- name: operations_lead
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.
provider_ad_stats.sql · 122 lines
source-preserved
validation: not checked
SELECT
b.provider_ad_id_all AS provider_ad_id,
case when <% parameter date_group %> = 'Week'
then date_trunc('week',b.period_start_date)::date
when <% parameter date_group %> = 'Month'
then date_trunc('month',b.period_start_date)::date
when <% parameter date_group %> = 'Rollup'
then '1900-01-01'::date
when <% parameter date_group %> = 'Day'
then b.period_start_date
end as timeframe,
MIN(b.first_start_date) AS first_start_date,
b.ad_period AS ad_period,
sum(b.visitors) AS visitors,
sum(b.views) AS views,
sum(b.cta_submits) AS cta_submits,
sum(b.unique_cta_submits) AS unique_cta_submits,
sum(b.cta_clicks) AS cta_clicks,
sum(b.leads) AS leads,
sum(b.clicks) AS clicks,
sum(b.total_spend) AS total_spend,
sum(b.impressions) AS impressions
FROM (
SELECT
c.engagement_id,
c.ad_id,
c.provider_ad_id_all,
MIN(c.start_date) OVER (PARTITION BY c.provider_ad_id_all,c.ad_period) as period_start_date,
c.first_start_date,
c.ad_period,
c.visitors,
c.views,
c.cta_submits,
c.unique_cta_submits,
c.cta_clicks,
c.leads,
c.clicks,
c.total_spend,
c.impressions
FROM (
SELECT
a.engagement_id,
a.ad_id,
a.provider_ad_id_all,
a.start_date,
a.first_start_date,
case when <% parameter date_group %> = 'Week'
then (start_date - first_start_date)/7::int
when <% parameter date_group %> = 'Month'
then (EXTRACT('year' FROM a.start_date) - EXTRACT('year' FROM a.first_start_date)) * 12 +
(EXTRACT('month' FROM a.start_date) - EXTRACT('month' FROM a.first_start_date)) -
CASE WHEN (CEILING(DATE_PART('day',a.start_date) - DATE_PART('day',a.first_start_date))) < 0 THEN 1 ELSE 0 end
when <% parameter date_group %> = 'Day'
then (start_date - first_start_date)::int
when <% parameter date_group %> = 'Rollup'
then 0::int
end as ad_period,
a.visitors,
a.views,
a.cta_submits,
a.unique_cta_submits,
a.cta_clicks,
a.leads,
a.clicks,
a.total_spend,
a.impressions
FROM (
SELECT
z.engagement_id,
z.ad_id,
z.provider_ad_id_all,
z.start_date,
MIN(z.start_date) OVER (PARTITION BY z.provider_ad_id_all) as first_start_date,
z.visitors,
z.views,
z.cta_submits,
z.unique_cta_submits,
z.cta_clicks,
z.leads,
z.clicks,
z.total_spend,
z.impressions
FROM (
SELECT
x.id as engagement_id,
y.id as ad_id,
CASE WHEN x.provider_ad_id IS NOT NULL THEN x.provider_ad_id
ELSE y.provider_ad_id
END
AS provider_ad_id_all,
CASE WHEN x.start_date IS NOT NULL then x.start_date
ELSE y.start_date
END
as start_date,
x.visitors,
x.views,
x.cta_submits,
x.unique_cta_submits,
x.cta_clicks,
x.leads,
y.clicks,
y.total_spend,
y.impressions
FROM (
SELECT
*
FROM
public_schema.provider_engagement_stats
WHERE
provider_ad_id IS NOT NULL
) as x
FULL OUTER JOIN
public_schema.provider_ad_stats y
ON
x.provider_ad_id = y.provider_ad_id AND
x.start_date = y.start_date
) as z
) as a
) as c
) as b
GROUP BY
b.provider_ad_id_all, timeframe, b.ad_period
provider_ad_stats.view.lkml · 365 lines
inferred
view: provider_ad_stats {
derived_table: {
sql: SELECT
b.provider_ad_id_all AS provider_ad_id,
case when <% parameter date_group %> = 'Week'
then date_trunc('week',b.period_start_date)::date
when <% parameter date_group %> = 'Month'
then date_trunc('month',b.period_start_date)::date
when <% parameter date_group %> = 'Rollup'
then '1900-01-01'::date
when <% parameter date_group %> = 'Day'
then b.period_start_date
end as timeframe,
MIN(b.first_start_date) AS first_start_date,
b.ad_period AS ad_period,
sum(b.visitors) AS visitors,
sum(b.views) AS views,
sum(b.cta_submits) AS cta_submits,
sum(b.unique_cta_submits) AS unique_cta_submits,
sum(b.cta_clicks) AS cta_clicks,
sum(b.leads) AS leads,
sum(b.clicks) AS clicks,
sum(b.total_spend) AS total_spend,
sum(b.impressions) AS impressions
FROM (
SELECT
c.engagement_id,
c.ad_id,
c.provider_ad_id_all,
MIN(c.start_date) OVER (PARTITION BY c.provider_ad_id_all,c.ad_period) as period_start_date,
c.first_start_date,
c.ad_period,
c.visitors,
c.views,
c.cta_submits,
c.unique_cta_submits,
c.cta_clicks,
c.leads,
c.clicks,
c.total_spend,
c.impressions
FROM (
SELECT
a.engagement_id,
a.ad_id,
a.provider_ad_id_all,
a.start_date,
a.first_start_date,
case when <% parameter date_group %> = 'Week'
then (start_date - first_start_date)/7::int
when <% parameter date_group %> = 'Month'
then (EXTRACT('year' FROM a.start_date) - EXTRACT('year' FROM a.first_start_date)) * 12 +
(EXTRACT('month' FROM a.start_date) - EXTRACT('month' FROM a.first_start_date)) -
CASE WHEN (CEILING(DATE_PART('day',a.start_date) - DATE_PART('day',a.first_start_date))) < 0 THEN 1 ELSE 0 end
when <% parameter date_group %> = 'Day'
then (start_date - first_start_date)::int
when <% parameter date_group %> = 'Rollup'
then 0::int
end as ad_period,
a.visitors,
a.views,
a.cta_submits,
a.unique_cta_submits,
a.cta_clicks,
a.leads,
a.clicks,
a.total_spend,
a.impressions
FROM (
SELECT
z.engagement_id,
z.ad_id,
z.provider_ad_id_all,
z.start_date,
MIN(z.start_date) OVER (PARTITION BY z.provider_ad_id_all) as first_start_date,
z.visitors,
z.views,
z.cta_submits,
z.unique_cta_submits,
z.cta_clicks,
z.leads,
z.clicks,
z.total_spend,
z.impressions
FROM (
SELECT
x.id as engagement_id,
y.id as ad_id,
CASE WHEN x.provider_ad_id IS NOT NULL THEN x.provider_ad_id
ELSE y.provider_ad_id
END
AS provider_ad_id_all,
CASE WHEN x.start_date IS NOT NULL then x.start_date
ELSE y.start_date
END
as start_date,
x.visitors,
x.views,
x.cta_submits,
x.unique_cta_submits,
x.cta_clicks,
x.leads,
y.clicks,
y.total_spend,
y.impressions
FROM (
SELECT
*
FROM
public_schema.provider_engagement_stats
WHERE
provider_ad_id IS NOT NULL
) as x
FULL OUTER JOIN
public_schema.provider_ad_stats y
ON
x.provider_ad_id = y.provider_ad_id AND
x.start_date = y.start_date
) as z
) as a
) as c
) as b
GROUP BY
b.provider_ad_id_all, timeframe, b.ad_period ;;
}
dimension: provider_ad_id {
type: int
sql: ${TABLE}.provider_ad_id ;;
}
dimension: ad_period {
type: int
sql: ${TABLE}.ad_period + 1 ;;
}
dimension: period_start {
label: "Ad Period Start"
type: time
sql: CASE
WHEN <% parameter date_group %> = 'Month' THEN ${ad_date} + date_part('day',${first_date})::int - 1
WHEN <% parameter date_group %> = 'Week' THEN ${ad_date} + date_part('dow', ${first_date})::int - 1
ELSE NULL
END ;;
}
dimension: period_end {
label: "Ad Period End"
type: time
sql: CASE
WHEN <% parameter date_group %> = 'Month' THEN ADD_MONTHS(${ad_date} + date_part('day',${first_date})::int - 2,1)
WHEN <% parameter date_group %> = 'Week' THEN ${ad_date} + date_part('dow',${first_date})::int - 2 + interval '1 week'
ELSE NULL
END ;;
}
dimension: spend {
type: number
value_format: "$#,##0.00"
sql: ${TABLE}.total_spend/100 ;;
}
dimension: messaging_version {
sql: CASE
WHEN ${TABLE}.timeframe < <% parameter placeholder_date %>::date THEN 'pre-messaging'
ELSE 'v1'
END ;;
}
dimension: manager {
sql: COALESCE(${_account.manager}, ${people2.display_name}) ;;
}
dimension: operations_lead {
sql: COALESCE(${_account.operations_lead}, ${people3.display_name}) ;;
}
dimension_group: first {
label: "First Ad"
type: time
timeframes: [date, week, month]
convert_tz: no
sql: ${TABLE}.first_start_date ;;
}
dimension_group: ad {
type: time
timeframes: [date, week, month]
convert_tz: no
sql: ${TABLE}.timeframe ;;
}
measure: total_visitors {
type: sum
drill_fields: [detail*]
sql: ${TABLE}.visitors ;;
}
measure: total_views {
type: sum
drill_fields: [detail*]
sql: ${TABLE}.views ;;
}
measure: total_clicks {
type: sum
drill_fields: [detail*]
sql: ${TABLE}.clicks ;;
}
measure: total_impressions {
type: sum
drill_fields: [detail*]
sql: ${TABLE}.impressions ;;
}
measure: sum_total_spend {
label: "Total Spend"
type: sum
value_format: "$#,##0.00"
drill_fields: [detail*]
sql: (1.00)*${TABLE}.total_spend/100 ;;
}
measure: total_non_redirect_leads {
type: sum
drill_fields: [detail*]
sql: ${TABLE}.leads ;;
}
measure: total_cta_clicks {
type: sum
drill_fields: [detail*]
sql: ${TABLE}.cta_clicks ;;
}
measure: total_submits {
type: sum
drill_fields: [detail*]
sql: ${TABLE}.cta_submits ;;
}
measure: total_leads {
type: sum
drill_fields: [detail*]
sql: ${TABLE}.unique_cta_submits ;;
}
measure: avg_visitors {
type: average
drill_fields: [detail*]
sql: 1.00*${TABLE}.visitors ;;
}
measure: avg_views {
type: average
drill_fields: [detail*]
sql: 1.00*${TABLE}.views ;;
}
measure: avg_clicks {
type: average
drill_fields: [detail*]
sql: 1.00*${TABLE}.clicks ;;
}
measure: avg_impressions {
type: average
drill_fields: [detail*]
sql: 1.00*${TABLE}.impressions ;;
}
measure: average_impressions_new {
type: number
hidden: yes
drill_fields: [detail*]
sql: 1.00*${total_impressions} / NULLIF(${count_provider_ad_id},0) ;;
}
measure: avg_total_spend {
type: average
value_format: "$#,##0.00"
drill_fields: [detail*]
sql: (1.00)*${TABLE}.total_spend/100 ;;
}
measure: avg_non_redirect_leads {
type: average
hidden: yes
drill_fields: [detail*]
sql: 1.00*${TABLE}.leads ;;
}
measure: avg_cta_clicks {
type: average
drill_fields: [detail*]
sql: 1.00*${TABLE}.cta_clicks ;;
}
measure: avg_cta_submits {
type: average
drill_fields: [detail*]
sql: 1.00*${TABLE}.cta_submits ;;
}
measure: avg_leads {
type: average
drill_fields: [detail*]
sql: 1.00*${TABLE}.unique_cta_submits ;;
}
measure: ctr {
type: number
value_format: "#.00%"
drill_fields: [detail*]
sql: 1.00*${provider_ad_stats.total_clicks}/NULLIF(${provider_ad_stats.total_impressions},0) ;;
}
measure: cpc {
type: number
value_format: "$#,##0.00"
drill_fields: [detail*]
sql: 1.00*${provider_ad_stats.sum_total_spend}/NULLIF(${provider_ad_stats.total_clicks},0) ;;
}
measure: percent_cta_clicks {
type: number
value_format: "#.00%"
drill_fields: [detail*]
sql: 1.00*${provider_ad_stats.total_cta_clicks}/NULLIF(${provider_ad_stats.total_views},0) ;;
}
measure: percent_submit {
type: number
value_format: "#.00%"
drill_fields: [detail*]
sql: 1.00*${provider_ad_stats.total_leads}/NULLIF(${provider_ad_stats.total_cta_clicks},0) ;;
}
measure: cpl {
type: number
value_format: "$#,##0.00"
drill_fields: [detail*]
sql: 1.00*${provider_ad_stats.sum_total_spend}/NULLIF(${provider_ad_stats.total_leads},0) ;;
}
measure: conversion_rate {
type: number
value_format: "#.00%"
drill_fields: [detail*]
sql: 1.00*${provider_ad_stats.total_leads}/NULLIF(${provider_ad_stats.total_visitors},0) ;;
}
measure: count {
type: count
drill_fields: [detail*]
}
measure: count_provider_ad_id {
label: "Unique Provider Ad Count"
type: count_distinct
drill_fields: [detail*]
sql: ${provider_ad_id} ;;
}
}
provider_ad_stats.view.lookml · 320 lines
source-preserved
- view: provider_ad_stats
derived_table:
sql: SELECT
b.provider_ad_id_all AS provider_ad_id,
case when <% parameter date_group %> = 'Week'
then date_trunc('week',b.period_start_date)::date
when <% parameter date_group %> = 'Month'
then date_trunc('month',b.period_start_date)::date
when <% parameter date_group %> = 'Rollup'
then '1900-01-01'::date
when <% parameter date_group %> = 'Day'
then b.period_start_date
end as timeframe,
MIN(b.first_start_date) AS first_start_date,
b.ad_period AS ad_period,
sum(b.visitors) AS visitors,
sum(b.views) AS views,
sum(b.cta_submits) AS cta_submits,
sum(b.unique_cta_submits) AS unique_cta_submits,
sum(b.cta_clicks) AS cta_clicks,
sum(b.leads) AS leads,
sum(b.clicks) AS clicks,
sum(b.total_spend) AS total_spend,
sum(b.impressions) AS impressions
FROM (
SELECT
c.engagement_id,
c.ad_id,
c.provider_ad_id_all,
MIN(c.start_date) OVER (PARTITION BY c.provider_ad_id_all,c.ad_period) as period_start_date,
c.first_start_date,
c.ad_period,
c.visitors,
c.views,
c.cta_submits,
c.unique_cta_submits,
c.cta_clicks,
c.leads,
c.clicks,
c.total_spend,
c.impressions
FROM (
SELECT
a.engagement_id,
a.ad_id,
a.provider_ad_id_all,
a.start_date,
a.first_start_date,
case when <% parameter date_group %> = 'Week'
then (start_date - first_start_date)/7::int
when <% parameter date_group %> = 'Month'
then (EXTRACT('year' FROM a.start_date) - EXTRACT('year' FROM a.first_start_date)) * 12 +
(EXTRACT('month' FROM a.start_date) - EXTRACT('month' FROM a.first_start_date)) -
CASE WHEN (CEILING(DATE_PART('day',a.start_date) - DATE_PART('day',a.first_start_date))) < 0 THEN 1 ELSE 0 end
when <% parameter date_group %> = 'Day'
then (start_date - first_start_date)::int
when <% parameter date_group %> = 'Rollup'
then 0::int
end as ad_period,
a.visitors,
a.views,
a.cta_submits,
a.unique_cta_submits,
a.cta_clicks,
a.leads,
a.clicks,
a.total_spend,
a.impressions
FROM (
SELECT
z.engagement_id,
z.ad_id,
z.provider_ad_id_all,
z.start_date,
MIN(z.start_date) OVER (PARTITION BY z.provider_ad_id_all) as first_start_date,
z.visitors,
z.views,
z.cta_submits,
z.unique_cta_submits,
z.cta_clicks,
z.leads,
z.clicks,
z.total_spend,
z.impressions
FROM (
SELECT
x.id as engagement_id,
y.id as ad_id,
CASE WHEN x.provider_ad_id IS NOT NULL THEN x.provider_ad_id
ELSE y.provider_ad_id
END
AS provider_ad_id_all,
CASE WHEN x.start_date IS NOT NULL then x.start_date
ELSE y.start_date
END
as start_date,
x.visitors,
x.views,
x.cta_submits,
x.unique_cta_submits,
x.cta_clicks,
x.leads,
y.clicks,
y.total_spend,
y.impressions
FROM (
SELECT
*
FROM
public_schema.provider_engagement_stats
WHERE
provider_ad_id IS NOT NULL
) as x
FULL OUTER JOIN
public_schema.provider_ad_stats y
ON
x.provider_ad_id = y.provider_ad_id AND
x.start_date = y.start_date
) as z
) as a
) as c
) as b
GROUP BY
b.provider_ad_id_all, timeframe, b.ad_period
fields:
- dimension: provider_ad_id
type: int
sql: ${TABLE}.provider_ad_id
- dimension: ad_period
type: int
sql: ${TABLE}.ad_period + 1
- dimension: period_start
type: time
label: Ad Period Start
sql: CASE
WHEN <% parameter date_group %> = 'Month' THEN ${ad_date} + date_part('day',${first_date})::int - 1
WHEN <% parameter date_group %> = 'Week' THEN ${ad_date} + date_part('dow', ${first_date})::int - 1
ELSE NULL
END
- dimension: period_end
type: time
label: Ad Period End
sql: CASE
WHEN <% parameter date_group %> = 'Month' THEN ADD_MONTHS(${ad_date} + date_part('day',${first_date})::int - 2,1)
WHEN <% parameter date_group %> = 'Week' THEN ${ad_date} + date_part('dow',${first_date})::int - 2 + interval '1 week'
ELSE NULL
END
- dimension: spend
type: number
value_format: '$#,##0.00'
sql: ${TABLE}.total_spend/100
- dimension: messaging_version
sql: CASE
WHEN ${TABLE}.timeframe < <% parameter placeholder_date %>::date THEN 'pre-messaging'
ELSE 'v1'
END
- dimension: manager
sql: COALESCE(${_account.manager}, ${people2.display_name})
- dimension: operations_lead
sql: COALESCE(${_account.operations_lead}, ${people3.display_name})
- dimension_group: first
type: time
timeframes:
- date
- week
- month
convert_tz: false
sql: ${TABLE}.first_start_date
- dimension_group: ad
type: time
timeframes:
- date
- week
- month
convert_tz: false
sql: ${TABLE}.timeframe
- measure: total_visitors
type: sum
drill_fields:
- detail*
sql: ${TABLE}.visitors
- measure: total_views
type: sum
drill_fields:
- detail*
sql: ${TABLE}.views
- measure: total_clicks
type: sum
drill_fields:
- detail*
sql: ${TABLE}.clicks
- measure: total_impressions
type: sum
drill_fields:
- detail*
sql: ${TABLE}.impressions
- measure: sum_total_spend
type: sum
label: Total Spend
value_format: '$#,##0.00'
drill_fields:
- detail*
sql: (1.00)*${TABLE}.total_spend/100
- measure: total_non_redirect_leads
type: sum
drill_fields:
- detail*
sql: ${TABLE}.leads
- measure: total_cta_clicks
type: sum
drill_fields:
- detail*
sql: ${TABLE}.cta_clicks
- measure: total_submits
type: sum
drill_fields:
- detail*
sql: ${TABLE}.cta_submits
- measure: total_leads
type: sum
drill_fields:
- detail*
sql: ${TABLE}.unique_cta_submits
- measure: avg_visitors
type: average
drill_fields:
- detail*
sql: 1.00*${TABLE}.visitors
- measure: avg_views
type: average
drill_fields:
- detail*
sql: 1.00*${TABLE}.views
- measure: avg_clicks
type: average
drill_fields:
- detail*
sql: 1.00*${TABLE}.clicks
- measure: avg_impressions
type: average
drill_fields:
- detail*
sql: 1.00*${TABLE}.impressions
- measure: average_impressions_new
type: number
drill_fields:
- detail*
sql: 1.00*${total_impressions} / NULLIF(${count_provider_ad_id},0)
- measure: avg_total_spend
type: average
value_format: '$#,##0.00'
drill_fields:
- detail*
sql: (1.00)*${TABLE}.total_spend/100
- measure: avg_non_redirect_leads
type: average
drill_fields:
- detail*
sql: 1.00*${TABLE}.leads
- measure: avg_cta_clicks
type: average
drill_fields:
- detail*
sql: 1.00*${TABLE}.cta_clicks
- measure: avg_cta_submits
type: average
drill_fields:
- detail*
sql: 1.00*${TABLE}.cta_submits
- measure: avg_leads
type: average
drill_fields:
- detail*
sql: 1.00*${TABLE}.unique_cta_submits
- measure: ctr
type: number
value_format: '#.00%'
drill_fields:
- detail*
sql: 1.00*${provider_ad_stats.total_clicks}/NULLIF(${provider_ad_stats.total_impressions},0)
- measure: cpc
type: number
value_format: '$#,##0.00'
drill_fields:
- detail*
sql: 1.00*${provider_ad_stats.sum_total_spend}/NULLIF(${provider_ad_stats.total_clicks},0)
- measure: percent_cta_clicks
type: number
value_format: '#.00%'
drill_fields:
- detail*
sql: 1.00*${provider_ad_stats.total_cta_clicks}/NULLIF(${provider_ad_stats.total_views},0)
- measure: percent_submit
type: number
value_format: '#.00%'
drill_fields:
- detail*
sql: 1.00*${provider_ad_stats.total_leads}/NULLIF(${provider_ad_stats.total_cta_clicks},0)
- measure: cpl
type: number
value_format: '$#,##0.00'
drill_fields:
- detail*
sql: 1.00*${provider_ad_stats.sum_total_spend}/NULLIF(${provider_ad_stats.total_leads},0)
- measure: conversion_rate
type: number
value_format: '#.00%'
drill_fields:
- detail*
sql: 1.00*${provider_ad_stats.total_leads}/NULLIF(${provider_ad_stats.total_visitors},0)
- measure: count
type: count
drill_fields:
- detail*
- measure: count_provider_ad_id
type: count_distinct
label: Unique Provider Ad Count
drill_fields:
- detail*
sql: ${provider_ad_id}
Contents
- provider_ad_stats.sql
- provider_ad_stats.sql
- provider_ad_stats.view.lkml
- provider_ad_stats.view.lookml