├── explores ├── .gitkeep ├── data_health_check.explore.lkml ├── impression_funnel.explore.lkml ├── click.explore.lkml ├── activity.explore.lkml └── impression.explore.lkml ├── views ├── .gitkeep ├── match_tables │ ├── .gitkeep │ ├── match_table_browsers.view.lkml │ ├── match_table_cities.view.lkml │ ├── match_table_ad_placement_assignments.view.lkml │ ├── match_table_activity_types.view.lkml │ ├── match_table_advertisers.view.lkml │ ├── match_table_campaigns.view.lkml │ └── match_table_ads.view.lkml ├── derived_tables │ ├── .gitkeep │ ├── match_table_operating_systems.view.lkml │ ├── user_impression_facts.view.lkml │ ├── match_table_creatives.view.lkml │ ├── user_campaign_facts.view.lkml │ └── impression_funnel.view.lkml ├── redaction_combined.view.lkml ├── click.view.lkml ├── date_comparison.view.lkml ├── activity.view.lkml └── impression.view.lkml ├── map_layers └── .gitkeep ├── manifest.lkml ├── marketplace.json ├── campaign_manager_marketplace_v2.model.lkml ├── LICENSE ├── README.md └── dashboards ├── 4_data_health_check.dashboard.lookml ├── 2_top_performers__breakdowns.dashboard.lookml ├── 3_campaign_overview.dashboard.lookml └── 1_reach_overview.dashboard.lookml /explores/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /views/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /map_layers/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /views/match_tables/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /views/derived_tables/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /explores/data_health_check.explore.lkml: -------------------------------------------------------------------------------- 1 | include: "/views/**/*.view" 2 | 3 | explore: data_health_check { 4 | view_name: redaction_combined 5 | label: "(5) Data Health Check" 6 | always_filter: { 7 | filters: [redaction_combined.partition: "last 7 days"] 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /views/match_tables/match_table_browsers.view.lkml: -------------------------------------------------------------------------------- 1 | view: match_table_browsers { 2 | sql_table_name: (select * from `@{PROJECT_NAME}.@{DATASET_NAME}.match_table_browsers_@{CAMPAIGN_MANAGER_ID}` where _LATEST_DATE = _DATA_DATE) ;; 3 | 4 | dimension: browser_platform { 5 | type: string 6 | sql: ${TABLE}.Browser_Platform ;; 7 | } 8 | 9 | dimension: browser_platform_id { 10 | primary_key: yes 11 | hidden: yes 12 | type: string 13 | sql: ${TABLE}.Browser_Platform_ID ;; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /manifest.lkml: -------------------------------------------------------------------------------- 1 | project_name: "block-google-campaign-manager-dts" 2 | 3 | constant: CONNECTION_NAME { 4 | value: "your_bq_connection_name" 5 | export: override_optional 6 | } 7 | 8 | constant: PROJECT_NAME { 9 | value: "your_bq_project_name" 10 | export: override_optional 11 | } 12 | constant: DATASET_NAME { 13 | value: "your_bq_campaign_manager_dataset" 14 | export: override_optional 15 | } 16 | constant: CAMPAIGN_MANAGER_ID { 17 | value: "your_campaign_manager_id" 18 | export: override_optional 19 | } 20 | -------------------------------------------------------------------------------- /views/match_tables/match_table_cities.view.lkml: -------------------------------------------------------------------------------- 1 | view: match_table_cities { 2 | sql_table_name: (select * from `@{PROJECT_NAME}.@{DATASET_NAME}.match_table_cities_@{CAMPAIGN_MANAGER_ID}` where _LATEST_DATE = _DATA_DATE) ;; 3 | 4 | 5 | dimension: city { 6 | type: string 7 | sql: ${TABLE}.City ;; 8 | } 9 | 10 | dimension: city_id { 11 | type: string 12 | sql: ${TABLE}.City_ID ;; 13 | } 14 | 15 | measure: count { 16 | type: count 17 | approximate_threshold: 100000 18 | drill_fields: [] 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /views/match_tables/match_table_ad_placement_assignments.view.lkml: -------------------------------------------------------------------------------- 1 | view: match_table_ad_placement_assignments { 2 | sql_table_name: (select * from `@{PROJECT_NAME}.@{DATASET_NAME}.match_table_ad_placement_assignments_@{CAMPAIGN_MANAGER_ID}` where _LATEST_DATE = _DATA_DATE) ;; 3 | 4 | dimension: ad_id { 5 | type: string 6 | sql: ${TABLE}.Ad_ID ;; 7 | } 8 | 9 | dimension: placement_id { 10 | type: string 11 | sql: ${TABLE}.Placement_ID ;; 12 | } 13 | 14 | dimension: pk { 15 | hidden: yes 16 | primary_key: yes 17 | sql: CONCAT(${ad_id},'-',${placement_id}) ;; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /marketplace.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "Campaign Manager 360", 3 | "category_label": "Models", 4 | "branding": { 5 | "image_uri": "https://marketplace-api.looker.com/block-icons/block-campaign_manager.png", 6 | "tagline": "Flood light on campaign impressions, spend and more.\n(Beta)", 7 | "badge": "Beta" 8 | }, 9 | "constants": { 10 | "CONNECTION_NAME": { 11 | "label": "Connection Name", 12 | "value_constraint": "connection" 13 | } 14 | }, 15 | "models": [ 16 | { 17 | "name": "campaign_manager_marketplace_v2", 18 | "connection_constant": "CONNECTION_NAME" 19 | } 20 | ] 21 | } -------------------------------------------------------------------------------- /campaign_manager_marketplace_v2.model.lkml: -------------------------------------------------------------------------------- 1 | connection: "@{CONNECTION_NAME}" 2 | 3 | include: "/explores/**/*" 4 | include: "/dashboards/**/*.dashboard" 5 | 6 | map_layer: dma { 7 | file: "/map_layers/dma.topojson" 8 | property_key: "dma" 9 | } 10 | 11 | persist_for: "24 hours" 12 | 13 | label: "Block Campaign Manager 360" 14 | 15 | 16 | 17 | datagroup: new_day { 18 | sql_trigger: 19 | SELECT max(date(_PARTITIONTIME)) from ${impression.SQL_TABLE_NAME} 20 | where _PARTITIONTIME >= TIMESTAMP(DATE_ADD(CURRENT_DATE, INTERVAL -60 DAY)) ;; 21 | } 22 | 23 | datagroup: bqml_datagroup { 24 | sql_trigger: select CURRENT_DATE() ;; 25 | max_cache_age: "24 hours" 26 | } 27 | -------------------------------------------------------------------------------- /views/derived_tables/match_table_operating_systems.view.lkml: -------------------------------------------------------------------------------- 1 | view: match_table_operating_systems { 2 | # De-Duping 3 | derived_table: { 4 | sql: SELECT 5 | CAST(Operating_System_ID AS INT64) AS Operating_System_ID_key, 6 | Operating_System 7 | FROM `@{PROJECT_NAME}.@{DATASET_NAME}.match_table_operating_systems_@{CAMPAIGN_MANAGER_ID}` 8 | GROUP BY Operating_System_ID_key,Operating_System ;; 9 | } 10 | 11 | dimension: operating_system { 12 | type: string 13 | sql: ${TABLE}.Operating_System ;; 14 | } 15 | 16 | dimension: operating_system_id_key { 17 | primary_key: yes 18 | hidden: yes 19 | type: string 20 | sql: ${TABLE}.Operating_System_ID_key ;; 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /views/match_tables/match_table_activity_types.view.lkml: -------------------------------------------------------------------------------- 1 | view: match_table_activity_types { 2 | sql_table_name: (select * from `@{PROJECT_NAME}.@{DATASET_NAME}.match_table_activity_types_@{CAMPAIGN_MANAGER_ID}` where _LATEST_DATE = _DATA_DATE) ;; 3 | 4 | dimension: activity_group { 5 | type: string 6 | sql: ${TABLE}.Activity_Group ;; 7 | } 8 | 9 | dimension: activity_group_id { 10 | type: string 11 | sql: ${TABLE}.Activity_Group_ID ;; 12 | } 13 | 14 | dimension: activity_type { 15 | type: string 16 | sql: ${TABLE}.Activity_Type ;; 17 | } 18 | 19 | dimension: floodlight_configuration { 20 | type: string 21 | sql: ${TABLE}.Floodlight_Configuration ;; 22 | } 23 | 24 | measure: count { 25 | type: count 26 | approximate_threshold: 100000 27 | drill_fields: [] 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /views/match_tables/match_table_advertisers.view.lkml: -------------------------------------------------------------------------------- 1 | view: match_table_advertisers { 2 | sql_table_name: (select * from `@{PROJECT_NAME}.@{DATASET_NAME}.match_table_advertisers_@{CAMPAIGN_MANAGER_ID}` where _LATEST_DATE = _DATA_DATE) ;; 3 | 4 | dimension: advertiser_name { 5 | type: string 6 | sql: ${TABLE}.Advertiser ;; 7 | } 8 | 9 | dimension: advertiser_group { 10 | type: string 11 | sql: ${TABLE}.Advertiser_Group ;; 12 | } 13 | 14 | dimension: advertiser_group_id { 15 | type: string 16 | sql: ${TABLE}.Advertiser_Group_ID ;; 17 | } 18 | 19 | dimension: advertiser_id { 20 | type: string 21 | hidden: yes 22 | sql: ${TABLE}.Advertiser_ID ;; 23 | } 24 | 25 | dimension: floodlight_configuration { 26 | type: string 27 | sql: ${TABLE}.Floodlight_Configuration ;; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /views/match_tables/match_table_campaigns.view.lkml: -------------------------------------------------------------------------------- 1 | view: match_table_campaigns { 2 | sql_table_name: (select * from `@{PROJECT_NAME}.@{DATASET_NAME}.match_table_campaigns_@{CAMPAIGN_MANAGER_ID}` where _LATEST_DATE = _DATA_DATE) ;; 3 | 4 | dimension: advertiser_id { 5 | type: string 6 | hidden: yes 7 | sql: ${TABLE}.Advertiser_ID ;; 8 | } 9 | 10 | dimension: billing_invoice_code { 11 | type: string 12 | sql: ${TABLE}.Billing_Invoice_Code ;; 13 | } 14 | 15 | dimension: campaign_name { 16 | type: string 17 | sql: ${TABLE}.Campaign ;; 18 | } 19 | 20 | dimension_group: campaign_end { 21 | type: time 22 | datatype: yyyymmdd 23 | timeframes: [date, week, month, year] 24 | sql: ${TABLE}.Campaign_End_Date ;; 25 | } 26 | 27 | dimension: campaign_id { 28 | hidden: yes 29 | type: string 30 | sql: ${TABLE}.Campaign_ID ;; 31 | } 32 | 33 | dimension_group: campaign_start { 34 | type: time 35 | datatype: yyyymmdd 36 | timeframes: [date, week, month, year] 37 | sql: ${TABLE}.Campaign_Start_Date ;; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /views/match_tables/match_table_ads.view.lkml: -------------------------------------------------------------------------------- 1 | view: match_table_ads { 2 | sql_table_name: (select * from `@{PROJECT_NAME}.@{DATASET_NAME}.match_table_ads_@{CAMPAIGN_MANAGER_ID}` where _LATEST_DATE = _DATA_DATE) ;; 3 | 4 | dimension: ad_name { 5 | type: string 6 | sql: ${TABLE}.Ad ;; 7 | } 8 | 9 | dimension: ad_click_url { 10 | type: string 11 | sql: ${TABLE}.Ad_Click_URL ;; 12 | } 13 | 14 | dimension: ad_comments { 15 | type: string 16 | sql: ${TABLE}.Ad_Comments ;; 17 | } 18 | 19 | dimension: ad_id { 20 | hidden: yes 21 | type: string 22 | sql: ${TABLE}.Ad_ID ;; 23 | } 24 | 25 | dimension: ad_type { 26 | type: string 27 | sql: ${TABLE}.Ad_Type ;; 28 | } 29 | 30 | dimension: advertiser_id { 31 | type: string 32 | hidden: yes 33 | sql: ${TABLE}.Advertiser_ID ;; 34 | } 35 | 36 | dimension: campaign_id { 37 | type: string 38 | hidden: yes 39 | sql: ${TABLE}.Campaign_ID ;; 40 | } 41 | 42 | dimension: creative_pixel_size { 43 | type: string 44 | sql: ${TABLE}.Creative_Pixel_Size ;; 45 | } 46 | 47 | } 48 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | "MIT License 2 | 3 | Copyright (c) 2022 Google 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE." 22 | -------------------------------------------------------------------------------- /explores/impression_funnel.explore.lkml: -------------------------------------------------------------------------------- 1 | include: "/views/**/*.view" 2 | 3 | explore: impression_funnel { 4 | view_name: impression_funnel 5 | label: "(2) Impression Funnel" 6 | 7 | sql_always_where: TIMESTAMP(${first_ad_impression_date}) > TIMESTAMP(DATE_ADD(CURRENT_DATE, INTERVAL -60 DAY)) ;; 8 | 9 | join: match_table_campaigns { 10 | view_label: "Campaigns" 11 | sql_on: ${impression_funnel.campaign_id} = ${match_table_campaigns.campaign_id} ;; 12 | relationship: many_to_one 13 | } 14 | 15 | join: match_table_ads { 16 | view_label: "Ads" 17 | sql_on: ${impression_funnel.ad_id} = ${match_table_ads.ad_id} ;; 18 | relationship: many_to_one 19 | } 20 | 21 | join: match_table_advertisers { 22 | view_label: "Advertisers" 23 | sql_on: ${impression_funnel.advertiser_id} = ${match_table_advertisers.advertiser_id} ;; 24 | relationship: many_to_one 25 | } 26 | 27 | join: user_campaign_facts { 28 | view_label: "Users" 29 | sql_on: ${impression_funnel.campaign_id} = ${user_campaign_facts.campaign_id} AND ${impression_funnel.user_id} = ${user_campaign_facts.user_id} ;; 30 | relationship: many_to_one 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /explores/click.explore.lkml: -------------------------------------------------------------------------------- 1 | include: "/views/**/*.view" 2 | 3 | explore: click { 4 | view_name: click 5 | label: "(4) Clicks" 6 | view_label: "Clicks" 7 | 8 | sql_always_where: ${click_raw} > TIMESTAMP(DATE_ADD(CURRENT_DATE, INTERVAL -60 DAY)) ;; 9 | 10 | join: match_table_ads { 11 | view_label: "Ads" 12 | sql_on: ${click.ad_id} = ${match_table_ads.ad_id} ;; 13 | relationship: many_to_one 14 | } 15 | 16 | join: match_table_campaigns { 17 | view_label: "Campaigns" 18 | sql_on: ${click.campaign_id} = ${match_table_campaigns.campaign_id} ;; 19 | relationship: many_to_one 20 | } 21 | 22 | join: match_table_advertisers { 23 | view_label: "Advertisers" 24 | sql_on: ${click.advertiser_id} = ${match_table_advertisers.advertiser_id} ;; 25 | relationship: many_to_one 26 | } 27 | 28 | join: match_table_ad_placement_assignments { 29 | view_label: "Ad Placements" 30 | sql_on: ${click.ad_id} = ${match_table_ad_placement_assignments.ad_id} and ${click.placement_id} = ${match_table_ad_placement_assignments.placement_id} ;; 31 | relationship: many_to_one 32 | } 33 | 34 | join: match_table_browsers { 35 | view_label: "Browsers" 36 | sql_on: ${click.browser_platform_id} = ${match_table_browsers.browser_platform_id} ;; 37 | relationship: many_to_one 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /explores/activity.explore.lkml: -------------------------------------------------------------------------------- 1 | include: "/views/**/*.view" 2 | 3 | explore: activity { 4 | view_name: activity 5 | label: "(3) Activities" 6 | view_label: "Activities" 7 | 8 | sql_always_where: ${activity_raw} > TIMESTAMP(DATE_ADD(CURRENT_DATE, INTERVAL -60 DAY)) ;; 9 | 10 | join: match_table_ads { 11 | view_label: "Ads" 12 | sql_on: ${activity.ad_id} = ${match_table_ads.ad_id} ;; 13 | relationship: many_to_one 14 | } 15 | 16 | join: match_table_campaigns { 17 | view_label: "Campaigns" 18 | sql_on: ${activity.campaign_id} = ${match_table_campaigns.campaign_id} ;; 19 | relationship: many_to_one 20 | } 21 | 22 | join: match_table_advertisers { 23 | view_label: "Advertisers" 24 | sql_on: ${activity.advertiser_id} = ${match_table_advertisers.advertiser_id} ;; 25 | relationship: many_to_one 26 | } 27 | 28 | join: match_table_ad_placement_assignments { 29 | view_label: "Ad Placements" 30 | sql_on: ${activity.ad_id} = ${match_table_ad_placement_assignments.ad_id} and ${activity.placement_id} = ${match_table_ad_placement_assignments.placement_id} ;; 31 | relationship: many_to_one 32 | } 33 | 34 | join: match_table_browsers { 35 | view_label: "Browsers" 36 | sql_on: ${activity.browser_platform_id} = ${match_table_browsers.browser_platform_id} ;; 37 | relationship: many_to_one 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /views/derived_tables/user_impression_facts.view.lkml: -------------------------------------------------------------------------------- 1 | view: user_impression_facts { 2 | derived_table: { 3 | datagroup_trigger: new_day 4 | sql: 5 | SELECT 6 | impression.User_ID AS user_id, 7 | impression.Campaign_ID AS campaign_id, 8 | COUNT(DISTINCT (concat(impression.Ad_ID, impression.Advertiser_ID, impression.User_ID, cast(impression.Event_Time as string), impression.Event_Type, impression.Rendering_ID)) ) AS count_impressions, 9 | (COUNT(DISTINCT (concat(impression.Ad_ID, impression.Advertiser_ID, impression.User_ID, cast(impression.Event_Time as string), impression.Event_Type, impression.Rendering_ID)) ))/NULLIF((COUNT(DISTINCT impression.User_ID )),0) AS impressions_per_user 10 | FROM `@{PROJECT_NAME}.@{DATASET_NAME}.p_impression_@{CAMPAIGN_MANAGER_ID}` AS impression 11 | WHERE impression._PARTITIONTIME > TIMESTAMP(DATE_ADD(CURRENT_DATE, INTERVAL -60 DAY)) 12 | GROUP BY 1,2 ;; 13 | } 14 | 15 | dimension: user_id { 16 | primary_key: yes 17 | hidden: yes 18 | } 19 | 20 | dimension: campaign_id { 21 | hidden: yes 22 | } 23 | 24 | dimension: count_impressions { 25 | view_label: "Impressions" 26 | label: "Impressions Per User" 27 | type: number 28 | } 29 | 30 | dimension: impressions_per_user_tiered { 31 | view_label: "Impressions" 32 | label: "Impressions Per User - Tiered" 33 | type: tier 34 | style: integer 35 | tiers: [1,10,20,30,40,50] 36 | sql: ${count_impressions} ;; 37 | } 38 | 39 | 40 | 41 | } 42 | -------------------------------------------------------------------------------- /views/redaction_combined.view.lkml: -------------------------------------------------------------------------------- 1 | view: redaction_combined { 2 | derived_table: { 3 | sql: SELECT User_ID,"Impression" AS File_Type FROM `@{PROJECT_NAME}.@{DATASET_NAME}.p_impression_@{CAMPAIGN_MANAGER_ID}` 4 | WHERE {% condition partition %}_PARTITIONTIME {% endcondition %} 5 | UNION ALL 6 | SELECT User_ID,"Click" AS File_Type FROM `@{PROJECT_NAME}.@{DATASET_NAME}.p_click_@{CAMPAIGN_MANAGER_ID}` 7 | WHERE {% condition partition %}_PARTITIONTIME {% endcondition %} 8 | UNION ALL 9 | SELECT User_ID,"Activity" AS File_Type FROM `@{PROJECT_NAME}.@{DATASET_NAME}.p_activity_@{CAMPAIGN_MANAGER_ID}` 10 | WHERE {% condition partition %}_PARTITIONTIME {% endcondition %} 11 | ;; 12 | } 13 | 14 | filter: partition { 15 | type: date 16 | default_value: "7 days" 17 | } 18 | 19 | dimension: user_id { 20 | type: string 21 | sql: ${TABLE}.User_ID ;; 22 | } 23 | 24 | dimension: file_type { 25 | type: string 26 | sql: ${TABLE}.File_Type ;; 27 | } 28 | 29 | dimension: redacted { 30 | type: yesno 31 | sql: ${user_id} = '0' ;; 32 | } 33 | 34 | dimension: filled { 35 | type: yesno 36 | sql: ${user_id} != '0' ;; 37 | } 38 | 39 | measure: total_count { 40 | type: count 41 | } 42 | 43 | measure: total_redacted { 44 | type: count 45 | filters: [redacted: "yes"] 46 | } 47 | 48 | measure: total_filled { 49 | type: count 50 | filters: [filled: "yes"] 51 | } 52 | 53 | measure: redaction_rate { 54 | type: number 55 | value_format_name: percent_2 56 | sql: 1.0*${total_redacted}/NULLIF(${total_count},0) ;; 57 | } 58 | 59 | } 60 | -------------------------------------------------------------------------------- /explores/impression.explore.lkml: -------------------------------------------------------------------------------- 1 | include: "/views/**/*.view" 2 | 3 | explore: impression { 4 | view_name: impression 5 | label: "(1) Impressions" 6 | view_label: "Impressions" 7 | 8 | sql_always_where: ${impression_raw} > TIMESTAMP(DATE_ADD(CURRENT_DATE, INTERVAL -60 DAY)) ;; 9 | 10 | join: match_table_ads { 11 | view_label: "Ads" 12 | sql_on: ${impression.ad_id} = ${match_table_ads.ad_id} ;; 13 | relationship: many_to_one 14 | } 15 | 16 | join: match_table_campaigns { 17 | view_label: "Campaigns" 18 | sql_on: ${impression.campaign_id} = ${match_table_campaigns.campaign_id} ;; 19 | relationship: many_to_one 20 | } 21 | 22 | join: match_table_advertisers { 23 | view_label: "Advertisers" 24 | sql_on: ${impression.advertiser_id} = ${match_table_advertisers.advertiser_id} ;; 25 | relationship: many_to_one 26 | } 27 | 28 | join: match_table_ad_placement_assignments { 29 | view_label: "Ad Placements" 30 | sql_on: ${impression.ad_id} = ${match_table_ad_placement_assignments.ad_id} and ${impression.placement_id} = ${match_table_ad_placement_assignments.placement_id} ;; 31 | relationship: many_to_one 32 | } 33 | 34 | join: match_table_browsers { 35 | view_label: "Browsers" 36 | sql_on: ${impression.browser_platform_id} = ${match_table_browsers.browser_platform_id} ;; 37 | relationship: many_to_one 38 | } 39 | 40 | join: match_table_creatives { 41 | view_label: "Creatives" 42 | sql_on: ${impression.rendering_id} = ${match_table_creatives.rendering_id} ;; 43 | relationship: many_to_one 44 | } 45 | join: match_table_operating_systems { 46 | view_label: "Operating System" 47 | sql_on: ${impression.operating_system_id_key} = ${match_table_operating_systems.operating_system_id_key} ;; 48 | relationship: many_to_one 49 | } 50 | 51 | join: user_impression_facts { 52 | relationship: one_to_one 53 | sql_on: ${impression.user_id} = ${user_impression_facts.user_id} and ${impression.campaign_id} = ${user_impression_facts.campaign_id} ;; 54 | } 55 | 56 | } 57 | -------------------------------------------------------------------------------- /views/derived_tables/match_table_creatives.view.lkml: -------------------------------------------------------------------------------- 1 | view: match_table_creatives { 2 | derived_table: { 3 | sql: 4 | SELECT * FROM ( 5 | SELECT 6 | _DATA_DATE, 7 | _LATEST_DATE, 8 | Advertiser_ID, 9 | Rendering_ID, 10 | Creative_ID, 11 | Creative, 12 | Creative_Type, 13 | Creative_Image_URL, 14 | Creative_Last_Modified_Date, 15 | Creative_Version 16 | Creative_Pixel_Size, 17 | ROW_NUMBER() OVER( 18 | PARTITION BY Rendering_ID 19 | ORDER BY _DATA_DATE DESC 20 | ) AS Recency 21 | FROM `@{PROJECT_NAME}.@{DATASET_NAME}.match_table_creatives_@{CAMPAIGN_MANAGER_ID}` 22 | ) 23 | WHERE Recency = 1 24 | ;; 25 | } 26 | 27 | dimension_group: _data { 28 | type: time 29 | timeframes: [ 30 | raw, 31 | date, 32 | week, 33 | month, 34 | quarter, 35 | year 36 | ] 37 | convert_tz: no 38 | datatype: date 39 | sql: ${TABLE}._DATA_DATE ;; 40 | } 41 | 42 | dimension_group: _latest { 43 | type: time 44 | timeframes: [ 45 | raw, 46 | date, 47 | week, 48 | month, 49 | quarter, 50 | year 51 | ] 52 | convert_tz: no 53 | datatype: date 54 | sql: ${TABLE}._LATEST_DATE ;; 55 | } 56 | 57 | dimension: advertiser_id { 58 | type: string 59 | sql: ${TABLE}.Advertiser_ID ;; 60 | } 61 | 62 | dimension: creative { 63 | type: string 64 | sql: ${TABLE}.Creative ;; 65 | } 66 | 67 | dimension: creative_id { 68 | type: string 69 | sql: ${TABLE}.Creative_ID ;; 70 | } 71 | 72 | dimension: creative_image_url { 73 | type: string 74 | sql: ${TABLE}.Creative_Image_URL ;; 75 | } 76 | 77 | dimension: creative_last_modified_date { 78 | type: string 79 | sql: ${TABLE}.Creative_Last_Modified_Date ;; 80 | } 81 | 82 | dimension: creative_pixel_size { 83 | type: string 84 | sql: ${TABLE}.Creative_Pixel_Size ;; 85 | } 86 | 87 | dimension: creative_type { 88 | type: string 89 | sql: ${TABLE}.Creative_Type ;; 90 | } 91 | 92 | dimension: creative_version { 93 | type: number 94 | sql: ${TABLE}.Creative_Version ;; 95 | } 96 | 97 | dimension: rendering_id { 98 | type: string 99 | sql: ${TABLE}.Rendering_ID ;; 100 | } 101 | 102 | } 103 | -------------------------------------------------------------------------------- /views/derived_tables/user_campaign_facts.view.lkml: -------------------------------------------------------------------------------- 1 | view: user_campaign_facts { 2 | derived_table: { 3 | datagroup_trigger: new_day 4 | sql: SELECT 5 | impression_funnel.user_id AS impression_funnel_user_id, 6 | impression_funnel.campaign_id AS impression_funnel_campaign_id, 7 | min(impression_funnel.first_activity) AS first_campaign_activity_date, 8 | min(impression_funnel.first_click) AS first_campaign_click_date, 9 | min(impression_funnel.first_impression) AS first_campaign_impression_date, 10 | max(impression_funnel.latest_click) AS latest_campaign_click_date, 11 | max(impression_funnel.latest_activity) AS latest_campaign_activity_date, 12 | max(impression_funnel.latest_impression) AS latest_campaign_impression_date 13 | FROM ${impression_funnel.SQL_TABLE_NAME} AS impression_funnel 14 | GROUP BY 1,2 15 | ;; 16 | } 17 | 18 | dimension: user_id { 19 | hidden: yes 20 | primary_key: yes 21 | type: string 22 | sql: ${TABLE}.impression_funnel_user_id ;; 23 | } 24 | 25 | dimension: campaign_id { 26 | type: string 27 | hidden: yes 28 | sql: ${TABLE}.impression_funnel_campaign_id ;; 29 | } 30 | 31 | dimension_group: first_campaign_activity { 32 | type: time 33 | datatype: epoch 34 | sql: cast(${TABLE}.first_campaign_activity_date/1000000 as int64) ;; 35 | timeframes: [date, week, month, year] 36 | } 37 | 38 | dimension_group: first_campaign_click { 39 | type: time 40 | datatype: epoch 41 | sql: cast(${TABLE}.first_campaign_click_date/1000000 as int64) ;; 42 | timeframes: [date, week, month, year] 43 | } 44 | 45 | dimension_group: first_campaign_impression { 46 | type: time 47 | datatype: epoch 48 | sql: cast(${TABLE}.first_campaign_impression_date/1000000 as int64) ;; 49 | timeframes: [date, week, month, year] 50 | } 51 | 52 | dimension_group: latest_campaign_click { 53 | type: time 54 | datatype: epoch 55 | sql: cast(${TABLE}.latest_campaign_click_date/1000000 as int64) ;; 56 | timeframes: [date, week, month, year] 57 | } 58 | 59 | dimension_group: latest_campaign_activity { 60 | type: time 61 | datatype: epoch 62 | sql: cast(${TABLE}.latest_campaign_activity_date/1000000 as int64) ;; 63 | timeframes: [date, week, month, year] 64 | } 65 | 66 | dimension_group: latest_campaign_impression { 67 | type: time 68 | datatype: epoch 69 | sql: cast(${TABLE}.latest_campaign_impression_date/1000000 as int64) ;; 70 | timeframes: [date, week, month, year] 71 | } 72 | 73 | measure: count { 74 | type: count 75 | } 76 | 77 | set: detail { 78 | fields: [first_campaign_activity_date, first_campaign_click_date, first_campaign_impression_date, latest_campaign_click_date, latest_campaign_activity_date, latest_campaign_impression_date] 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /views/click.view.lkml: -------------------------------------------------------------------------------- 1 | include: "date_comparison.view" 2 | 3 | view: click { 4 | sql_table_name: `@{PROJECT_NAME}.@{DATASET_NAME}.p_click_@{CAMPAIGN_MANAGER_ID}`;; 5 | extends: [date_comparison] 6 | 7 | dimension_group: click { 8 | type: time 9 | timeframes: [raw, date, week, day_of_week, month, month_name, quarter, year] 10 | sql: ${TABLE}._PARTITIONTIME ;; 11 | } 12 | 13 | dimension: ad_id { 14 | type: string 15 | sql: ${TABLE}.Ad_ID ;; 16 | } 17 | 18 | dimension: advertiser_id { 19 | type: string 20 | sql: ${TABLE}.Advertiser_ID ;; 21 | } 22 | 23 | dimension: browser_platform_id { 24 | type: string 25 | sql: ${TABLE}.Browser_Platform_ID ;; 26 | } 27 | 28 | dimension: browser_platform_version { 29 | type: string 30 | sql: ${TABLE}.Browser_Platform_Version ;; 31 | } 32 | 33 | dimension: campaign_id { 34 | type: string 35 | sql: ${TABLE}.Campaign_ID ;; 36 | } 37 | 38 | dimension: city_id { 39 | type: string 40 | sql: ${TABLE}.City_ID ;; 41 | } 42 | 43 | dimension: country_code { 44 | type: string 45 | sql: ${TABLE}.Country_Code ;; 46 | } 47 | 48 | dimension: creative_version { 49 | type: number 50 | sql: ${TABLE}.Creative_Version ;; 51 | } 52 | 53 | dimension: designated_market_area_dma_id { 54 | type: string 55 | sql: ${TABLE}.Designated_Market_Area_DMA_ID ;; 56 | } 57 | 58 | dimension: event_sub_type { 59 | type: string 60 | sql: ${TABLE}.Event_Sub_Type ;; 61 | } 62 | 63 | dimension_group: event { 64 | type: time 65 | datatype: epoch 66 | sql: ${TABLE}.Event_Time/1000000 ;; 67 | } 68 | 69 | dimension: event_type { 70 | type: string 71 | sql: ${TABLE}.Event_Type ;; 72 | } 73 | 74 | dimension: operating_system_id { 75 | type: string 76 | sql: ${TABLE}.Operating_System_ID ;; 77 | } 78 | 79 | dimension: partner1_id { 80 | type: string 81 | sql: ${TABLE}.Partner1_ID ;; 82 | } 83 | 84 | dimension: partner2_id { 85 | type: string 86 | sql: ${TABLE}.Partner2_ID ;; 87 | } 88 | 89 | dimension: placement_id { 90 | type: string 91 | sql: ${TABLE}.Placement_ID ;; 92 | } 93 | 94 | dimension: rendering_id { 95 | type: string 96 | sql: ${TABLE}.Rendering_ID ;; 97 | } 98 | 99 | dimension: segment_value_1 { 100 | type: string 101 | sql: ${TABLE}.Segment_Value_1 ;; 102 | } 103 | 104 | dimension: site_id_dcm { 105 | type: string 106 | sql: ${TABLE}.Site_ID_DCM ;; 107 | } 108 | 109 | dimension: state_region { 110 | type: string 111 | sql: ${TABLE}.State_Region ;; 112 | } 113 | 114 | dimension: u_value { 115 | type: string 116 | sql: ${TABLE}.U_Value ;; 117 | } 118 | 119 | dimension: user_id { 120 | type: string 121 | sql: ${TABLE}.User_ID ;; 122 | } 123 | 124 | dimension: zip_postal_code { 125 | type: string 126 | sql: ${TABLE}.ZIP_Postal_Code ;; 127 | } 128 | 129 | measure: count { 130 | type: count 131 | drill_fields: [match_table_campaigns.campaign_name, count] 132 | value_format:"[<1000]0.00;[<1000000]0.00,\" K\";0.00,,\" M\"" 133 | } 134 | } 135 | -------------------------------------------------------------------------------- /views/date_comparison.view.lkml: -------------------------------------------------------------------------------- 1 | view: date_comparison { 2 | extension: required 3 | 4 | parameter: comparison_type { 5 | label: "Date Range" 6 | view_label: "Date Comparison" 7 | type: unquoted 8 | allowed_value: { 9 | label: "Last 7 Days" 10 | value: "seven" 11 | } 12 | allowed_value: { 13 | label: "Last 14 Days" 14 | value: "fourteen" 15 | } 16 | allowed_value: { 17 | label: "Last 30 Days" 18 | value: "thirty" 19 | } 20 | default_value: "seven" 21 | } 22 | 23 | dimension: selected_comparison { 24 | view_label: "Date Comparison" 25 | sql: {% if comparison_type._parameter_value == "seven" %} 26 | ${last_7_days_vs_previous_7_days} 27 | {% elsif comparison_type._parameter_value == "fourteen" %} 28 | ${last_14_days_vs_previous_14_days} 29 | {% elsif comparison_type._parameter_value == "thirty" %} 30 | ${last_30_days_vs_previous_30_days} 31 | {% else %} 32 | 0 33 | {% endif %};; 34 | } 35 | 36 | dimension: no_comparison { 37 | view_label: "Date Comparison" 38 | type: yesno 39 | sql: ${selected_comparison} LIKE '%Last%' ;; 40 | } 41 | 42 | 43 | dimension: last_7_days_vs_previous_7_days { 44 | view_label: "Date Comparison" 45 | type: string 46 | sql: CASE 47 | WHEN (( ${TABLE}._PARTITIONTIME >= (TIMESTAMP_ADD(TIMESTAMP_TRUNC(CURRENT_TIMESTAMP(), DAY), INTERVAL -6 DAY))) AND ${TABLE}._PARTITIONTIME < (TIMESTAMP_ADD(TIMESTAMP_ADD(TIMESTAMP_TRUNC(CURRENT_TIMESTAMP(), DAY), INTERVAL -6 DAY), INTERVAL 7 DAY))) 48 | THEN 'Last 7 Days' 49 | 50 | WHEN (( ${TABLE}._PARTITIONTIME >= (TIMESTAMP_ADD(TIMESTAMP_TRUNC(CURRENT_TIMESTAMP(), DAY), INTERVAL -13 DAY))) AND ${TABLE}._PARTITIONTIME < (TIMESTAMP_ADD(TIMESTAMP_ADD(TIMESTAMP_TRUNC(CURRENT_TIMESTAMP(), DAY), INTERVAL -13 DAY), INTERVAL 7 DAY))) 51 | THEN 'Prior 7 Days' 52 | END 53 | ;; 54 | } 55 | 56 | 57 | dimension: last_14_days_vs_previous_14_days { 58 | view_label: "Date Comparison" 59 | type: string 60 | sql: CASE 61 | WHEN (( ${TABLE}._PARTITIONTIME >= (TIMESTAMP_ADD(TIMESTAMP_TRUNC(CURRENT_TIMESTAMP(), DAY), INTERVAL -13 DAY))) AND ${TABLE}._PARTITIONTIME < (TIMESTAMP_ADD(TIMESTAMP_ADD(TIMESTAMP_TRUNC(CURRENT_TIMESTAMP(), DAY), INTERVAL -13 DAY), INTERVAL 14 DAY))) 62 | THEN 'Last 14 Days' 63 | 64 | WHEN (( ${TABLE}._PARTITIONTIME >= (TIMESTAMP_ADD(TIMESTAMP_TRUNC(CURRENT_TIMESTAMP(), DAY), INTERVAL -27 DAY))) AND ${TABLE}._PARTITIONTIME < (TIMESTAMP_ADD(TIMESTAMP_ADD(TIMESTAMP_TRUNC(CURRENT_TIMESTAMP(), DAY), INTERVAL -27 DAY), INTERVAL 14 DAY))) 65 | THEN 'Prior 14 Days' 66 | END 67 | ;; 68 | } 69 | 70 | 71 | dimension: last_30_days_vs_previous_30_days { 72 | view_label: "Date Comparison" 73 | type: string 74 | sql: CASE 75 | WHEN (( ${TABLE}._PARTITIONTIME >= (TIMESTAMP_ADD(TIMESTAMP_TRUNC(CURRENT_TIMESTAMP(), DAY), INTERVAL -29 DAY))) AND ${TABLE}._PARTITIONTIME < (TIMESTAMP_ADD(TIMESTAMP_ADD(TIMESTAMP_TRUNC(CURRENT_TIMESTAMP(), DAY), INTERVAL -29 DAY), INTERVAL 30 DAY))) 76 | THEN 'Last 30 Days' 77 | 78 | WHEN (( ${TABLE}._PARTITIONTIME >= (TIMESTAMP_ADD(TIMESTAMP_TRUNC(CURRENT_TIMESTAMP(), DAY), INTERVAL -59 DAY))) AND ${TABLE}._PARTITIONTIME < (TIMESTAMP_ADD(TIMESTAMP_ADD(TIMESTAMP_TRUNC(CURRENT_TIMESTAMP(), DAY), INTERVAL -59 DAY), INTERVAL 30 DAY))) 79 | THEN 'Prior 30 Days' 80 | END 81 | ;; 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Campaign Manager 360 Block 2 | 3 |
4 | 5 | ### Why use the Looker Campaign Manager 360 Block? 6 | **(1) Rapid Time To Value** - Gain insights from your Campaign Manager 360 (CM 360) data in minutes, not weeks. The CM 360 Block includes pre-built dashboards and content focusing on the ad management system for advertisers and agencies, with analysis around campaign performance, reach and impressions. 7 | 8 | **(2) Centralized Place for Analysis** - No CM 360 access required to do self-service reporting. Plus, you can combine your CM 360 data with other data in your warehouse (e.g. Bitbucket or Github commits) for end-to-end analysis. 9 | 10 | 11 | **(3) Enterprise Data Platform** - Your marketing team can easily build their own dashboards, and any user is equipped to ask and answer their own questions, save and share their own reports. Additionally, you can take advantage of Looker’s advanced scheduling functionality to get Alerts whenever workflows are disrupted. Using our Data Health Check dashboard within the block you can monitor redacted User IDs within CM 360. 12 | 13 | **(4) Take Action on Your Data Quickly** - Analysts can jump into the CM 360 dashboards and clearly see performance trends by toggling between different performance KPIs and viewing attribute breakdowns. From the dashboard, directly link to the specific campaign in the CM 360 console. 14 | 15 |
16 | 17 | ### Campaign Manager 360 Data Structure and Schema 18 | 19 | This block version is based off of Data Transfer v2.0. Please note that fields for "Landing Page URL ID", "Impression ID" and "Referrer URL" are not included in this block. These fields can be added into the config files if needed. 20 | 21 | CM 360 data is exported through [Transfer Services](https://cloud.google.com/bigquery-transfer/docs/doubleclick-campaign-transfer) in the format of three flat tables (a single file for impressions, clicks, and activities). All Data Transfer Files are stored as comma separated values (CSV). 22 | 23 | Filenames are a combination of dcm ID (like account, or floodlight), data transfer type (impression, click, activity, or rich_media), the date and hour of the processed file (YYYYMMDDHH), the day the report was generated (YYYYMMDD), the time the report was generated (HHMMSS), and the execution ID of the report separated by underscores. A more detailed description of the Data Transfer customisation and fields can be found [here](https://developers.google.com/doubleclick-advertisers/dtv2/reference/file-format). 24 | 25 | It is strongly recommended that you load all match tables into your warehouse to allow your business users to gain a deeper understanding into the naming conventions of your campaigns, activities, ads, advertisers, assets, and browsers. More information on all Data Transfer match tables can also be found [here](https://developers.google.com/doubleclick-advertisers/dtv2/reference/match-tables). 26 | 27 |
28 | 29 | ### Customizations 30 | 31 | - This block uses refinements for customization. For more information on using refinements to customize marketplace blocks, please see [this link](https://docs.looker.com/data-modeling/marketplace/customize-blocks#marketplace_blocks_that_use_refinements). 32 | - Refinements can be used to add new content or modify existing content on views and explores without the need to copy individual LookML elements into a new project. 33 | - Within the ```(2) Top Performers & Breakdowns``` dashboard there are three breakdown tiles that are configurable. It is recommended to import this dashboard and edit these tiles to create custom classifications based on placement name or campaign tactic. Once configured, you can drill into these metrics to get an additional level of granularity into underlying factors. 34 | 35 |
36 | -------------------------------------------------------------------------------- /views/activity.view.lkml: -------------------------------------------------------------------------------- 1 | include: "date_comparison.view" 2 | 3 | view: activity { 4 | sql_table_name: `@{PROJECT_NAME}.@{DATASET_NAME}.p_activity_@{CAMPAIGN_MANAGER_ID}` ;; 5 | extends: [date_comparison] 6 | 7 | dimension_group: activity { 8 | type: time 9 | timeframes: [raw, date, week, day_of_week, month, month_name, quarter, year] 10 | sql: ${TABLE}._PARTITIONTIME ;; 11 | } 12 | 13 | dimension: pk { 14 | primary_key: yes 15 | type: string 16 | sql: concat(${activity_id}, ${ad_id}, ${advertiser_id}, ${user_id}, cast(${TABLE}.Event_Time as string), ${event_type}, ${rendering_id}) ;; 17 | } 18 | 19 | measure: count_activities { 20 | type: count_distinct 21 | sql: ${pk} ;; 22 | } 23 | 24 | dimension: activity_id { 25 | type: string 26 | sql: ${TABLE}.Activity_ID ;; 27 | } 28 | 29 | dimension: ad_id { 30 | type: string 31 | sql: ${TABLE}.Ad_ID ;; 32 | } 33 | 34 | dimension: advertiser_id { 35 | type: string 36 | sql: ${TABLE}.Advertiser_ID ;; 37 | } 38 | 39 | dimension: browser_platform_id { 40 | type: string 41 | sql: ${TABLE}.Browser_Platform_ID ;; 42 | } 43 | 44 | dimension: browser_platform_version { 45 | type: string 46 | sql: ${TABLE}.Browser_Platform_Version ;; 47 | } 48 | 49 | dimension: campaign_id { 50 | type: string 51 | sql: ${TABLE}.Campaign_ID ;; 52 | } 53 | 54 | dimension: conversion_id { 55 | type: string 56 | sql: ${TABLE}.Conversion_ID ;; 57 | } 58 | 59 | dimension: country_code { 60 | type: string 61 | sql: ${TABLE}.Country_Code ;; 62 | } 63 | 64 | dimension: creative_version { 65 | type: number 66 | sql: ${TABLE}.Creative_Version ;; 67 | } 68 | 69 | dimension: event_sub_type { 70 | type: string 71 | sql: ${TABLE}.Event_Sub_Type ;; 72 | } 73 | 74 | dimension_group: event { 75 | type: time 76 | datatype: epoch 77 | sql: CAST(${TABLE}.Event_Time/1000000 as INT64) ;; 78 | } 79 | 80 | dimension: event_type { 81 | type: string 82 | sql: ${TABLE}.Event_Type ;; 83 | } 84 | 85 | dimension: floodlight_configuration { 86 | type: string 87 | sql: ${TABLE}.Floodlight_Configuration ;; 88 | } 89 | 90 | dimension_group: interaction { 91 | type: time 92 | datatype: epoch 93 | sql: INTEGER(${TABLE}.Interaction_Time)/1000000 ;; 94 | } 95 | 96 | dimension: operating_system_id { 97 | type: string 98 | sql: ${TABLE}.Operating_System_ID ;; 99 | } 100 | 101 | dimension: ord_value { 102 | type: string 103 | sql: ${TABLE}.ORD_Value ;; 104 | } 105 | 106 | dimension: other_data { 107 | type: string 108 | sql: ${TABLE}.Other_Data ;; 109 | } 110 | 111 | dimension: product_purchased { 112 | type: string 113 | sql: TRIM(REGEXP_EXTRACT(${other_data}, r"u4=(.+?);")) ;; 114 | } 115 | 116 | dimension: partner1_id { 117 | type: string 118 | sql: ${TABLE}.Partner1_ID ;; 119 | } 120 | 121 | dimension: partner2_id { 122 | type: string 123 | sql: ${TABLE}.Partner2_ID ;; 124 | } 125 | 126 | dimension: placement_id { 127 | type: string 128 | sql: ${TABLE}.Placement_ID ;; 129 | } 130 | 131 | dimension: rendering_id { 132 | type: string 133 | sql: ${TABLE}.Rendering_ID ;; 134 | } 135 | 136 | dimension: segment_value_1 { 137 | type: string 138 | sql: ${TABLE}.Segment_Value_1 ;; 139 | } 140 | 141 | dimension: site_id_dcm { 142 | type: string 143 | sql: ${TABLE}.Site_ID_DCM ;; 144 | } 145 | 146 | dimension: state_region { 147 | type: string 148 | sql: ${TABLE}.State_Region ;; 149 | } 150 | 151 | dimension: tran_value { 152 | type: string 153 | sql: ${TABLE}.TRAN_Value ;; 154 | } 155 | 156 | dimension: u_value { 157 | type: string 158 | sql: ${TABLE}.U_Value ;; 159 | } 160 | 161 | dimension: user_id { 162 | type: string 163 | sql: ${TABLE}.User_ID ;; 164 | } 165 | 166 | 167 | ### Measures 168 | 169 | measure: count { 170 | type: count 171 | drill_fields: [match_table_campaigns.campaign_name, count] 172 | value_format:"[<1000]0.00;[<1000000]0.00,\" K\";0.00,,\" M\"" 173 | } 174 | 175 | measure: distinct_users { 176 | type: count_distinct 177 | sql: ${user_id} ;; 178 | value_format:"[<1000]0.00;[<1000000]0.00,\" K\";0.00,,\" M\"" 179 | } 180 | 181 | measure: total_conversions { 182 | type: sum 183 | sql: ${TABLE}.Total_Conversions ;; 184 | value_format:"[<1000]0.00;[<1000000]0.00,\" K\";0.00,,\" M\"" 185 | } 186 | 187 | measure: total_revenue { 188 | type: sum 189 | sql: ${TABLE}.Total_Revenue ;; 190 | value_format:"[<1000]0.00;[<1000000]0.00,\" K\";0.00,,\" M\"" 191 | } 192 | 193 | } 194 | -------------------------------------------------------------------------------- /views/impression.view.lkml: -------------------------------------------------------------------------------- 1 | include: "date_comparison.view.lkml" 2 | 3 | view: impression { 4 | sql_table_name: `@{PROJECT_NAME}.@{DATASET_NAME}.p_impression_@{CAMPAIGN_MANAGER_ID}` ;; 5 | extends: [date_comparison] 6 | 7 | dimension_group: impression { 8 | type: time 9 | timeframes: [raw, date, week, day_of_week, month, month_name, quarter, year] 10 | sql: ${TABLE}._PARTITIONTIME ;; 11 | } 12 | 13 | measure: active_view_eligible_impressions { 14 | type: sum 15 | sql: ${TABLE}.Active_View_Eligible_Impressions ;; 16 | } 17 | 18 | dimension: pk { 19 | type: string 20 | sql: concat(${ad_id}, ${advertiser_id}, ${user_id}, cast(${TABLE}.Event_Time as string), ${event_type}, ${rendering_id}) ;; 21 | hidden: yes 22 | primary_key: yes 23 | } 24 | 25 | #match_table_ads 26 | dimension: ad_id { 27 | type: string 28 | view_label: "Ads" 29 | sql: ${TABLE}.Ad_ID ;; 30 | } 31 | 32 | #match_table_advertisers 33 | dimension: advertiser_id { 34 | view_label: "Advertisers" 35 | type: string 36 | sql: ${TABLE}.Advertiser_ID ;; 37 | link: { 38 | label: "View in Campaign Manager" 39 | icon_url: "https://seeklogo.com/images/G/google-campaign-manager-logo-03026740FA-seeklogo.com.png" 40 | url: "https://www.google.com/dfa/trafficking/#/accounts/@{CAMPAIGN_MANAGER_ID}/advertisers/{{value}}/explorer?" 41 | } 42 | } 43 | 44 | dimension: browser_platform_id { 45 | type: string 46 | sql: ${TABLE}.Browser_Platform_ID ;; 47 | } 48 | 49 | dimension: browser_platform_version { 50 | type: string 51 | sql: ${TABLE}.Browser_Platform_Version ;; 52 | } 53 | 54 | #match_table_campaigns 55 | dimension: campaign_id { 56 | view_label: "Campaigns" 57 | type: string 58 | sql: ${TABLE}.Campaign_ID ;; 59 | link: { 60 | label: "Campaign Performance Dashboard" 61 | url: "/dashboards-next/campaign_manager::3_campaign_overview?Campaign%20ID={{value}}" 62 | icon_url: "http://www.looker.com/favicon.ico" 63 | } 64 | link: { 65 | label: "View in Campaign Manager" 66 | icon_url: "https://seeklogo.com/images/G/google-campaign-manager-logo-03026740FA-seeklogo.com.png" 67 | url: "https://www.google.com/dfa/trafficking/#/accounts/@{CAMPAIGN_MANAGER_ID}/campaigns/{{value}}/explorer?" 68 | } 69 | } 70 | 71 | #match_table_cities 72 | dimension: city_id { 73 | type: string 74 | sql: ${TABLE}.City_ID ;; 75 | } 76 | 77 | dimension: country_code { 78 | map_layer_name: countries 79 | sql: CASE WHEN ${TABLE}.Country_Code = 'UK' THEN 'GB' ELSE ${TABLE}.Country_Code END ;; 80 | drill_fields: [state_region,zip_postal_code] 81 | } 82 | 83 | dimension: creative_version { 84 | type: number 85 | sql: ${TABLE}.Creative_Version ;; 86 | } 87 | 88 | dimension: designated_market_area_dma_id { 89 | type: string 90 | sql: ${TABLE}.Designated_Market_Area_DMA_ID ;; 91 | } 92 | 93 | dimension: event_sub_type { 94 | type: string 95 | sql: ${TABLE}.Event_Sub_Type ;; 96 | } 97 | 98 | dimension_group: event { 99 | type: time 100 | timeframes: [raw, date, hour,week, day_of_week, month, month_name, quarter, year] 101 | datatype: epoch 102 | sql: CAST(${TABLE}.Event_Time/1000000 as INT64) ;; 103 | } 104 | 105 | dimension: event_type { 106 | type: string 107 | sql: ${TABLE}.Event_Type ;; 108 | } 109 | 110 | dimension: operating_system_id { 111 | type: string 112 | sql: ${TABLE}.Operating_System_ID ;; 113 | } 114 | 115 | dimension: operating_system_id_key { 116 | type: number 117 | sql: IF(CAST(${operating_system_id} AS INT64) > 22, 118 | CAST(${operating_system_id} AS INT64), 119 | POWER(2,CAST(${operating_system_id} AS INT64))) ;; 120 | 121 | } 122 | 123 | dimension: partner1_id { 124 | type: string 125 | sql: ${TABLE}.Partner1_ID ;; 126 | } 127 | 128 | dimension: partner2_id { 129 | type: string 130 | sql: ${TABLE}.Partner2_ID ;; 131 | } 132 | 133 | dimension: placement_id { 134 | type: string 135 | sql: ${TABLE}.Placement_ID ;; 136 | } 137 | 138 | dimension: rendering_id { 139 | type: string 140 | sql: ${TABLE}.Rendering_ID ;; 141 | } 142 | 143 | dimension: site_id_dcm { 144 | type: string 145 | sql: ${TABLE}.Site_ID_DCM ;; 146 | } 147 | 148 | dimension: state_region { 149 | map_layer_name: us_states 150 | sql: ${TABLE}.State_Region ;; 151 | drill_fields: [zip_postal_code] 152 | } 153 | 154 | dimension: u_value { 155 | type: string 156 | sql: ${TABLE}.U_Value ;; 157 | } 158 | 159 | dimension: user_id { 160 | type: string 161 | sql: ${TABLE}.User_ID ;; 162 | } 163 | 164 | dimension: zip_postal_code { 165 | type: zipcode 166 | sql: ${TABLE}.ZIP_Postal_Code ;; 167 | map_layer_name: us_zipcode_tabulation_areas 168 | } 169 | 170 | 171 | ### MEASURES 172 | 173 | measure: count_impressions { 174 | type: count_distinct 175 | sql: ${pk} ;; 176 | drill_fields: [campaign_id, site_id_dcm] 177 | value_format:"[<1000]0.00;[<1000000]0.00,\" K\";0.00,,\" M\"" 178 | } 179 | 180 | measure: active_view_measurable_impressions { 181 | type: sum 182 | sql: ${TABLE}.Active_View_Measurable_Impressions ;; 183 | value_format:"[<1000]0.00;[<1000000]0.00,\" K\";0.00,,\" M\"" 184 | } 185 | 186 | measure: active_view_viewable_impressions { 187 | type: sum 188 | sql: ${TABLE}.Active_View_Viewable_Impressions ;; 189 | value_format:"[<1000]0.00;[<1000000]0.00,\" K\";0.00,,\" M\"" 190 | } 191 | 192 | measure: count { 193 | type: count 194 | drill_fields: [match_table_campaigns.campaign_name, site_id_dcm, impressions_per_user] 195 | value_format:"[<1000]0.00;[<1000000]0.00,\" K\";0.00,,\" M\"" 196 | } 197 | 198 | measure: distinct_users { 199 | label: "Reach Count" 200 | type: count_distinct 201 | sql: ${user_id} ;; 202 | drill_fields: [match_table_campaigns.campaign_name, site_id_dcm, impressions_per_user] 203 | value_format:"[<1000]0.00;[<1000000]0.00,\" K\";0.00,,\" M\"" 204 | } 205 | 206 | measure: reach_percentage { 207 | type: number 208 | sql: 1.0*${distinct_users}/NULLIF(${count},0) ;; 209 | value_format_name: percent_2 210 | } 211 | 212 | measure: average_frequency { 213 | type: number 214 | sql: 1.0*${count}/${distinct_users} ;; 215 | value_format_name: decimal_2 216 | } 217 | 218 | measure: campaign_count { 219 | type: count_distinct 220 | sql: ${campaign_id} ;; 221 | drill_fields: [match_table_campaigns.campaign_name, count, distinct_users, impressions_per_user] 222 | value_format:"[<1000]0.00;[<1000000]0.00,\" K\";0.00,,\" M\"" 223 | } 224 | 225 | measure: impressions_per_user { 226 | type: number 227 | sql: ${count_impressions}/NULLIF(${distinct_users},0) ;; 228 | value_format_name: decimal_1 229 | drill_fields: [match_table_campaigns.campaign_name, site_id_dcm] 230 | } 231 | 232 | measure: ad_count { 233 | type: count_distinct 234 | sql: ${ad_id} ;; 235 | drill_fields: [match_table_ads.ad_name, match_table_ads.ad_type, count, distinct_users] 236 | value_format:"[<1000]0.00;[<1000000]0.00,\" K\";0.00,,\" M\"" 237 | } 238 | 239 | } 240 | -------------------------------------------------------------------------------- /dashboards/4_data_health_check.dashboard.lookml: -------------------------------------------------------------------------------- 1 | - dashboard: 4_data_health_check 2 | title: "(4) Data Health Check" 3 | layout: newspaper 4 | preferred_viewer: dashboards-next 5 | 6 | elements: 7 | - name: 8 | User Redactions Health Check 9 | type: text 10 | title_text: User Redactions 12 | Health Check 13 | subtitle_text: What percent of my DCM Data Transfer files have redacted User IDs? 14 | body_text: "
Recommended Action Create conditional alerts to keep\ 15 | \ an eye on high redaction rates \U0001f6ce️.
Consider calculating redaction\ 16 | \ rates by campaign to help understand what campaigns would be omitted in analyses\ 17 | \ that require User ID.
" 18 | row: 0 19 | col: 0 20 | width: 24 21 | height: 4 22 | - title: Total User IDs 23 | name: Total User IDs 24 | model: campaign_manager_marketplace_v2 25 | explore: data_health_check 26 | type: single_value 27 | fields: [redaction_combined.total_count] 28 | filters: {} 29 | limit: 500 30 | query_timezone: America/Los_Angeles 31 | custom_color_enabled: true 32 | show_single_value_title: true 33 | show_comparison: false 34 | comparison_type: value 35 | comparison_reverse_colors: false 36 | show_comparison_label: true 37 | enable_conditional_formatting: false 38 | conditional_formatting_include_totals: false 39 | conditional_formatting_include_nulls: false 40 | series_types: {} 41 | defaults_version: 1 42 | listen: 43 | Date Range: redaction_combined.partition 44 | File Type: redaction_combined.file_type 45 | row: 4 46 | col: 0 47 | width: 6 48 | height: 2 49 | - title: Total Filled 50 | name: Total Filled 51 | model: campaign_manager_marketplace_v2 52 | explore: data_health_check 53 | type: single_value 54 | fields: [redaction_combined.total_filled] 55 | filters: {} 56 | limit: 500 57 | query_timezone: America/Los_Angeles 58 | custom_color_enabled: true 59 | show_single_value_title: true 60 | show_comparison: false 61 | comparison_type: value 62 | comparison_reverse_colors: false 63 | show_comparison_label: true 64 | enable_conditional_formatting: false 65 | conditional_formatting_include_totals: false 66 | conditional_formatting_include_nulls: false 67 | series_types: {} 68 | defaults_version: 1 69 | listen: 70 | Date Range: redaction_combined.partition 71 | File Type: redaction_combined.file_type 72 | row: 6 73 | col: 0 74 | width: 6 75 | height: 2 76 | - title: Total Redacted 77 | name: Total Redacted 78 | model: campaign_manager_marketplace_v2 79 | explore: data_health_check 80 | type: single_value 81 | fields: [redaction_combined.total_redacted] 82 | filters: {} 83 | limit: 500 84 | query_timezone: America/Los_Angeles 85 | custom_color_enabled: true 86 | show_single_value_title: true 87 | show_comparison: false 88 | comparison_type: value 89 | comparison_reverse_colors: false 90 | show_comparison_label: true 91 | enable_conditional_formatting: false 92 | conditional_formatting_include_totals: false 93 | conditional_formatting_include_nulls: false 94 | series_types: {} 95 | defaults_version: 1 96 | listen: 97 | Date Range: redaction_combined.partition 98 | File Type: redaction_combined.file_type 99 | row: 8 100 | col: 0 101 | width: 6 102 | height: 2 103 | - title: Redaction Rate 104 | name: Redaction Rate 105 | model: campaign_manager_marketplace_v2 106 | explore: data_health_check 107 | type: single_value 108 | fields: [redaction_combined.redaction_rate] 109 | filters: {} 110 | limit: 500 111 | query_timezone: America/Los_Angeles 112 | custom_color_enabled: true 113 | show_single_value_title: true 114 | show_comparison: false 115 | comparison_type: value 116 | comparison_reverse_colors: false 117 | show_comparison_label: true 118 | enable_conditional_formatting: true 119 | conditional_formatting_include_totals: false 120 | conditional_formatting_include_nulls: false 121 | custom_color: "#B32F37" 122 | conditional_formatting: [{type: greater than, value: 0, background_color: "#fce9ec", 123 | font_color: "#B32F37", color_application: {collection_id: b43731d5-dc87-4a8e-b807-635bef3948e7, 124 | palette_id: 85de97da-2ded-4dec-9dbd-e6a7d36d5825}, bold: false, italic: false, 125 | strikethrough: false, fields: !!null ''}] 126 | series_types: {} 127 | defaults_version: 1 128 | listen: 129 | Date Range: redaction_combined.partition 130 | File Type: redaction_combined.file_type 131 | row: 4 132 | col: 6 133 | width: 9 134 | height: 6 135 | - title: Redaction By File Type 136 | name: Redaction By File Type 137 | model: campaign_manager_marketplace_v2 138 | explore: data_health_check 139 | type: looker_pie 140 | fields: [redaction_combined.redaction_rate, redaction_combined.file_type] 141 | filters: {} 142 | sorts: [redaction_combined.redaction_rate desc] 143 | limit: 500 144 | column_limit: 50 145 | value_labels: legend 146 | label_type: labPer 147 | inner_radius: 50 148 | color_application: 149 | collection_id: b43731d5-dc87-4a8e-b807-635bef3948e7 150 | palette_id: ccba75a3-58c7-4b9c-a931-4ffc59e79cba 151 | options: 152 | steps: 5 153 | series_colors: 154 | Activity: "#c2333a" 155 | Impression: "#db6e73" 156 | Click: "#e8a5ad" 157 | custom_color_enabled: true 158 | show_single_value_title: true 159 | show_comparison: false 160 | comparison_type: value 161 | comparison_reverse_colors: false 162 | show_comparison_label: true 163 | enable_conditional_formatting: false 164 | conditional_formatting_include_totals: false 165 | conditional_formatting_include_nulls: false 166 | defaults_version: 1 167 | series_types: {} 168 | x_axis_gridlines: false 169 | y_axis_gridlines: true 170 | show_view_names: false 171 | show_y_axis_labels: true 172 | show_y_axis_ticks: true 173 | y_axis_tick_density: default 174 | y_axis_tick_density_custom: 5 175 | show_x_axis_label: true 176 | show_x_axis_ticks: true 177 | y_axis_scale_mode: linear 178 | x_axis_reversed: false 179 | y_axis_reversed: false 180 | plot_size_by_field: false 181 | trellis: '' 182 | stacking: '' 183 | limit_displayed_rows: false 184 | legend_position: center 185 | point_style: none 186 | show_value_labels: false 187 | label_density: 25 188 | x_axis_scale: auto 189 | y_axis_combined: true 190 | ordering: none 191 | show_null_labels: false 192 | show_totals_labels: false 193 | show_silhouette: false 194 | totals_color: "#808080" 195 | listen: 196 | Date Range: redaction_combined.partition 197 | File Type: redaction_combined.file_type 198 | row: 4 199 | col: 15 200 | width: 9 201 | height: 6 202 | filters: 203 | - name: Date Range 204 | title: Date Range 205 | type: field_filter 206 | default_value: 7 days 207 | allow_multiple_values: true 208 | required: false 209 | model: campaign_manager_marketplace_v2 210 | explore: data_health_check 211 | listens_to_filters: [] 212 | field: redaction_combined.partition 213 | - name: File Type 214 | title: File Type 215 | type: field_filter 216 | default_value: '' 217 | allow_multiple_values: true 218 | required: false 219 | ui_config: 220 | type: advanced 221 | display: popover 222 | options: [] 223 | model: campaign_manager_marketplace_v2 224 | explore: data_health_check 225 | listens_to_filters: [] 226 | field: redaction_combined.file_type -------------------------------------------------------------------------------- /views/derived_tables/impression_funnel.view.lkml: -------------------------------------------------------------------------------- 1 | view: impression_funnel { 2 | derived_table: { 3 | datagroup_trigger: new_day 4 | sql: select user_impression_metrics.* 5 | , first_click 6 | , latest_click 7 | , count_clicks 8 | , first_activity 9 | , latest_activity 10 | , count_conversions 11 | , count_postview_conversions 12 | , count_postclick_conversions 13 | , revenue 14 | from 15 | (select user_id 16 | , campaign_id 17 | , ad_id 18 | , advertiser_id 19 | , min(zip_postal_code) as zip_code 20 | , min(state_region) as state_region 21 | , min(country_code) as country_code 22 | , min(event_time) as first_impression 23 | , max(event_time) as latest_impression 24 | , count(distinct site_id_dcm) as site_count 25 | , count(*) as count_impressions 26 | from ${impression.SQL_TABLE_NAME} 27 | where user_id <> '' and user_id is not null 28 | 29 | and _PARTITIONTIME > TIMESTAMP(DATE_ADD(CURRENT_DATE, INTERVAL -60 DAY)) 30 | 31 | group by 1,2,3,4) as user_impression_metrics 32 | 33 | left join 34 | 35 | (select user_id 36 | , campaign_id 37 | , ad_id 38 | , advertiser_id 39 | , min(event_time) as first_click 40 | , max(event_time) as latest_click 41 | , count(*) as count_clicks 42 | from ${click.SQL_TABLE_NAME} 43 | where user_id <> '' and user_id is not null 44 | 45 | and _PARTITIONTIME > TIMESTAMP(DATE_ADD(CURRENT_DATE, INTERVAL -60 DAY)) 46 | 47 | group by 1,2,3,4) as user_click_metrics 48 | 49 | on user_impression_metrics.user_id = user_click_metrics.user_id 50 | and user_impression_metrics.campaign_id = user_click_metrics.campaign_id 51 | and user_impression_metrics.ad_id = user_click_metrics.ad_id 52 | and user_impression_metrics.advertiser_id = user_click_metrics.advertiser_id 53 | 54 | 55 | left join 56 | 57 | (select user_id 58 | , campaign_id 59 | , ad_id 60 | , advertiser_id 61 | , min(event_time) as first_activity 62 | , max(event_time) as latest_activity 63 | , count(*) as count_conversions 64 | , sum(case when event_sub_type = 'POSTVIEW' THEN 1 ELSE 0 END) as count_postview_conversions 65 | , sum(case when event_sub_type = 'POSTCLICK' THEN 1 ELSE 0 END) as count_postclick_conversions 66 | , sum(total_revenue) as revenue 67 | from ${activity.SQL_TABLE_NAME} 68 | where user_id <> '' and user_id is not null 69 | and event_type = 'CONVERSION' 70 | 71 | and _PARTITIONTIME > TIMESTAMP(DATE_ADD(CURRENT_DATE, INTERVAL -60 DAY)) 72 | 73 | group by 1,2,3,4) as user_activity_metrics 74 | on user_impression_metrics.user_id = user_activity_metrics.user_id 75 | and user_impression_metrics.campaign_id = user_activity_metrics.campaign_id 76 | and user_impression_metrics.ad_id = user_activity_metrics.ad_id 77 | and user_impression_metrics.advertiser_id = user_activity_metrics.advertiser_id 78 | ;; 79 | } 80 | 81 | dimension: zip_code { 82 | type: zipcode 83 | sql: ${TABLE}.zip_code ;; 84 | } 85 | 86 | dimension: state_region { 87 | map_layer_name: us_states 88 | sql: ${TABLE}.state_region ;; 89 | } 90 | 91 | dimension: country_code { 92 | map_layer_name: countries 93 | sql: ${TABLE}.country_code ;; 94 | } 95 | 96 | dimension: user_id { 97 | type: string 98 | sql: ${TABLE}.user_id ;; 99 | view_label: "Users" 100 | } 101 | 102 | dimension: campaign_id { 103 | type: string 104 | sql: ${TABLE}.campaign_id ;; 105 | view_label: "Campaigns" 106 | } 107 | 108 | dimension: ad_id { 109 | type: string 110 | sql: ${TABLE}.ad_id ;; 111 | view_label: "Ads" 112 | } 113 | 114 | dimension: advertiser_id { 115 | type: string 116 | sql: ${TABLE}.advertiser_id ;; 117 | view_label: "Advertisers" 118 | } 119 | 120 | dimension: creative_version { 121 | type: number 122 | sql: ${TABLE}.creative_version ;; 123 | view_label: "Ads" 124 | } 125 | 126 | dimension_group: first_ad_impression { 127 | type: time 128 | datatype: epoch 129 | sql: cast(${TABLE}.first_impression/1000000 as int64) ;; 130 | timeframes: [raw ,date, week, month, year] 131 | view_label: "Users" 132 | } 133 | 134 | dimension_group: latest_ad_impression { 135 | type: time 136 | datatype: epoch 137 | sql: cast(${TABLE}.latest_impression/1000000 as int64) ;; 138 | timeframes: [date, week, month, year] 139 | view_label: "Users" 140 | } 141 | 142 | dimension: site_count { 143 | type: number 144 | hidden: yes 145 | sql: ${TABLE}.site_count ;; 146 | } 147 | 148 | dimension: count_impressions { 149 | type: number 150 | hidden: yes 151 | sql: ${TABLE}.count_impressions ;; 152 | view_label: "Impressions" 153 | } 154 | 155 | dimension_group: first_ad_click { 156 | type: time 157 | datatype: epoch 158 | sql: cast(${TABLE}.first_click/1000000 as int64) ;; 159 | timeframes: [date, week, month, year] 160 | view_label: "Users" 161 | } 162 | 163 | dimension_group: latest_ad_click { 164 | type: time 165 | datatype: epoch 166 | sql: cast(${TABLE}.latest_click/1000000 as int64) ;; 167 | timeframes: [date, week, month, year] 168 | view_label: "Users" 169 | } 170 | 171 | dimension: count_clicks { 172 | type: number 173 | hidden: yes 174 | sql: ${TABLE}.count_clicks ;; 175 | view_label: "Clicks" 176 | } 177 | 178 | dimension_group: first_ad_activity { 179 | type: time 180 | datatype: epoch 181 | view_label: "Users" 182 | sql: cast(${TABLE}.first_activity/1000000 as int64) ;; 183 | timeframes: [date, week, month, year] 184 | } 185 | 186 | dimension_group: latest_ad_activity { 187 | type: time 188 | datatype: epoch 189 | view_label: "Users" 190 | sql: cast(${TABLE}.latest_activity/1000000 as int64) ;; 191 | timeframes: [date, week, month, year] 192 | } 193 | 194 | dimension: time_to_conversion { 195 | type: number 196 | sql: (${TABLE}.first_activity - ${TABLE}.first_impression)/1000000 ;; 197 | } 198 | 199 | dimension: count_conversions { 200 | type: number 201 | sql: ${TABLE}.count_conversions ;; 202 | } 203 | 204 | dimension: count_postview_conversions { 205 | type: number 206 | sql: ${TABLE}.count_postview_conversions ;; 207 | } 208 | 209 | dimension: count_postclick_conversions { 210 | type: number 211 | sql: ${TABLE}.count_postclick_conversions ;; 212 | } 213 | 214 | dimension: revenue { 215 | type: number 216 | hidden: yes 217 | sql: ${TABLE}.revenue ;; 218 | } 219 | 220 | measure: total_impressions { 221 | type: sum 222 | sql: ${count_impressions} ;; 223 | value_format:"[<1000]0.00;[<1000000]0.00,\" K\";0.00,,\" M\"" 224 | } 225 | 226 | measure: total_clicks { 227 | type: sum 228 | sql: ${count_clicks} ;; 229 | value_format:"[<1000]0.00;[<1000000]0.00,\" K\";0.00,,\" M\"" 230 | } 231 | 232 | measure: total_conversions { 233 | type: sum 234 | sql: ${count_conversions} ;; 235 | value_format:"[<1000]0.00;[<1000000]0.00,\" K\";0.00,,\" M\"" 236 | } 237 | 238 | measure: total_post_view_conversions { 239 | type: sum 240 | sql: ${count_postview_conversions} ;; 241 | value_format:"[<1000]0.00;[<1000000]0.00,\" K\";0.00,,\" M\"" 242 | } 243 | 244 | measure: total_post_click_conversions { 245 | type: sum 246 | sql: ${count_postclick_conversions} ;; 247 | value_format:"[<1000]0.00;[<1000000]0.00,\" K\";0.00,,\" M\"" 248 | } 249 | 250 | measure: count_users { 251 | type: count_distinct 252 | sql: ${user_id} ;; 253 | value_format:"[<1000]0.00;[<1000000]0.00,\" K\";0.00,,\" M\"" 254 | } 255 | 256 | measure: count_users_who_clicked { 257 | type: count_distinct 258 | sql: ${user_id} ;; 259 | value_format:"[<1000]0.00;[<1000000]0.00,\" K\";0.00,,\" M\"" 260 | 261 | filters: { 262 | field: first_ad_click_date 263 | value: "-NULL" 264 | } 265 | } 266 | 267 | measure: count_users_converted { 268 | type: count_distinct 269 | sql: ${user_id} ;; 270 | value_format:"[<1000]0.00;[<1000000]0.00,\" K\";0.00,,\" M\"" 271 | 272 | filters: { 273 | field: first_ad_activity_date 274 | value: "-NULL" 275 | } 276 | } 277 | 278 | measure: action_rate { 279 | type: number 280 | sql: ${total_conversions}/NULLIF(${total_impressions},0) ;; 281 | value_format_name: decimal_4 282 | description: "Total Conversions/Total Impressions" 283 | } 284 | 285 | measure: action_rate_x_1000 { 286 | type: number 287 | sql: 1000*${action_rate} ;; 288 | value_format_name: decimal_2 289 | description: "1000 * Total Conversions/Total Impressions" 290 | } 291 | 292 | measure: total_revenue { 293 | type: sum 294 | sql: ${revenue} ;; 295 | } 296 | 297 | measure: conversion_rate { 298 | type: number 299 | sql: ${total_post_click_conversions}/NULLIF(${total_clicks},0) ;; 300 | value_format_name: percent_2 301 | description: "Total Post Click Conversions/Total Clicks" 302 | } 303 | 304 | measure: click_through_rate { 305 | type: number 306 | sql: ${total_clicks}/NULLIF(${total_impressions},0) ;; 307 | value_format_name: percent_2 308 | description: "Total Clicks/Total Impressions" 309 | } 310 | 311 | measure: impressions_per_user { 312 | type: number 313 | sql: ${total_impressions}/NULLIF(${count_users},0) ;; 314 | value_format_name: decimal_1 315 | } 316 | 317 | set: detail { 318 | fields: [user_id, campaign_id, ad_id, advertiser_id, creative_version, site_count, count_impressions, count_clicks, count_conversions, total_conversions, revenue] 319 | } 320 | } 321 | -------------------------------------------------------------------------------- /dashboards/2_top_performers__breakdowns.dashboard.lookml: -------------------------------------------------------------------------------- 1 | - dashboard: 2_top_performers__breakdowns 2 | title: "(2) Top Performers & Breakdowns" 3 | layout: newspaper 4 | preferred_viewer: dashboards-next 5 | 6 | elements: 7 | - title: Top 10 Campaigns 8 | name: Top 10 Campaigns 9 | model: campaign_manager_marketplace_v2 10 | explore: impression 11 | type: looker_bar 12 | fields: [impression.distinct_users, impression.count, impression.campaign_id] 13 | filters: 14 | impression.selected_comparison: "%Last%" 15 | sorts: [impression.distinct_users desc] 16 | limit: 10 17 | column_limit: 50 18 | query_timezone: America/Los_Angeles 19 | x_axis_gridlines: false 20 | y_axis_gridlines: true 21 | show_view_names: false 22 | show_y_axis_labels: true 23 | show_y_axis_ticks: false 24 | y_axis_tick_density: default 25 | y_axis_tick_density_custom: 5 26 | show_x_axis_label: true 27 | show_x_axis_ticks: true 28 | y_axis_scale_mode: linear 29 | x_axis_reversed: false 30 | y_axis_reversed: false 31 | plot_size_by_field: false 32 | trellis: '' 33 | stacking: '' 34 | limit_displayed_rows: false 35 | legend_position: center 36 | point_style: none 37 | show_value_labels: true 38 | label_density: 25 39 | x_axis_scale: ordinal 40 | y_axis_combined: true 41 | ordering: none 42 | show_null_labels: false 43 | show_totals_labels: false 44 | show_silhouette: false 45 | totals_color: "#808080" 46 | color_application: 47 | collection_id: google 48 | palette_id: google-categorical-0 49 | options: 50 | steps: 5 51 | colors: ["#5245ed", "#1ea8df", "#353b49", "#49cec1", "#b3a0dd", "#db7f2a", "#706080", 52 | "#a2dcf3", "#776fdf", "#e9b404", "#635189"] 53 | font_size: '8' 54 | series_types: {} 55 | series_colors: 56 | impression.count: "#4285F4" 57 | impression.distinct_users: "#34A853" 58 | show_null_points: true 59 | interpolation: linear 60 | value_labels: legend 61 | label_type: labPer 62 | map: auto 63 | map_projection: '' 64 | map_plot_mode: points 65 | heatmap_gridlines: false 66 | heatmap_opacity: 0.5 67 | show_region_field: true 68 | draw_map_labels_above_data: true 69 | map_tile_provider: positron 70 | map_position: custom 71 | map_scale_indicator: 'off' 72 | map_pannable: true 73 | map_zoomable: true 74 | map_marker_type: circle 75 | map_marker_icon_name: default 76 | map_marker_radius_mode: proportional_value 77 | map_marker_units: meters 78 | map_marker_proportional_scale_type: linear 79 | map_marker_color_mode: fixed 80 | show_legend: true 81 | quantize_map_value_colors: false 82 | quantize_colors: false 83 | map_latitude: 34.45221847282654 84 | map_longitude: 0.3515625 85 | map_zoom: 2 86 | defaults_version: 1 87 | listen: 88 | Date Range: impression.comparison_type 89 | row: 3 90 | col: 0 91 | width: 8 92 | height: 7 93 | - name: 94 | Top Performers Campaigns, Advertisers 95 | & Sites 96 | type: text 97 | title_text: Top Performers 99 | Campaigns, Advertisers & Sites 100 | subtitle_text: '' 101 | body_text: "
Recommended Action\U0001f447 Drill into Campaign IDs\ 102 | \ to get a 360 view on how that campaign is performing, or navigate directly\ 103 | \ to Campaign Manager for further analysis.
" 104 | row: 0 105 | col: 4 106 | width: 16 107 | height: 3 108 | - title: Top 10 Advertisers 109 | name: Top 10 Advertisers 110 | model: campaign_manager_marketplace_v2 111 | explore: impression 112 | type: looker_bar 113 | fields: [impression.distinct_users, impression.count, impression.advertiser_id] 114 | filters: 115 | impression.selected_comparison: "%Last%" 116 | sorts: [impression.distinct_users desc] 117 | limit: 10 118 | column_limit: 50 119 | query_timezone: America/Los_Angeles 120 | x_axis_gridlines: false 121 | y_axis_gridlines: true 122 | show_view_names: false 123 | show_y_axis_labels: true 124 | show_y_axis_ticks: false 125 | y_axis_tick_density: default 126 | y_axis_tick_density_custom: 5 127 | show_x_axis_label: true 128 | show_x_axis_ticks: true 129 | y_axis_scale_mode: linear 130 | x_axis_reversed: false 131 | y_axis_reversed: false 132 | plot_size_by_field: false 133 | trellis: '' 134 | stacking: '' 135 | limit_displayed_rows: false 136 | legend_position: center 137 | point_style: none 138 | show_value_labels: true 139 | label_density: 25 140 | x_axis_scale: ordinal 141 | y_axis_combined: true 142 | ordering: none 143 | show_null_labels: false 144 | show_totals_labels: false 145 | show_silhouette: false 146 | totals_color: "#808080" 147 | color_application: 148 | collection_id: google 149 | palette_id: google-categorical-0 150 | options: 151 | steps: 5 152 | colors: ["#5245ed", "#1ea8df", "#353b49", "#49cec1", "#b3a0dd", "#db7f2a", "#706080", 153 | "#a2dcf3", "#776fdf", "#e9b404", "#635189"] 154 | font_size: '8' 155 | series_types: {} 156 | series_colors: 157 | impression.count: "#4285F4" 158 | impression.distinct_users: "#34A853" 159 | show_null_points: true 160 | interpolation: linear 161 | value_labels: legend 162 | label_type: labPer 163 | map: auto 164 | map_projection: '' 165 | map_plot_mode: points 166 | heatmap_gridlines: false 167 | heatmap_opacity: 0.5 168 | show_region_field: true 169 | draw_map_labels_above_data: true 170 | map_tile_provider: positron 171 | map_position: custom 172 | map_scale_indicator: 'off' 173 | map_pannable: true 174 | map_zoomable: true 175 | map_marker_type: circle 176 | map_marker_icon_name: default 177 | map_marker_radius_mode: proportional_value 178 | map_marker_units: meters 179 | map_marker_proportional_scale_type: linear 180 | map_marker_color_mode: fixed 181 | show_legend: true 182 | quantize_map_value_colors: false 183 | quantize_colors: false 184 | map_latitude: 34.45221847282654 185 | map_longitude: 0.3515625 186 | map_zoom: 2 187 | defaults_version: 1 188 | listen: 189 | Date Range: impression.comparison_type 190 | row: 3 191 | col: 8 192 | width: 8 193 | height: 7 194 | - title: Top 10 Sites 195 | name: Top 10 Sites 196 | model: campaign_manager_marketplace_v2 197 | explore: impression 198 | type: looker_bar 199 | fields: [impression.distinct_users, impression.count, impression.site_id_dcm] 200 | filters: 201 | impression.selected_comparison: "%Last%" 202 | sorts: [impression.distinct_users desc] 203 | limit: 10 204 | column_limit: 50 205 | query_timezone: America/Los_Angeles 206 | x_axis_gridlines: false 207 | y_axis_gridlines: true 208 | show_view_names: false 209 | show_y_axis_labels: true 210 | show_y_axis_ticks: false 211 | y_axis_tick_density: default 212 | y_axis_tick_density_custom: 5 213 | show_x_axis_label: true 214 | show_x_axis_ticks: true 215 | y_axis_scale_mode: linear 216 | x_axis_reversed: false 217 | y_axis_reversed: false 218 | plot_size_by_field: false 219 | trellis: '' 220 | stacking: '' 221 | limit_displayed_rows: false 222 | legend_position: center 223 | point_style: none 224 | show_value_labels: true 225 | label_density: 25 226 | x_axis_scale: ordinal 227 | y_axis_combined: true 228 | ordering: none 229 | show_null_labels: false 230 | show_totals_labels: false 231 | show_silhouette: false 232 | totals_color: "#808080" 233 | color_application: 234 | collection_id: google 235 | palette_id: google-categorical-0 236 | options: 237 | steps: 5 238 | colors: ["#5245ed", "#1ea8df", "#353b49", "#49cec1", "#b3a0dd", "#db7f2a", "#706080", 239 | "#a2dcf3", "#776fdf", "#e9b404", "#635189"] 240 | font_size: '8' 241 | series_types: {} 242 | series_colors: 243 | impression.count: "#4285F4" 244 | impression.distinct_users: "#34A853" 245 | show_null_points: true 246 | interpolation: linear 247 | value_labels: legend 248 | label_type: labPer 249 | map: auto 250 | map_projection: '' 251 | map_plot_mode: points 252 | heatmap_gridlines: false 253 | heatmap_opacity: 0.5 254 | show_region_field: true 255 | draw_map_labels_above_data: true 256 | map_tile_provider: positron 257 | map_position: custom 258 | map_scale_indicator: 'off' 259 | map_pannable: true 260 | map_zoomable: true 261 | map_marker_type: circle 262 | map_marker_icon_name: default 263 | map_marker_radius_mode: proportional_value 264 | map_marker_units: meters 265 | map_marker_proportional_scale_type: linear 266 | map_marker_color_mode: fixed 267 | show_legend: true 268 | quantize_map_value_colors: false 269 | quantize_colors: false 270 | map_latitude: 34.45221847282654 271 | map_longitude: 0.3515625 272 | map_zoom: 2 273 | defaults_version: 1 274 | listen: 275 | Date Range: impression.comparison_type 276 | row: 3 277 | col: 16 278 | width: 8 279 | height: 7 280 | - name: Breakdowns 281 | type: text 282 | title_text: Breakdowns 283 | subtitle_text: '' 284 | body_text: |- 285 |
286 | Recommended Action👇 Edit the tiles below to create custom classifications based on placement name or campaign tactic.
Drill into these metrics to get an additional level of granularity into underlying factors.
287 | row: 10 288 | col: 0 289 | width: 24 290 | height: 3 291 | - title: Breakdown (A) 292 | name: Breakdown (A) 293 | model: campaign_manager_marketplace_v2 294 | explore: impression 295 | type: looker_line 296 | fields: [impression.impressions_per_user, impression.event_date, impression.distinct_users] 297 | fill_fields: [impression.event_date] 298 | filters: 299 | match_table_campaigns.campaign_name: "%P%" 300 | impression.selected_comparison: "%Last%" 301 | sorts: [impression.event_date desc] 302 | limit: 500 303 | column_limit: 50 304 | x_axis_gridlines: false 305 | y_axis_gridlines: true 306 | show_view_names: false 307 | show_y_axis_labels: true 308 | show_y_axis_ticks: true 309 | y_axis_tick_density: default 310 | y_axis_tick_density_custom: 5 311 | show_x_axis_label: true 312 | show_x_axis_ticks: true 313 | y_axis_scale_mode: linear 314 | x_axis_reversed: false 315 | y_axis_reversed: false 316 | plot_size_by_field: false 317 | trellis: '' 318 | stacking: '' 319 | limit_displayed_rows: false 320 | legend_position: center 321 | point_style: circle 322 | show_value_labels: false 323 | label_density: 25 324 | x_axis_scale: auto 325 | y_axis_combined: true 326 | show_null_points: true 327 | interpolation: monotone 328 | y_axes: [{label: '', orientation: left, series: [{axisId: impression.distinct_users, 329 | id: impression.distinct_users, name: Reach Count}], showLabels: true, 330 | showValues: true, unpinAxis: false, tickDensity: default, tickDensityCustom: 5, 331 | type: linear}, {label: !!null '', orientation: right, series: [{axisId: impression.impressions_per_user, 332 | id: impression.impressions_per_user, name: Impressions per User}], showLabels: true, 333 | showValues: true, unpinAxis: false, tickDensity: default, tickDensityCustom: 5, 334 | type: linear}] 335 | series_types: 336 | impression.distinct_users: column 337 | series_colors: 338 | impression.distinct_users: "#4285F4" 339 | impression.impressions_per_user: "#EA4335" 340 | ordering: none 341 | show_null_labels: false 342 | show_totals_labels: false 343 | show_silhouette: false 344 | totals_color: "#808080" 345 | defaults_version: 1 346 | hidden_series: [] 347 | listen: 348 | Date Range: impression.comparison_type 349 | row: 13 350 | col: 0 351 | width: 8 352 | height: 6 353 | - title: Breakdown (B) 354 | name: Breakdown (B) 355 | model: campaign_manager_marketplace_v2 356 | explore: impression 357 | type: looker_line 358 | fields: [impression.impressions_per_user, impression.event_date, impression.distinct_users] 359 | fill_fields: [impression.event_date] 360 | filters: 361 | match_table_campaigns.campaign_name: "%RTG%" 362 | impression.selected_comparison: "%Last%" 363 | sorts: [impression.event_date desc] 364 | limit: 500 365 | column_limit: 50 366 | x_axis_gridlines: false 367 | y_axis_gridlines: true 368 | show_view_names: false 369 | show_y_axis_labels: true 370 | show_y_axis_ticks: true 371 | y_axis_tick_density: default 372 | y_axis_tick_density_custom: 5 373 | show_x_axis_label: true 374 | show_x_axis_ticks: true 375 | y_axis_scale_mode: linear 376 | x_axis_reversed: false 377 | y_axis_reversed: false 378 | plot_size_by_field: false 379 | trellis: '' 380 | stacking: '' 381 | limit_displayed_rows: false 382 | legend_position: center 383 | point_style: circle 384 | show_value_labels: false 385 | label_density: 25 386 | x_axis_scale: auto 387 | y_axis_combined: true 388 | show_null_points: true 389 | interpolation: monotone 390 | y_axes: [{label: '', orientation: left, series: [{axisId: impression.distinct_users, 391 | id: impression.distinct_users, name: Distinct Users}], showLabels: true, 392 | showValues: true, unpinAxis: false, tickDensity: default, tickDensityCustom: 5, 393 | type: linear}, {label: !!null '', orientation: right, series: [{axisId: impression.impressions_per_user, 394 | id: impression.impressions_per_user, name: Impressions per User}], showLabels: true, 395 | showValues: true, unpinAxis: false, tickDensity: default, tickDensityCustom: 5, 396 | type: linear}] 397 | series_types: 398 | impression.distinct_users: column 399 | series_colors: 400 | impression.distinct_users: "#4285F4" 401 | impression.impressions_per_user: "#EA4335" 402 | ordering: none 403 | show_null_labels: false 404 | show_totals_labels: false 405 | show_silhouette: false 406 | totals_color: "#808080" 407 | defaults_version: 1 408 | hidden_series: [] 409 | listen: 410 | Date Range: impression.comparison_type 411 | row: 13 412 | col: 8 413 | width: 8 414 | height: 6 415 | - title: Breakdown (C) 416 | name: Breakdown (C) 417 | model: campaign_manager_marketplace_v2 418 | explore: impression 419 | type: looker_line 420 | fields: [impression.impressions_per_user, impression.event_date, impression.distinct_users] 421 | fill_fields: [impression.event_date] 422 | filters: 423 | impression.selected_comparison: "%Last%" 424 | match_table_campaigns.campaign_name: "%BRD%" 425 | sorts: [impression.event_date desc] 426 | limit: 500 427 | column_limit: 50 428 | x_axis_gridlines: false 429 | y_axis_gridlines: true 430 | show_view_names: false 431 | show_y_axis_labels: true 432 | show_y_axis_ticks: true 433 | y_axis_tick_density: default 434 | y_axis_tick_density_custom: 5 435 | show_x_axis_label: true 436 | show_x_axis_ticks: true 437 | y_axis_scale_mode: linear 438 | x_axis_reversed: false 439 | y_axis_reversed: false 440 | plot_size_by_field: false 441 | trellis: '' 442 | stacking: '' 443 | limit_displayed_rows: false 444 | legend_position: center 445 | point_style: circle 446 | show_value_labels: false 447 | label_density: 25 448 | x_axis_scale: auto 449 | y_axis_combined: true 450 | show_null_points: true 451 | interpolation: monotone 452 | y_axes: [{label: '', orientation: left, series: [{axisId: impression.distinct_users, 453 | id: impression.distinct_users, name: Distinct Users}], showLabels: true, 454 | showValues: true, unpinAxis: false, tickDensity: default, tickDensityCustom: 5, 455 | type: linear}, {label: !!null '', orientation: right, series: [{axisId: impression.impressions_per_user, 456 | id: impression.impressions_per_user, name: Impressions per User}], showLabels: true, 457 | showValues: true, unpinAxis: false, tickDensity: default, tickDensityCustom: 5, 458 | type: linear}] 459 | series_types: 460 | impression.distinct_users: column 461 | series_colors: 462 | impression.distinct_users: "#4285F4" 463 | impression.impressions_per_user: "#EA4335" 464 | ordering: none 465 | show_null_labels: false 466 | show_totals_labels: false 467 | show_silhouette: false 468 | totals_color: "#808080" 469 | defaults_version: 1 470 | listen: 471 | Date Range: impression.comparison_type 472 | row: 13 473 | col: 16 474 | width: 8 475 | height: 6 476 | - name: '' 477 | type: text 478 | title_text: '' 479 | subtitle_text: '' 480 | body_text: |- 481 | 482 |
483 | 484 |
485 | 486 | row: 0 487 | col: 0 488 | width: 4 489 | height: 3 490 | filters: 491 | - name: Date Range 492 | title: Date Range 493 | type: field_filter 494 | default_value: seven 495 | allow_multiple_values: true 496 | required: false 497 | ui_config: 498 | type: dropdown_menu 499 | display: inline 500 | options: 501 | - seven 502 | - fourteen 503 | - thirty 504 | model: campaign_manager_marketplace_v2 505 | explore: impression 506 | listens_to_filters: [] 507 | field: impression.comparison_type -------------------------------------------------------------------------------- /dashboards/3_campaign_overview.dashboard.lookml: -------------------------------------------------------------------------------- 1 | - dashboard: 3_campaign_overview 2 | title: "(3) Campaign Overview" 3 | layout: newspaper 4 | preferred_viewer: dashboards-next 5 | 6 | elements: 7 | - title: Campaign Metrics 8 | name: Campaign Metrics 9 | model: campaign_manager_marketplace_v2 10 | explore: impression_funnel 11 | type: looker_grid 12 | fields: [impression_funnel.campaign_id, match_table_campaigns.campaign_start_date, 13 | match_table_campaigns.campaign_end_date, impression_funnel.advertiser_id, match_table_ads.ad_type, 14 | impression_funnel.ad_id] 15 | sorts: [match_table_campaigns.campaign_start_date desc] 16 | limit: 500 17 | column_limit: 50 18 | query_timezone: America/Los_Angeles 19 | show_view_names: false 20 | show_row_numbers: true 21 | transpose: false 22 | truncate_text: true 23 | hide_totals: false 24 | hide_row_totals: false 25 | size_to_fit: true 26 | table_theme: editable 27 | limit_displayed_rows: false 28 | enable_conditional_formatting: false 29 | header_text_alignment: left 30 | header_font_size: '12' 31 | rows_font_size: '12' 32 | conditional_formatting_include_totals: false 33 | conditional_formatting_include_nulls: false 34 | show_sql_query_menu_options: false 35 | show_totals: true 36 | show_row_totals: true 37 | header_font_color: "#ffffff" 38 | header_background_color: "#4285F4" 39 | truncate_column_names: false 40 | custom_color_enabled: false 41 | custom_color: forestgreen 42 | show_single_value_title: true 43 | show_comparison: false 44 | comparison_type: value 45 | comparison_reverse_colors: false 46 | show_comparison_label: true 47 | stacking: '' 48 | show_value_labels: true 49 | label_density: 25 50 | legend_position: center 51 | x_axis_gridlines: false 52 | y_axis_gridlines: true 53 | y_axis_combined: true 54 | show_y_axis_labels: true 55 | show_y_axis_ticks: true 56 | y_axis_tick_density: default 57 | y_axis_tick_density_custom: 5 58 | show_x_axis_label: true 59 | show_x_axis_ticks: true 60 | x_axis_scale: auto 61 | y_axis_scale_mode: linear 62 | ordering: none 63 | show_null_labels: false 64 | show_totals_labels: false 65 | show_silhouette: false 66 | totals_color: "#808080" 67 | show_null_points: true 68 | point_style: none 69 | interpolation: linear 70 | series_types: {} 71 | colors: ["#5245ed", "#353b49", "#49cec1", "#b3a0dd", "#db7f2a", "#706080", "#a2dcf3", 72 | "#776fdf", "#e9b404", "#635189"] 73 | series_colors: {} 74 | defaults_version: 1 75 | listen: 76 | Campaign ID: impression_funnel.campaign_id 77 | row: 6 78 | col: 0 79 | width: 17 80 | height: 6 81 | - title: Daily Campaign Impression Metrics 82 | name: Daily Campaign Impression Metrics 83 | model: campaign_manager_marketplace_v2 84 | explore: impression 85 | type: looker_column 86 | fields: [impression.distinct_users, impression.event_date, impression.count] 87 | sorts: [impression.event_date] 88 | limit: 1000 89 | column_limit: 50 90 | query_timezone: America/Los_Angeles 91 | x_axis_gridlines: false 92 | y_axis_gridlines: true 93 | show_view_names: false 94 | show_y_axis_labels: true 95 | show_y_axis_ticks: true 96 | y_axis_tick_density: default 97 | y_axis_tick_density_custom: 5 98 | show_x_axis_label: true 99 | show_x_axis_ticks: true 100 | y_axis_scale_mode: linear 101 | x_axis_reversed: false 102 | y_axis_reversed: false 103 | plot_size_by_field: false 104 | trellis: '' 105 | stacking: '' 106 | limit_displayed_rows: false 107 | legend_position: center 108 | point_style: none 109 | show_value_labels: false 110 | label_density: 25 111 | x_axis_scale: ordinal 112 | y_axis_combined: true 113 | ordering: none 114 | show_null_labels: false 115 | show_totals_labels: false 116 | show_silhouette: false 117 | totals_color: "#808080" 118 | color_application: 119 | collection_id: google 120 | palette_id: google-categorical-0 121 | options: 122 | steps: 5 123 | colors: ["#5245ed", "#1ea8df", "#353b49", "#49cec1", "#b3a0dd", "#db7f2a", "#706080", 124 | "#a2dcf3", "#776fdf", "#e9b404", "#635189"] 125 | series_types: {} 126 | series_colors: 127 | impression.count: "#4285F4" 128 | impression.distinct_users: "#34A853" 129 | series_labels: 130 | impression.distinct_users: Users 131 | show_null_points: true 132 | interpolation: linear 133 | value_labels: legend 134 | label_type: labPer 135 | map: auto 136 | map_projection: '' 137 | map_plot_mode: points 138 | heatmap_gridlines: false 139 | heatmap_opacity: 0.5 140 | show_region_field: true 141 | draw_map_labels_above_data: true 142 | map_tile_provider: positron 143 | map_position: custom 144 | map_scale_indicator: 'off' 145 | map_pannable: true 146 | map_zoomable: true 147 | map_marker_type: circle 148 | map_marker_icon_name: default 149 | map_marker_radius_mode: proportional_value 150 | map_marker_units: meters 151 | map_marker_proportional_scale_type: linear 152 | map_marker_color_mode: fixed 153 | show_legend: true 154 | quantize_map_value_colors: false 155 | quantize_colors: false 156 | map_latitude: 34.45221847282654 157 | map_longitude: 0.3515625 158 | map_zoom: 2 159 | defaults_version: 1 160 | listen: 161 | Campaign ID: impression.campaign_id 162 | row: 12 163 | col: 0 164 | width: 24 165 | height: 6 166 | - title: Campaign Click Through Rate 167 | name: Campaign Click Through Rate 168 | model: campaign_manager_marketplace_v2_marketplace 169 | explore: impression_funnel 170 | type: single_value 171 | fields: [impression_funnel.click_through_rate] 172 | sorts: [impression_funnel.click_through_rate desc] 173 | limit: 500 174 | column_limit: 50 175 | query_timezone: America/Los_Angeles 176 | custom_color_enabled: false 177 | custom_color: forestgreen 178 | show_single_value_title: true 179 | show_comparison: false 180 | comparison_type: value 181 | comparison_reverse_colors: false 182 | show_comparison_label: true 183 | stacking: '' 184 | show_value_labels: false 185 | label_density: 25 186 | legend_position: center 187 | x_axis_gridlines: false 188 | y_axis_gridlines: true 189 | show_view_names: true 190 | limit_displayed_rows: false 191 | y_axis_combined: true 192 | show_y_axis_labels: true 193 | show_y_axis_ticks: true 194 | y_axis_tick_density: default 195 | y_axis_tick_density_custom: 5 196 | show_x_axis_label: true 197 | show_x_axis_ticks: true 198 | x_axis_scale: auto 199 | y_axis_scale_mode: linear 200 | show_null_points: true 201 | point_style: none 202 | interpolation: linear 203 | series_types: {} 204 | listen: 205 | Campaign ID: impression_funnel.campaign_id 206 | row: 4 207 | col: 18 208 | width: 6 209 | height: 2 210 | - title: Campaign Conversion Rate 211 | name: Campaign Conversion Rate 212 | model: campaign_manager_marketplace_v2 213 | explore: impression_funnel 214 | type: single_value 215 | fields: [impression_funnel.conversion_rate] 216 | sorts: [impression_funnel.conversion_rate desc] 217 | limit: 500 218 | column_limit: 50 219 | query_timezone: America/Los_Angeles 220 | custom_color_enabled: false 221 | custom_color: forestgreen 222 | show_single_value_title: true 223 | show_comparison: false 224 | comparison_type: value 225 | comparison_reverse_colors: false 226 | show_comparison_label: true 227 | stacking: '' 228 | show_value_labels: false 229 | label_density: 25 230 | legend_position: center 231 | x_axis_gridlines: false 232 | y_axis_gridlines: true 233 | show_view_names: true 234 | limit_displayed_rows: false 235 | y_axis_combined: true 236 | show_y_axis_labels: true 237 | show_y_axis_ticks: true 238 | y_axis_tick_density: default 239 | y_axis_tick_density_custom: 5 240 | show_x_axis_label: true 241 | show_x_axis_ticks: true 242 | x_axis_scale: auto 243 | y_axis_scale_mode: linear 244 | show_null_points: true 245 | point_style: none 246 | interpolation: linear 247 | series_types: {} 248 | listen: 249 | Campaign ID: impression_funnel.campaign_id 250 | row: 2 251 | col: 18 252 | width: 6 253 | height: 2 254 | - title: Impression Funnel 255 | name: Impression Funnel 256 | model: campaign_manager_marketplace_v2 257 | explore: impression_funnel 258 | type: looker_column 259 | fields: [impression_funnel.total_impressions, impression_funnel.total_clicks, 260 | impression_funnel.total_conversions] 261 | sorts: [impression_funnel.total_impressions desc] 262 | limit: 500 263 | column_limit: 50 264 | query_timezone: America/Los_Angeles 265 | x_axis_gridlines: false 266 | y_axis_gridlines: true 267 | show_view_names: false 268 | show_y_axis_labels: true 269 | show_y_axis_ticks: true 270 | y_axis_tick_density: default 271 | y_axis_tick_density_custom: 5 272 | show_x_axis_label: true 273 | show_x_axis_ticks: true 274 | y_axis_scale_mode: linear 275 | x_axis_reversed: false 276 | y_axis_reversed: false 277 | plot_size_by_field: false 278 | trellis: '' 279 | stacking: '' 280 | limit_displayed_rows: false 281 | legend_position: center 282 | point_style: none 283 | show_value_labels: true 284 | label_density: 25 285 | x_axis_scale: auto 286 | y_axis_combined: true 287 | ordering: none 288 | show_null_labels: false 289 | show_totals_labels: false 290 | show_silhouette: false 291 | totals_color: "#808080" 292 | color_application: 293 | collection_id: google 294 | palette_id: google-categorical-0 295 | options: 296 | steps: 5 297 | y_axes: [{label: '', orientation: bottom, series: [{axisId: impression_funnel.total_impressions, 298 | id: impression_funnel.total_impressions, name: Total Impressions}, {axisId: impression_funnel.total_conversions, 299 | id: impression_funnel.total_conversions, name: Total Conversions}, {axisId: impression_funnel.total_clicks, 300 | id: impression_funnel.total_clicks, name: Total Clicks}], showLabels: true, 301 | showValues: true, unpinAxis: false, tickDensity: default, tickDensityCustom: 5, 302 | type: linear}] 303 | hidden_series: [] 304 | colors: ["#5245ed", "#353b49", "#49cec1", "#b3a0dd", "#db7f2a", "#706080", "#a2dcf3", 305 | "#776fdf", "#e9b404", "#635189"] 306 | series_types: {} 307 | series_colors: {} 308 | leftAxisLabelVisible: false 309 | leftAxisLabel: '' 310 | rightAxisLabelVisible: false 311 | rightAxisLabel: '' 312 | smoothedBars: false 313 | orientation: automatic 314 | labelScale: '' 315 | labelPosition: left 316 | percentType: total 317 | percentPosition: inline 318 | valuePosition: right 319 | labelColorEnabled: false 320 | labelColor: "#FFF" 321 | custom_color_enabled: false 322 | custom_color: forestgreen 323 | show_single_value_title: true 324 | show_comparison: false 325 | comparison_type: value 326 | comparison_reverse_colors: false 327 | show_comparison_label: true 328 | show_null_points: true 329 | interpolation: linear 330 | defaults_version: 1 331 | listen: 332 | Campaign ID: impression_funnel.campaign_id 333 | row: 18 334 | col: 11 335 | width: 13 336 | height: 8 337 | - title: Distinct Users Reached 338 | name: Distinct Users Reached 339 | model: campaign_manager_marketplace_v2 340 | explore: impression 341 | type: single_value 342 | fields: [impression.distinct_users] 343 | sorts: [impression.distinct_users desc] 344 | limit: 1000 345 | column_limit: 50 346 | query_timezone: America/Los_Angeles 347 | custom_color_enabled: false 348 | custom_color: forestgreen 349 | show_single_value_title: true 350 | show_comparison: false 351 | comparison_type: value 352 | comparison_reverse_colors: false 353 | show_comparison_label: true 354 | stacking: '' 355 | show_value_labels: false 356 | label_density: 25 357 | legend_position: center 358 | x_axis_gridlines: false 359 | y_axis_gridlines: true 360 | show_view_names: false 361 | limit_displayed_rows: false 362 | y_axis_combined: true 363 | show_y_axis_labels: true 364 | show_y_axis_ticks: true 365 | y_axis_tick_density: default 366 | y_axis_tick_density_custom: 5 367 | show_x_axis_label: true 368 | show_x_axis_ticks: true 369 | x_axis_scale: ordinal 370 | y_axis_scale_mode: linear 371 | ordering: none 372 | show_null_labels: false 373 | show_totals_labels: false 374 | show_silhouette: false 375 | totals_color: "#808080" 376 | show_null_points: true 377 | point_style: none 378 | interpolation: linear 379 | value_labels: legend 380 | label_type: labPer 381 | map: auto 382 | map_projection: '' 383 | map_plot_mode: points 384 | heatmap_gridlines: false 385 | heatmap_opacity: 0.5 386 | show_region_field: true 387 | draw_map_labels_above_data: true 388 | map_tile_provider: positron 389 | map_position: custom 390 | map_scale_indicator: 'off' 391 | map_pannable: true 392 | map_zoomable: true 393 | map_marker_type: circle 394 | map_marker_icon_name: default 395 | map_marker_radius_mode: proportional_value 396 | map_marker_units: meters 397 | map_marker_proportional_scale_type: linear 398 | map_marker_color_mode: fixed 399 | show_legend: true 400 | quantize_map_value_colors: false 401 | quantize_colors: false 402 | series_types: {} 403 | map_latitude: 34.45221847282654 404 | map_longitude: 0.3515625 405 | map_zoom: 2 406 | colors: ["#5245ed", "#1ea8df", "#353b49", "#49cec1", "#b3a0dd", "#db7f2a", "#706080", 407 | "#a2dcf3", "#776fdf", "#e9b404", "#635189"] 408 | series_colors: {} 409 | series_labels: 410 | impression.distinct_users: Users 411 | listen: 412 | Campaign ID: impression.campaign_id 413 | row: 2 414 | col: 0 415 | width: 6 416 | height: 2 417 | - title: Campaign Country Reach 418 | name: Campaign Country Reach 419 | model: campaign_manager_marketplace_v2 420 | explore: impression_funnel 421 | type: looker_map 422 | fields: [impression_funnel.total_impressions, impression_funnel.country_code] 423 | sorts: [impression_funnel.total_impressions desc] 424 | limit: 500 425 | column_limit: 50 426 | query_timezone: America/Los_Angeles 427 | map_plot_mode: points 428 | heatmap_gridlines: false 429 | heatmap_opacity: 0.5 430 | show_region_field: true 431 | draw_map_labels_above_data: true 432 | map_tile_provider: positron 433 | map_position: custom 434 | map_scale_indicator: 'off' 435 | map_pannable: true 436 | map_zoomable: true 437 | map_marker_type: circle 438 | map_marker_icon_name: default 439 | map_marker_radius_mode: proportional_value 440 | map_marker_units: meters 441 | map_marker_proportional_scale_type: linear 442 | map_marker_color_mode: fixed 443 | show_view_names: true 444 | show_legend: true 445 | quantize_map_value_colors: false 446 | map: auto 447 | map_projection: '' 448 | quantize_colors: false 449 | custom_color_enabled: false 450 | custom_color: forestgreen 451 | show_single_value_title: true 452 | show_comparison: false 453 | comparison_type: value 454 | comparison_reverse_colors: false 455 | show_comparison_label: true 456 | value_labels: legend 457 | label_type: labPer 458 | stacking: '' 459 | show_value_labels: false 460 | label_density: 25 461 | legend_position: center 462 | x_axis_gridlines: false 463 | y_axis_gridlines: true 464 | limit_displayed_rows: false 465 | y_axis_combined: true 466 | show_y_axis_labels: true 467 | show_y_axis_ticks: true 468 | y_axis_tick_density: default 469 | y_axis_tick_density_custom: 5 470 | show_x_axis_label: true 471 | show_x_axis_ticks: true 472 | x_axis_scale: auto 473 | y_axis_scale_mode: linear 474 | ordering: none 475 | show_null_labels: false 476 | show_totals_labels: false 477 | show_silhouette: false 478 | totals_color: "#808080" 479 | series_types: {} 480 | map_latitude: 42.795884236472936 481 | map_longitude: -9.108910891089112 482 | map_zoom: 2 483 | map_value_scale_clamp_min: 0 484 | map_value_scale_clamp_max: 10000 485 | listen: 486 | Campaign ID: impression_funnel.campaign_id 487 | row: 43 488 | col: 0 489 | width: 24 490 | height: 14 491 | - title: Ad Breakdown 492 | name: Ad Breakdown 493 | model: campaign_manager_marketplace_v2 494 | explore: impression 495 | type: looker_pie 496 | fields: [impression.count, match_table_ads.ad_name] 497 | sorts: [match_table_ads.ad_name] 498 | limit: 50 499 | column_limit: 50 500 | query_timezone: America/Los_Angeles 501 | value_labels: none 502 | label_type: labPer 503 | inner_radius: 40 504 | colors: ["#5245ed", "#1ea8df", "#353b49", "#49cec1", "#b3a0dd", "#db7f2a", "#706080", 505 | "#a2dcf3", "#776fdf", "#e9b404", "#635189"] 506 | color_application: 507 | collection_id: google 508 | palette_id: google-sequential-0 509 | options: 510 | steps: 5 511 | series_colors: {} 512 | series_labels: 513 | impression.distinct_users: Users 514 | show_view_names: false 515 | stacking: '' 516 | show_value_labels: false 517 | label_density: 25 518 | legend_position: center 519 | x_axis_gridlines: false 520 | y_axis_gridlines: true 521 | limit_displayed_rows: false 522 | y_axis_combined: true 523 | show_y_axis_labels: true 524 | show_y_axis_ticks: true 525 | y_axis_tick_density: default 526 | y_axis_tick_density_custom: 5 527 | show_x_axis_label: true 528 | show_x_axis_ticks: true 529 | x_axis_scale: ordinal 530 | y_axis_scale_mode: linear 531 | ordering: none 532 | show_null_labels: false 533 | show_totals_labels: false 534 | show_silhouette: false 535 | totals_color: "#808080" 536 | show_null_points: true 537 | point_style: none 538 | interpolation: linear 539 | map: auto 540 | map_projection: '' 541 | map_plot_mode: points 542 | heatmap_gridlines: false 543 | heatmap_opacity: 0.5 544 | show_region_field: true 545 | draw_map_labels_above_data: true 546 | map_tile_provider: positron 547 | map_position: custom 548 | map_scale_indicator: 'off' 549 | map_pannable: true 550 | map_zoomable: true 551 | map_marker_type: circle 552 | map_marker_icon_name: default 553 | map_marker_radius_mode: proportional_value 554 | map_marker_units: meters 555 | map_marker_proportional_scale_type: linear 556 | map_marker_color_mode: fixed 557 | show_legend: true 558 | quantize_map_value_colors: false 559 | quantize_colors: false 560 | series_types: {} 561 | map_latitude: 34.45221847282654 562 | map_longitude: 0.3515625 563 | map_zoom: 2 564 | defaults_version: 1 565 | listen: 566 | Campaign ID: impression.campaign_id 567 | row: 6 568 | col: 17 569 | width: 7 570 | height: 6 571 | - title: Impressions, Clicks and Conversions by First Impression Date 572 | name: Impressions, Clicks and Conversions by First Impression Date 573 | model: campaign_manager_marketplace_v2 574 | explore: impression_funnel 575 | type: looker_line 576 | fields: [impression_funnel.total_impressions, impression_funnel.total_conversions, 577 | impression_funnel.total_clicks, impression_funnel.first_ad_impression_date] 578 | sorts: [impression_funnel.first_ad_impression_date desc] 579 | limit: 500 580 | column_limit: 50 581 | query_timezone: America/Los_Angeles 582 | x_axis_gridlines: false 583 | y_axis_gridlines: true 584 | show_view_names: false 585 | show_y_axis_labels: true 586 | show_y_axis_ticks: true 587 | y_axis_tick_density: default 588 | y_axis_tick_density_custom: 5 589 | show_x_axis_label: true 590 | show_x_axis_ticks: true 591 | y_axis_scale_mode: linear 592 | x_axis_reversed: false 593 | y_axis_reversed: false 594 | plot_size_by_field: false 595 | trellis: '' 596 | stacking: '' 597 | limit_displayed_rows: false 598 | legend_position: center 599 | point_style: circle 600 | show_value_labels: false 601 | label_density: 25 602 | x_axis_scale: auto 603 | y_axis_combined: false 604 | show_null_points: true 605 | interpolation: linear 606 | color_application: 607 | collection_id: google 608 | palette_id: google-categorical-0 609 | options: 610 | steps: 5 611 | y_axis_labels: [] 612 | colors: ["#5245ed", "#1ea8df", "#353b49", "#49cec1", "#b3a0dd", "#db7f2a", "#706080", 613 | "#a2dcf3", "#776fdf", "#e9b404", "#635189"] 614 | series_types: {} 615 | series_colors: {} 616 | series_point_styles: 617 | impression_funnel.total_impressions: diamond 618 | impression_funnel.total_conversions: diamond 619 | impression_funnel.total_clicks: diamond 620 | y_axis_orientation: [left, right, right] 621 | ordering: none 622 | show_null_labels: false 623 | show_totals_labels: false 624 | show_silhouette: false 625 | totals_color: "#808080" 626 | defaults_version: 1 627 | listen: 628 | Campaign ID: impression_funnel.campaign_id 629 | row: 18 630 | col: 0 631 | width: 11 632 | height: 8 633 | - title: Action Rate 634 | name: Action Rate 635 | model: campaign_manager_marketplace_v2 636 | explore: impression_funnel 637 | type: single_value 638 | fields: [impression_funnel.action_rate] 639 | sorts: [impression_funnel.action_rate desc] 640 | limit: 500 641 | column_limit: 50 642 | query_timezone: America/Los_Angeles 643 | custom_color_enabled: false 644 | custom_color: forestgreen 645 | show_single_value_title: true 646 | show_comparison: false 647 | comparison_type: value 648 | comparison_reverse_colors: false 649 | show_comparison_label: true 650 | stacking: '' 651 | show_value_labels: false 652 | label_density: 25 653 | legend_position: center 654 | x_axis_gridlines: false 655 | y_axis_gridlines: true 656 | show_view_names: true 657 | limit_displayed_rows: false 658 | y_axis_combined: true 659 | show_y_axis_labels: true 660 | show_y_axis_ticks: true 661 | y_axis_tick_density: default 662 | y_axis_tick_density_custom: 5 663 | show_x_axis_label: true 664 | show_x_axis_ticks: true 665 | x_axis_scale: auto 666 | y_axis_scale_mode: linear 667 | ordering: none 668 | show_null_labels: false 669 | show_totals_labels: false 670 | show_silhouette: false 671 | totals_color: "#808080" 672 | series_types: {} 673 | value_format: 00.00% 674 | listen: 675 | Campaign ID: impression_funnel.campaign_id 676 | row: 2 677 | col: 12 678 | width: 6 679 | height: 2 680 | - title: Clicks 681 | name: Clicks 682 | model: campaign_manager_marketplace_v2 683 | explore: click 684 | type: single_value 685 | fields: [click.count] 686 | sorts: [click.count desc] 687 | limit: 500 688 | column_limit: 50 689 | query_timezone: America/Los_Angeles 690 | custom_color_enabled: false 691 | custom_color: forestgreen 692 | show_single_value_title: true 693 | show_comparison: false 694 | comparison_type: value 695 | comparison_reverse_colors: false 696 | show_comparison_label: true 697 | stacking: '' 698 | show_value_labels: false 699 | label_density: 25 700 | legend_position: center 701 | x_axis_gridlines: false 702 | y_axis_gridlines: true 703 | show_view_names: true 704 | limit_displayed_rows: false 705 | y_axis_combined: true 706 | show_y_axis_labels: true 707 | show_y_axis_ticks: true 708 | y_axis_tick_density: default 709 | y_axis_tick_density_custom: 5 710 | show_x_axis_label: true 711 | show_x_axis_ticks: true 712 | x_axis_scale: auto 713 | y_axis_scale_mode: linear 714 | ordering: none 715 | show_null_labels: false 716 | show_totals_labels: false 717 | show_silhouette: false 718 | totals_color: "#808080" 719 | series_types: {} 720 | listen: 721 | Campaign ID: click.campaign_id 722 | row: 4 723 | col: 6 724 | width: 6 725 | height: 2 726 | - title: Total Conversions 727 | name: Total Conversions 728 | model: campaign_manager_marketplace_v2 729 | explore: impression_funnel 730 | type: single_value 731 | fields: [impression_funnel.total_conversions] 732 | sorts: [impression_funnel.total_conversions desc] 733 | limit: 500 734 | column_limit: 50 735 | query_timezone: America/Los_Angeles 736 | custom_color_enabled: false 737 | custom_color: forestgreen 738 | show_single_value_title: true 739 | show_comparison: false 740 | comparison_type: value 741 | comparison_reverse_colors: false 742 | show_comparison_label: true 743 | stacking: '' 744 | show_value_labels: false 745 | label_density: 25 746 | legend_position: center 747 | x_axis_gridlines: false 748 | y_axis_gridlines: true 749 | show_view_names: true 750 | limit_displayed_rows: false 751 | y_axis_combined: true 752 | show_y_axis_labels: true 753 | show_y_axis_ticks: true 754 | y_axis_tick_density: default 755 | y_axis_tick_density_custom: 5 756 | show_x_axis_label: true 757 | show_x_axis_ticks: true 758 | x_axis_scale: auto 759 | y_axis_scale_mode: linear 760 | ordering: none 761 | show_null_labels: false 762 | show_totals_labels: false 763 | show_silhouette: false 764 | totals_color: "#808080" 765 | series_types: {} 766 | listen: 767 | Campaign ID: impression_funnel.campaign_id 768 | row: 4 769 | col: 12 770 | width: 6 771 | height: 2 772 | - title: Impressions 773 | name: Impressions 774 | model: campaign_manager_marketplace_v2 775 | explore: impression 776 | type: single_value 777 | fields: [impression.count_impressions] 778 | sorts: [impression.count_impressions desc] 779 | limit: 500 780 | column_limit: 50 781 | query_timezone: America/Los_Angeles 782 | custom_color_enabled: false 783 | custom_color: forestgreen 784 | show_single_value_title: true 785 | show_comparison: false 786 | comparison_type: value 787 | comparison_reverse_colors: false 788 | show_comparison_label: true 789 | value_labels: legend 790 | label_type: labPer 791 | show_view_names: true 792 | stacking: '' 793 | show_value_labels: false 794 | label_density: 25 795 | legend_position: center 796 | x_axis_gridlines: false 797 | y_axis_gridlines: true 798 | limit_displayed_rows: false 799 | y_axis_combined: true 800 | show_y_axis_labels: true 801 | show_y_axis_ticks: true 802 | y_axis_tick_density: default 803 | y_axis_tick_density_custom: 5 804 | show_x_axis_label: true 805 | show_x_axis_ticks: true 806 | x_axis_scale: auto 807 | y_axis_scale_mode: linear 808 | ordering: none 809 | show_null_labels: false 810 | show_totals_labels: false 811 | show_silhouette: false 812 | totals_color: "#808080" 813 | series_types: {} 814 | colors: 'palette: Santa Cruz' 815 | value_format: 0.000,," M" 816 | listen: 817 | Campaign ID: impression.campaign_id 818 | row: 4 819 | col: 0 820 | width: 6 821 | height: 2 822 | - title: Trending Action and Conversion Rates 823 | name: Trending Action and Conversion Rates 824 | model: campaign_manager_marketplace_v2 825 | explore: impression_funnel 826 | type: looker_line 827 | fields: [impression_funnel.first_ad_impression_date, impression_funnel.conversion_rate, 828 | impression_funnel.action_rate, impression_funnel.count_users, impression_funnel.total_impressions, 829 | impression_funnel.total_conversions, impression_funnel.total_clicks] 830 | sorts: [impression_funnel.first_ad_impression_date desc] 831 | limit: 500 832 | column_limit: 50 833 | query_timezone: America/Los_Angeles 834 | x_axis_gridlines: false 835 | y_axis_gridlines: true 836 | show_view_names: false 837 | show_y_axis_labels: true 838 | show_y_axis_ticks: true 839 | y_axis_tick_density: default 840 | y_axis_tick_density_custom: 5 841 | show_x_axis_label: true 842 | show_x_axis_ticks: true 843 | y_axis_scale_mode: linear 844 | x_axis_reversed: false 845 | y_axis_reversed: false 846 | plot_size_by_field: false 847 | trellis: '' 848 | stacking: '' 849 | limit_displayed_rows: false 850 | legend_position: center 851 | point_style: none 852 | show_value_labels: false 853 | label_density: 25 854 | x_axis_scale: auto 855 | y_axis_combined: false 856 | show_null_points: true 857 | interpolation: linear 858 | color_application: 859 | collection_id: google 860 | palette_id: google-categorical-0 861 | options: 862 | steps: 5 863 | y_axis_labels: [] 864 | hide_legend: true 865 | colors: ["#5245ed", "#1ea8df", "#353b49", "#49cec1", "#b3a0dd", "#db7f2a", "#706080", 866 | "#a2dcf3", "#776fdf", "#e9b404", "#635189"] 867 | series_types: 868 | impression_funnel.count_users: column 869 | series_colors: 870 | impression_funnel.count_users: "#34A853" 871 | y_axis_orientation: [right, right] 872 | ordering: none 873 | show_null_labels: false 874 | show_totals_labels: false 875 | show_silhouette: false 876 | totals_color: "#808080" 877 | hidden_fields: [impression_funnel.total_impressions, impression_funnel.total_conversions, 878 | impression_funnel.total_clicks] 879 | defaults_version: 1 880 | listen: 881 | Campaign ID: impression_funnel.campaign_id 882 | row: 26 883 | col: 0 884 | width: 24 885 | height: 9 886 | - title: Count Users by Ad and First Impression Date 887 | name: Count Users by Ad and First Impression Date 888 | model: campaign_manager_marketplace_v2 889 | explore: impression_funnel 890 | type: looker_line 891 | fields: [impression_funnel.first_ad_impression_date, impression_funnel.count_users, 892 | match_table_ads.ad_name] 893 | pivots: [match_table_ads.ad_name] 894 | sorts: [impression_funnel.first_ad_impression_date desc, match_table_ads.ad_name] 895 | limit: 500 896 | column_limit: 50 897 | query_timezone: America/Los_Angeles 898 | x_axis_gridlines: false 899 | y_axis_gridlines: true 900 | show_view_names: false 901 | show_y_axis_labels: true 902 | show_y_axis_ticks: true 903 | y_axis_tick_density: default 904 | y_axis_tick_density_custom: 5 905 | show_x_axis_label: true 906 | show_x_axis_ticks: true 907 | y_axis_scale_mode: linear 908 | x_axis_reversed: false 909 | y_axis_reversed: false 910 | plot_size_by_field: false 911 | trellis: '' 912 | stacking: '' 913 | limit_displayed_rows: false 914 | legend_position: right 915 | point_style: none 916 | show_value_labels: false 917 | label_density: 25 918 | x_axis_scale: auto 919 | y_axis_combined: true 920 | show_null_points: true 921 | interpolation: monotone 922 | color_application: 923 | collection_id: google 924 | palette_id: google-categorical-0 925 | options: 926 | steps: 5 927 | reverse: true 928 | colors: ['palette: Santa Cruz'] 929 | series_types: {} 930 | series_colors: 931 | " Tracking Ad 1x1 Flashtalking https://www.xfinity.com/ET - impression_funnel.count_users": "#c0edd5" 932 | ? 160 x 600 1/23/2020 - 12/31/2020 AAM DV TRST 100% CORP_Q1_2020_NASCAR_NED_NON_DT_4267656_FT_160x600 933 | - impression_funnel.count_users 934 | : "#f5dfdf" 935 | 160x600 1.1 - 12.31 AAM TRST DV 100% BUS_Q1_2020_B2B_WST_TOT_DT_4263276_FT_160x600 - impression_funnel.count_users: "#edc0ba" 936 | ordering: none 937 | show_null_labels: false 938 | show_totals_labels: false 939 | show_silhouette: false 940 | totals_color: "#808080" 941 | defaults_version: 1 942 | listen: 943 | Campaign ID: impression_funnel.campaign_id 944 | row: 35 945 | col: 0 946 | width: 24 947 | height: 8 948 | - title: Average Impression Per User 949 | name: Average Impression Per User 950 | model: campaign_manager_marketplace_v2 951 | explore: impression 952 | type: single_value 953 | fields: [impression.impressions_per_user] 954 | limit: 500 955 | column_limit: 50 956 | custom_color_enabled: true 957 | show_single_value_title: true 958 | show_comparison: false 959 | comparison_type: value 960 | comparison_reverse_colors: false 961 | show_comparison_label: true 962 | enable_conditional_formatting: false 963 | conditional_formatting_include_totals: false 964 | conditional_formatting_include_nulls: false 965 | series_types: {} 966 | defaults_version: 1 967 | listen: 968 | Campaign ID: impression.campaign_id 969 | row: 2 970 | col: 6 971 | width: 6 972 | height: 2 973 | - name: '' 974 | type: text 975 | title_text: '' 976 | subtitle_text: '' 977 | body_text: |- 978 |
979 | Note: This dashboard is displaying data on Campaign performance based on the past 60 days.
Please contact your Looker admin if this timeframe needs to be increased.
980 |
981 | row: 0 982 | col: 0 983 | width: 24 984 | height: 2 985 | filters: 986 | - name: Campaign ID 987 | title: Campaign ID 988 | type: field_filter 989 | default_value: '' 990 | allow_multiple_values: true 991 | required: false 992 | ui_config: 993 | type: advanced 994 | display: popover 995 | model: campaign_manager_marketplace_v2 996 | explore: impression_funnel 997 | listens_to_filters: [] 998 | field: impression_funnel.campaign_id 999 | -------------------------------------------------------------------------------- /dashboards/1_reach_overview.dashboard.lookml: -------------------------------------------------------------------------------- 1 | - dashboard: 1_reach_overview 2 | title: "(1) Reach Overview" 3 | layout: newspaper 4 | preferred_viewer: dashboards-next 5 | 6 | elements: 7 | - title: Users by Browser Type 8 | name: Users by Browser Type 9 | model: campaign_manager_marketplace_v2 10 | explore: impression 11 | type: looker_pie 12 | fields: [impression.distinct_users, match_table_browsers.browser_platform] 13 | filters: 14 | impression.selected_comparison: "%Last%" 15 | sorts: [impression.distinct_users desc] 16 | limit: 1000 17 | column_limit: 50 18 | query_timezone: America/Los_Angeles 19 | value_labels: labels 20 | label_type: labPer 21 | inner_radius: 50 22 | colors: ['palette: Santa Cruz'] 23 | color_application: 24 | collection_id: google 25 | palette_id: google-categorical-0 26 | options: 27 | steps: 5 28 | show_view_names: true 29 | map: auto 30 | map_projection: '' 31 | map_plot_mode: points 32 | heatmap_gridlines: false 33 | heatmap_opacity: 0.5 34 | show_region_field: true 35 | draw_map_labels_above_data: true 36 | map_tile_provider: positron 37 | map_position: custom 38 | map_scale_indicator: 'off' 39 | map_pannable: true 40 | map_zoomable: true 41 | map_marker_type: circle 42 | map_marker_icon_name: default 43 | map_marker_radius_mode: proportional_value 44 | map_marker_units: meters 45 | map_marker_proportional_scale_type: linear 46 | map_marker_color_mode: fixed 47 | show_legend: true 48 | quantize_map_value_colors: false 49 | quantize_colors: false 50 | stacking: '' 51 | show_value_labels: false 52 | label_density: 25 53 | legend_position: center 54 | x_axis_gridlines: false 55 | y_axis_gridlines: true 56 | limit_displayed_rows: false 57 | y_axis_combined: true 58 | show_y_axis_labels: true 59 | show_y_axis_ticks: true 60 | y_axis_tick_density: default 61 | y_axis_tick_density_custom: 5 62 | show_x_axis_label: true 63 | show_x_axis_ticks: true 64 | x_axis_scale: auto 65 | y_axis_scale_mode: linear 66 | ordering: none 67 | show_null_labels: false 68 | show_totals_labels: false 69 | show_silhouette: false 70 | totals_color: "#808080" 71 | series_types: {} 72 | map_latitude: 34.45221847282654 73 | map_longitude: 0.3515625 74 | map_zoom: 2 75 | defaults_version: 1 76 | listen: 77 | Date Range: impression.comparison_type 78 | Advertiser Name: match_table_advertisers.advertiser_name 79 | row: 15 80 | col: 12 81 | width: 12 82 | height: 7 83 | - title: Daily Users and Impressions 84 | name: Daily Users and Impressions 85 | model: campaign_manager_marketplace_v2 86 | explore: impression 87 | type: looker_line 88 | fields: [impression.distinct_users, impression.event_date, impression.count] 89 | filters: 90 | impression.selected_comparison: "%Last%" 91 | sorts: [impression.event_date] 92 | limit: 1000 93 | column_limit: 50 94 | query_timezone: America/Los_Angeles 95 | x_axis_gridlines: false 96 | y_axis_gridlines: true 97 | show_view_names: false 98 | show_y_axis_labels: true 99 | show_y_axis_ticks: true 100 | y_axis_tick_density: default 101 | y_axis_tick_density_custom: 5 102 | show_x_axis_label: true 103 | show_x_axis_ticks: true 104 | y_axis_scale_mode: linear 105 | x_axis_reversed: false 106 | y_axis_reversed: false 107 | plot_size_by_field: false 108 | trellis: '' 109 | stacking: '' 110 | limit_displayed_rows: false 111 | legend_position: center 112 | point_style: circle 113 | show_value_labels: false 114 | label_density: 25 115 | x_axis_scale: auto 116 | y_axis_combined: true 117 | show_null_points: true 118 | interpolation: monotone 119 | color_application: 120 | collection_id: google 121 | palette_id: google-categorical-0 122 | options: 123 | steps: 5 124 | y_axes: [{label: '', orientation: left, series: [{axisId: impression.count, id: impression.count, 125 | name: Impressions}], showLabels: true, showValues: true, unpinAxis: false, 126 | tickDensity: default, tickDensityCustom: 5, type: linear}, {label: !!null '', 127 | orientation: right, series: [{axisId: impression.distinct_users, id: impression.distinct_users, 128 | name: Distinct Users}], showLabels: true, showValues: true, unpinAxis: false, 129 | tickDensity: default, tickDensityCustom: 5, type: linear}] 130 | colors: ["#5245ed", "#1ea8df", "#353b49", "#49cec1", "#b3a0dd", "#db7f2a", "#706080", 131 | "#a2dcf3", "#776fdf", "#e9b404", "#635189"] 132 | series_types: 133 | impression.count: column 134 | series_colors: 135 | impression.count: "#34A853" 136 | impression.distinct_users: "#4285F4" 137 | value_labels: legend 138 | label_type: labPer 139 | map: auto 140 | map_projection: '' 141 | map_plot_mode: points 142 | heatmap_gridlines: false 143 | heatmap_opacity: 0.5 144 | show_region_field: true 145 | draw_map_labels_above_data: true 146 | map_tile_provider: positron 147 | map_position: custom 148 | map_scale_indicator: 'off' 149 | map_pannable: true 150 | map_zoomable: true 151 | map_marker_type: circle 152 | map_marker_icon_name: default 153 | map_marker_radius_mode: proportional_value 154 | map_marker_units: meters 155 | map_marker_proportional_scale_type: linear 156 | map_marker_color_mode: fixed 157 | show_legend: true 158 | quantize_map_value_colors: false 159 | quantize_colors: false 160 | ordering: none 161 | show_null_labels: false 162 | show_totals_labels: false 163 | show_silhouette: false 164 | totals_color: "#808080" 165 | map_latitude: 34.45221847282654 166 | map_longitude: 0.3515625 167 | map_zoom: 2 168 | defaults_version: 1 169 | listen: 170 | Date Range: impression.comparison_type 171 | Advertiser Name: match_table_advertisers.advertiser_name 172 | row: 5 173 | col: 0 174 | width: 12 175 | height: 6 176 | - title: Users 177 | name: Users 178 | model: campaign_manager_marketplace_v2 179 | explore: impression 180 | type: single_value 181 | fields: [impression.distinct_users, impression.selected_comparison] 182 | filters: 183 | impression.selected_comparison: "-EMPTY" 184 | sorts: [impression.selected_comparison] 185 | limit: 500 186 | column_limit: 50 187 | dynamic_fields: [{table_calculation: vs_previous_period, label: vs Previous Period, 188 | expression: "${impression.distinct_users}/offset(${impression.distinct_users},1)-1", 189 | value_format: !!null '', value_format_name: percent_2, is_disabled: false, 190 | _kind_hint: measure, _type_hint: number}] 191 | query_timezone: America/Los_Angeles 192 | custom_color_enabled: false 193 | show_single_value_title: true 194 | show_comparison: true 195 | comparison_type: change 196 | comparison_reverse_colors: false 197 | show_comparison_label: true 198 | enable_conditional_formatting: false 199 | conditional_formatting_include_totals: false 200 | conditional_formatting_include_nulls: false 201 | custom_color: forestgreen 202 | value_format: 0.000,," M" 203 | value_labels: legend 204 | label_type: labPer 205 | show_view_names: true 206 | stacking: '' 207 | show_value_labels: false 208 | label_density: 25 209 | legend_position: center 210 | x_axis_gridlines: false 211 | y_axis_gridlines: true 212 | limit_displayed_rows: false 213 | y_axis_combined: true 214 | show_y_axis_labels: true 215 | show_y_axis_ticks: true 216 | y_axis_tick_density: default 217 | y_axis_tick_density_custom: 5 218 | show_x_axis_label: true 219 | show_x_axis_ticks: true 220 | x_axis_scale: auto 221 | y_axis_scale_mode: linear 222 | ordering: none 223 | show_null_labels: false 224 | show_totals_labels: false 225 | show_silhouette: false 226 | totals_color: "#808080" 227 | series_types: {} 228 | colors: 'palette: Santa Cruz' 229 | defaults_version: 1 230 | hidden_fields: [] 231 | listen: 232 | Date Range: impression.comparison_type 233 | Advertiser Name: match_table_advertisers.advertiser_name 234 | row: 3 235 | col: 0 236 | width: 8 237 | height: 2 238 | - title: Impressions 239 | name: Impressions 240 | model: campaign_manager_marketplace_v2 241 | explore: impression 242 | type: single_value 243 | fields: [impression.count_impressions, impression.selected_comparison] 244 | filters: 245 | impression.selected_comparison: "-EMPTY" 246 | sorts: [impression.selected_comparison] 247 | limit: 500 248 | column_limit: 50 249 | dynamic_fields: [{table_calculation: vs_previous_period, label: vs Previous Period, 250 | expression: "${impression.count_impressions} / offset(${impression.count_impressions},\ 251 | \ 1) -1", value_format: !!null '', value_format_name: percent_2, _kind_hint: measure, 252 | _type_hint: number}] 253 | query_timezone: America/Los_Angeles 254 | custom_color_enabled: false 255 | show_single_value_title: true 256 | show_comparison: true 257 | comparison_type: change 258 | comparison_reverse_colors: false 259 | show_comparison_label: true 260 | enable_conditional_formatting: false 261 | conditional_formatting_include_totals: false 262 | conditional_formatting_include_nulls: false 263 | custom_color: forestgreen 264 | value_format: 0.000,," M" 265 | value_labels: legend 266 | label_type: labPer 267 | show_view_names: true 268 | stacking: '' 269 | show_value_labels: false 270 | label_density: 25 271 | legend_position: center 272 | x_axis_gridlines: false 273 | y_axis_gridlines: true 274 | limit_displayed_rows: false 275 | y_axis_combined: true 276 | show_y_axis_labels: true 277 | show_y_axis_ticks: true 278 | y_axis_tick_density: default 279 | y_axis_tick_density_custom: 5 280 | show_x_axis_label: true 281 | show_x_axis_ticks: true 282 | x_axis_scale: auto 283 | y_axis_scale_mode: linear 284 | ordering: none 285 | show_null_labels: false 286 | show_totals_labels: false 287 | show_silhouette: false 288 | totals_color: "#808080" 289 | series_types: {} 290 | colors: 'palette: Santa Cruz' 291 | defaults_version: 1 292 | listen: 293 | Date Range: impression.comparison_type 294 | Advertiser Name: match_table_advertisers.advertiser_name 295 | row: 3 296 | col: 8 297 | width: 8 298 | height: 2 299 | - title: Active Campaigns 300 | name: Active Campaigns 301 | model: campaign_manager_marketplace_v2 302 | explore: impression 303 | type: single_value 304 | fields: [impression.campaign_count, impression.selected_comparison] 305 | filters: 306 | impression.selected_comparison: "-EMPTY" 307 | sorts: [impression.selected_comparison] 308 | limit: 500 309 | column_limit: 50 310 | dynamic_fields: [{table_calculation: vs_previous_period, label: vs Previous Period, 311 | expression: "${impression.campaign_count}-offset(${impression.campaign_count},1)", 312 | value_format: !!null '', value_format_name: decimal_0, _kind_hint: measure, 313 | _type_hint: number}] 314 | query_timezone: America/Los_Angeles 315 | custom_color_enabled: false 316 | show_single_value_title: true 317 | show_comparison: true 318 | comparison_type: change 319 | comparison_reverse_colors: false 320 | show_comparison_label: true 321 | enable_conditional_formatting: false 322 | conditional_formatting_include_totals: false 323 | conditional_formatting_include_nulls: false 324 | custom_color: forestgreen 325 | stacking: '' 326 | show_value_labels: false 327 | label_density: 25 328 | legend_position: center 329 | x_axis_gridlines: false 330 | y_axis_gridlines: true 331 | show_view_names: true 332 | limit_displayed_rows: false 333 | y_axis_combined: true 334 | show_y_axis_labels: true 335 | show_y_axis_ticks: true 336 | y_axis_tick_density: default 337 | y_axis_tick_density_custom: 5 338 | show_x_axis_label: true 339 | show_x_axis_ticks: true 340 | x_axis_scale: auto 341 | y_axis_scale_mode: linear 342 | ordering: none 343 | show_null_labels: false 344 | show_totals_labels: false 345 | show_silhouette: false 346 | totals_color: "#808080" 347 | series_types: {} 348 | defaults_version: 1 349 | listen: 350 | Date Range: impression.comparison_type 351 | Advertiser Name: match_table_advertisers.advertiser_name 352 | row: 13 353 | col: 16 354 | width: 8 355 | height: 2 356 | - title: Clicks 357 | name: Clicks 358 | model: campaign_manager_marketplace_v2 359 | explore: click 360 | type: single_value 361 | fields: [click.count, click.selected_comparison] 362 | filters: 363 | click.selected_comparison: "-EMPTY" 364 | sorts: [click.count desc] 365 | limit: 500 366 | column_limit: 50 367 | dynamic_fields: [{table_calculation: vs_previous_period, label: vs Previous Period, 368 | expression: "${click.count}/offset(${click.count},1)-1", value_format: !!null '', 369 | value_format_name: percent_2, _kind_hint: measure, _type_hint: number}] 370 | query_timezone: America/Los_Angeles 371 | custom_color_enabled: false 372 | show_single_value_title: true 373 | show_comparison: true 374 | comparison_type: change 375 | comparison_reverse_colors: false 376 | show_comparison_label: true 377 | enable_conditional_formatting: false 378 | conditional_formatting_include_totals: false 379 | conditional_formatting_include_nulls: false 380 | custom_color: forestgreen 381 | stacking: '' 382 | show_value_labels: false 383 | label_density: 25 384 | legend_position: center 385 | x_axis_gridlines: false 386 | y_axis_gridlines: true 387 | show_view_names: true 388 | limit_displayed_rows: false 389 | y_axis_combined: true 390 | show_y_axis_labels: true 391 | show_y_axis_ticks: true 392 | y_axis_tick_density: default 393 | y_axis_tick_density_custom: 5 394 | show_x_axis_label: true 395 | show_x_axis_ticks: true 396 | x_axis_scale: auto 397 | y_axis_scale_mode: linear 398 | ordering: none 399 | show_null_labels: false 400 | show_totals_labels: false 401 | show_silhouette: false 402 | totals_color: "#808080" 403 | series_types: {} 404 | defaults_version: 1 405 | listen: 406 | Date Range: click.comparison_type 407 | Advertiser Name: match_table_advertisers.advertiser_name 408 | row: 13 409 | col: 0 410 | width: 8 411 | height: 2 412 | - title: Conversions 413 | name: Conversions 414 | model: campaign_manager_marketplace_v2 415 | explore: activity 416 | type: single_value 417 | fields: [activity.count, activity.selected_comparison] 418 | filters: 419 | activity.event_type: CONVERSION 420 | activity.selected_comparison: "-EMPTY" 421 | sorts: [activity.selected_comparison] 422 | limit: 500 423 | column_limit: 50 424 | dynamic_fields: [{table_calculation: vs_previous_period, label: vs Previous Period, 425 | expression: "${activity.count}/offset(${activity.count},1)-1", value_format: !!null '', 426 | value_format_name: percent_2, _kind_hint: measure, _type_hint: number}] 427 | query_timezone: America/Los_Angeles 428 | custom_color_enabled: false 429 | show_single_value_title: true 430 | show_comparison: true 431 | comparison_type: change 432 | comparison_reverse_colors: false 433 | show_comparison_label: true 434 | enable_conditional_formatting: false 435 | conditional_formatting_include_totals: false 436 | conditional_formatting_include_nulls: false 437 | custom_color: forestgreen 438 | value_format: 0.000,," M" 439 | stacking: '' 440 | show_value_labels: false 441 | label_density: 25 442 | legend_position: center 443 | x_axis_gridlines: false 444 | y_axis_gridlines: true 445 | show_view_names: true 446 | limit_displayed_rows: false 447 | y_axis_combined: true 448 | show_y_axis_labels: true 449 | show_y_axis_ticks: true 450 | y_axis_tick_density: default 451 | y_axis_tick_density_custom: 5 452 | show_x_axis_label: true 453 | show_x_axis_ticks: true 454 | x_axis_scale: auto 455 | y_axis_scale_mode: linear 456 | ordering: none 457 | show_null_labels: false 458 | show_totals_labels: false 459 | show_silhouette: false 460 | totals_color: "#808080" 461 | series_types: {} 462 | defaults_version: 1 463 | listen: 464 | Date Range: activity.comparison_type 465 | Advertiser Name: match_table_advertisers.advertiser_name 466 | row: 13 467 | col: 8 468 | width: 8 469 | height: 2 470 | - title: Users by State 471 | name: Users by State 472 | model: campaign_manager_marketplace_v2 473 | explore: impression 474 | type: looker_map 475 | fields: [impression.distinct_users, impression.country_code] 476 | filters: 477 | impression.state_region: "-NULL" 478 | impression.country_code: "-NULL" 479 | impression.selected_comparison: "%Last%" 480 | sorts: [impression.distinct_users desc] 481 | limit: 500 482 | column_limit: 50 483 | query_timezone: America/Los_Angeles 484 | map_plot_mode: points 485 | heatmap_gridlines: false 486 | heatmap_gridlines_empty: false 487 | heatmap_opacity: 0.5 488 | show_region_field: true 489 | draw_map_labels_above_data: true 490 | map_tile_provider: light 491 | map_position: fit_data 492 | map_scale_indicator: 'off' 493 | map_pannable: true 494 | map_zoomable: true 495 | map_marker_type: circle 496 | map_marker_icon_name: default 497 | map_marker_radius_mode: proportional_value 498 | map_marker_units: meters 499 | map_marker_proportional_scale_type: linear 500 | map_marker_color_mode: fixed 501 | show_view_names: true 502 | show_legend: true 503 | quantize_map_value_colors: false 504 | reverse_map_value_colors: false 505 | map_latitude: 39.842286020743394 506 | map_longitude: -96.064453125 507 | map_zoom: 3 508 | map_value_colors: ["#4285F4", "#185ABC"] 509 | map: usa 510 | map_projection: '' 511 | quantize_colors: false 512 | show_antarctica: false 513 | stacking: '' 514 | show_value_labels: false 515 | label_density: 25 516 | legend_position: center 517 | x_axis_gridlines: false 518 | y_axis_gridlines: true 519 | limit_displayed_rows: false 520 | y_axis_combined: true 521 | show_y_axis_labels: true 522 | show_y_axis_ticks: true 523 | y_axis_tick_density: default 524 | y_axis_tick_density_custom: 5 525 | show_x_axis_label: true 526 | show_x_axis_ticks: true 527 | x_axis_scale: auto 528 | y_axis_scale_mode: linear 529 | ordering: none 530 | show_null_labels: false 531 | show_totals_labels: false 532 | show_silhouette: false 533 | totals_color: "#808080" 534 | series_types: {} 535 | defaults_version: 1 536 | title_hidden: true 537 | listen: 538 | Date Range: impression.comparison_type 539 | Advertiser Name: match_table_advertisers.advertiser_name 540 | row: 24 541 | col: 0 542 | width: 12 543 | height: 10 544 | - name: DCM Insights 546 | Reach Overview 547 | type: text 548 | title_text: DCM Insights 550 | Reach Overview 551 | subtitle_text: How are my campaigns performing? 552 | body_text: "
Recommended Action\U0001f447 Drill into impressions\ 553 | \ and conversions to get an overview of campaign performance.
" 554 | row: 0 555 | col: 3 556 | width: 16 557 | height: 3 558 | - title: Conversions by Browser Type 559 | name: Conversions by Browser Type 560 | model: campaign_manager_marketplace_v2 561 | explore: activity 562 | type: looker_column 563 | fields: [activity.count, match_table_browsers.browser_platform, activity.event_date] 564 | pivots: [match_table_browsers.browser_platform] 565 | fill_fields: [activity.event_date] 566 | filters: 567 | activity.event_type: CONVERSION 568 | activity.selected_comparison: "%Last%" 569 | sorts: [activity.count desc 0, match_table_browsers.browser_platform] 570 | limit: 500 571 | column_limit: 50 572 | query_timezone: America/Los_Angeles 573 | x_axis_gridlines: false 574 | y_axis_gridlines: true 575 | show_view_names: true 576 | show_y_axis_labels: true 577 | show_y_axis_ticks: true 578 | y_axis_tick_density: default 579 | y_axis_tick_density_custom: 5 580 | show_x_axis_label: true 581 | show_x_axis_ticks: true 582 | y_axis_scale_mode: linear 583 | x_axis_reversed: false 584 | y_axis_reversed: false 585 | plot_size_by_field: false 586 | trellis: '' 587 | stacking: percent 588 | limit_displayed_rows: false 589 | legend_position: center 590 | point_style: none 591 | show_value_labels: false 592 | label_density: 25 593 | x_axis_scale: auto 594 | y_axis_combined: true 595 | ordering: none 596 | show_null_labels: false 597 | show_totals_labels: false 598 | show_silhouette: false 599 | totals_color: "#808080" 600 | series_types: {} 601 | series_colors: 602 | Firefox - activity.count: "#FBBC04" 603 | Google Chrome - activity.count: "#34A853" 604 | Safari (iPhone/iPod) - activity.count: "#4285F4" 605 | Safari - activity.count: "#EA4335" 606 | Other - activity.count: "#B31412" 607 | Opera - activity.count: "#E8EAED" 608 | Microsoft Internet Explorer - activity.count: "#137333" 609 | custom_color_enabled: false 610 | custom_color: forestgreen 611 | show_single_value_title: true 612 | show_comparison: false 613 | comparison_type: value 614 | comparison_reverse_colors: false 615 | show_comparison_label: true 616 | value_format: 0.000,," M" 617 | enable_conditional_formatting: false 618 | conditional_formatting_include_totals: false 619 | conditional_formatting_include_nulls: false 620 | defaults_version: 1 621 | show_null_points: true 622 | interpolation: linear 623 | listen: 624 | Date Range: activity.comparison_type 625 | Advertiser Name: match_table_advertisers.advertiser_name 626 | row: 15 627 | col: 0 628 | width: 12 629 | height: 7 630 | - title: 'AV: Eligible Imps' 631 | name: 'AV: Eligible Imps' 632 | model: campaign_manager_marketplace_v2 633 | explore: impression 634 | type: single_value 635 | fields: [impression.active_view_eligible_impressions] 636 | filters: 637 | impression.selected_comparison: "%Last%" 638 | sorts: [impression.active_view_eligible_impressions desc] 639 | limit: 500 640 | query_timezone: America/Los_Angeles 641 | custom_color_enabled: true 642 | show_single_value_title: true 643 | show_comparison: false 644 | comparison_type: value 645 | comparison_reverse_colors: false 646 | show_comparison_label: true 647 | enable_conditional_formatting: false 648 | conditional_formatting_include_totals: false 649 | conditional_formatting_include_nulls: false 650 | value_format: 0.000,," M" 651 | defaults_version: 1 652 | listen: 653 | Date Range: impression.comparison_type 654 | Advertiser Name: match_table_advertisers.advertiser_name 655 | row: 24 656 | col: 12 657 | width: 4 658 | height: 2 659 | - title: 'AV: Measureable Imp' 660 | name: 'AV: Measureable Imp' 661 | model: campaign_manager_marketplace_v2 662 | explore: impression 663 | type: single_value 664 | fields: [impression.active_view_measurable_impressions] 665 | filters: 666 | impression.selected_comparison: "%Last%" 667 | limit: 500 668 | query_timezone: America/Los_Angeles 669 | custom_color_enabled: true 670 | show_single_value_title: true 671 | show_comparison: false 672 | comparison_type: value 673 | comparison_reverse_colors: false 674 | show_comparison_label: true 675 | enable_conditional_formatting: false 676 | conditional_formatting_include_totals: false 677 | conditional_formatting_include_nulls: false 678 | value_format: 0.000,," M" 679 | defaults_version: 1 680 | listen: 681 | Date Range: impression.comparison_type 682 | Advertiser Name: match_table_advertisers.advertiser_name 683 | row: 24 684 | col: 16 685 | width: 4 686 | height: 2 687 | - title: Viewable Imps 688 | name: Viewable Imps 689 | model: campaign_manager_marketplace_v2 690 | explore: impression 691 | type: single_value 692 | fields: [impression.active_view_viewable_impressions] 693 | filters: 694 | impression.selected_comparison: "%Last%" 695 | limit: 500 696 | query_timezone: America/Los_Angeles 697 | custom_color_enabled: true 698 | show_single_value_title: true 699 | show_comparison: false 700 | comparison_type: value 701 | comparison_reverse_colors: false 702 | show_comparison_label: true 703 | enable_conditional_formatting: false 704 | conditional_formatting_include_totals: false 705 | conditional_formatting_include_nulls: false 706 | value_format: 0.000,," M" 707 | defaults_version: 1 708 | listen: 709 | Date Range: impression.comparison_type 710 | Advertiser Name: match_table_advertisers.advertiser_name 711 | row: 24 712 | col: 20 713 | width: 4 714 | height: 2 715 | - name: Impressions By Geo 716 | type: text 717 | title_text: Impressions By Geo 718 | row: 22 719 | col: 0 720 | width: 12 721 | height: 2 722 | - name: Viewability 723 | type: text 724 | title_text: Viewability 725 | row: 22 726 | col: 12 727 | width: 12 728 | height: 2 729 | - title: Viewable Impressions 730 | name: Viewable Impressions 731 | model: campaign_manager_marketplace_v2 732 | explore: impression 733 | type: looker_column 734 | fields: [impression.event_date, impression.active_view_viewable_impressions, match_table_operating_systems.operating_system] 735 | pivots: [match_table_operating_systems.operating_system] 736 | filters: 737 | impression.selected_comparison: "%Last%" 738 | sorts: [impression.event_date, match_table_operating_systems.operating_system] 739 | limit: 1000 740 | column_limit: 50 741 | query_timezone: America/Los_Angeles 742 | x_axis_gridlines: false 743 | y_axis_gridlines: true 744 | show_view_names: false 745 | show_y_axis_labels: true 746 | show_y_axis_ticks: true 747 | y_axis_tick_density: default 748 | y_axis_tick_density_custom: 5 749 | show_x_axis_label: true 750 | show_x_axis_ticks: true 751 | y_axis_scale_mode: linear 752 | x_axis_reversed: false 753 | y_axis_reversed: false 754 | plot_size_by_field: false 755 | trellis: '' 756 | stacking: normal 757 | limit_displayed_rows: false 758 | legend_position: center 759 | point_style: circle_outline 760 | show_value_labels: false 761 | label_density: 25 762 | x_axis_scale: auto 763 | y_axis_combined: true 764 | ordering: none 765 | show_null_labels: false 766 | show_totals_labels: false 767 | show_silhouette: false 768 | totals_color: "#808080" 769 | color_application: 770 | collection_id: google 771 | palette_id: google-categorical-0 772 | options: 773 | steps: 5 774 | y_axes: [{label: '', orientation: left, series: [{axisId: impression.count, id: impression.count, 775 | name: Impressions}], showLabels: true, showValues: true, unpinAxis: false, 776 | tickDensity: default, tickDensityCustom: 5, type: linear}, {label: !!null '', 777 | orientation: right, series: [{axisId: impression.distinct_users, id: impression.distinct_users, 778 | name: Distinct Users}], showLabels: true, showValues: true, unpinAxis: false, 779 | tickDensity: default, tickDensityCustom: 5, type: linear}] 780 | hidden_series: [] 781 | colors: ["#5245ed", "#1ea8df", "#353b49", "#49cec1", "#b3a0dd", "#db7f2a", "#706080", 782 | "#a2dcf3", "#776fdf", "#e9b404", "#635189"] 783 | series_types: {} 784 | series_colors: 785 | impression.count: "#137333" 786 | impression.distinct_users: "#C2DD67" 787 | impression.active_view_viewable_impressions: "#72D16D" 788 | Smartphone - impression.active_view_viewable_impressions: "#185ABC" 789 | Tablet - impression.active_view_viewable_impressions: "#EA8600" 790 | Microsoft Windows 10 - impression.active_view_viewable_impressions: "#34A853" 791 | show_null_points: true 792 | interpolation: linear 793 | value_labels: legend 794 | label_type: labPer 795 | map: auto 796 | map_projection: '' 797 | map_plot_mode: points 798 | heatmap_gridlines: false 799 | heatmap_opacity: 0.5 800 | show_region_field: true 801 | draw_map_labels_above_data: true 802 | map_tile_provider: positron 803 | map_position: custom 804 | map_scale_indicator: 'off' 805 | map_pannable: true 806 | map_zoomable: true 807 | map_marker_type: circle 808 | map_marker_icon_name: default 809 | map_marker_radius_mode: proportional_value 810 | map_marker_units: meters 811 | map_marker_proportional_scale_type: linear 812 | map_marker_color_mode: fixed 813 | show_legend: true 814 | quantize_map_value_colors: false 815 | quantize_colors: false 816 | map_latitude: 34.45221847282654 817 | map_longitude: 0.3515625 818 | map_zoom: 2 819 | defaults_version: 1 820 | listen: 821 | Date Range: impression.comparison_type 822 | Advertiser Name: match_table_advertisers.advertiser_name 823 | row: 26 824 | col: 12 825 | width: 12 826 | height: 8 827 | - name: Clicks, Conversions & Users by Browser Type 828 | type: text 829 | title_text: Clicks, Conversions & Users by Browser Type 830 | row: 11 831 | col: 0 832 | width: 24 833 | height: 2 834 | - title: Impressions Per User 835 | name: Impressions Per User 836 | model: campaign_manager_marketplace_v2 837 | explore: impression 838 | type: single_value 839 | fields: [impression.impressions_per_user, impression.selected_comparison] 840 | filters: 841 | impression.selected_comparison: "-EMPTY" 842 | sorts: [impression.selected_comparison] 843 | limit: 500 844 | column_limit: 50 845 | dynamic_fields: [{table_calculation: vs_previous_period, label: vs Previous Period, 846 | expression: "${impression.impressions_per_user}-offset(${impression.impressions_per_user},\ 847 | \ 1)", value_format: !!null '', value_format_name: decimal_2, _kind_hint: measure, 848 | _type_hint: number}] 849 | custom_color_enabled: true 850 | show_single_value_title: true 851 | show_comparison: true 852 | comparison_type: change 853 | comparison_reverse_colors: false 854 | show_comparison_label: true 855 | enable_conditional_formatting: false 856 | conditional_formatting_include_totals: false 857 | conditional_formatting_include_nulls: false 858 | defaults_version: 1 859 | listen: 860 | Date Range: impression.comparison_type 861 | Advertiser Name: match_table_advertisers.advertiser_name 862 | row: 3 863 | col: 16 864 | width: 8 865 | height: 2 866 | - title: Impressions Per User - Tiered 867 | name: Impressions Per User - Tiered 868 | model: campaign_manager_marketplace_v2 869 | explore: impression 870 | type: looker_column 871 | fields: [impression.count, user_impression_facts.impressions_per_user_tiered] 872 | filters: 873 | user_impression_facts.impressions_per_user_tiered: "-Below 1,-Undefined" 874 | impression.selected_comparison: "%Last%" 875 | sorts: [user_impression_facts.impressions_per_user_tiered] 876 | limit: 500 877 | column_limit: 50 878 | x_axis_gridlines: false 879 | y_axis_gridlines: true 880 | show_view_names: false 881 | show_y_axis_labels: true 882 | show_y_axis_ticks: true 883 | y_axis_tick_density: default 884 | y_axis_tick_density_custom: 5 885 | show_x_axis_label: true 886 | show_x_axis_ticks: true 887 | y_axis_scale_mode: linear 888 | x_axis_reversed: false 889 | y_axis_reversed: false 890 | plot_size_by_field: false 891 | trellis: '' 892 | stacking: '' 893 | limit_displayed_rows: false 894 | legend_position: center 895 | point_style: none 896 | show_value_labels: false 897 | label_density: 25 898 | x_axis_scale: auto 899 | y_axis_combined: true 900 | ordering: none 901 | show_null_labels: false 902 | show_totals_labels: false 903 | show_silhouette: false 904 | totals_color: "#808080" 905 | series_types: {} 906 | defaults_version: 1 907 | listen: 908 | Date Range: impression.comparison_type 909 | Advertiser Name: match_table_advertisers.advertiser_name 910 | row: 5 911 | col: 12 912 | width: 12 913 | height: 6 914 | - name: '' 915 | type: text 916 | title_text: '' 917 | subtitle_text: '' 918 | body_text: |- 919 | 920 |
921 | 922 |
923 | 924 | row: 0 925 | col: 19 926 | width: 5 927 | height: 3 928 | filters: 929 | - name: Date Range 930 | title: Date Range 931 | type: field_filter 932 | default_value: seven 933 | allow_multiple_values: true 934 | required: false 935 | ui_config: 936 | type: dropdown_menu 937 | display: inline 938 | options: 939 | - seven 940 | - fourteen 941 | - thirty 942 | model: campaign_manager_marketplace_v2 943 | explore: impression 944 | listens_to_filters: [] 945 | field: impression.comparison_type 946 | - name: Advertiser Name 947 | title: Advertiser Name 948 | type: field_filter 949 | default_value: '' 950 | allow_multiple_values: true 951 | required: false 952 | model: campaign_manager_marketplace_v2 953 | explore: impression 954 | listens_to_filters: [] 955 | field: match_table_advertisers.advertiser_name --------------------------------------------------------------------------------