|
| 1 | +WITH params AS ( |
| 2 | + SELECT |
| 3 | + DATE_SUB(CURRENT_DATE(), INTERVAL $EndDayInterval DAY) AS end_date, |
| 4 | + DATE_SUB(CURRENT_DATE(), INTERVAL $StartDayInterval DAY) AS start_date, |
| 5 | + CAST(GREATEST($Page, 1) AS INT64) AS page_number, |
| 6 | + CAST(COALESCE($PageSize, 25) AS INT64) AS page_size |
| 7 | +), |
| 8 | + |
| 9 | +perf AS ( |
| 10 | + SELECT |
| 11 | + p.agency_id, |
| 12 | + p.advertiser_id, |
| 13 | + p.campaign_id, |
| 14 | + p.order_id AS ad_order_id, |
| 15 | + p.site_id, |
| 16 | + SUM(p.bids) AS bids, |
| 17 | + SUM(p.impressions) AS imps, |
| 18 | + SUM(p.clicks) AS clicks, |
| 19 | + SUM(IFNULL(p.total_spend, 0)) AS spend |
| 20 | + FROM `viant-performance.metrics.fact_performance_hour` p |
| 21 | + JOIN params prm ON TRUE |
| 22 | + WHERE p.event_date BETWEEN prm.start_date AND prm.end_date |
| 23 | + GROUP BY 1,2,3,4,5 |
| 24 | +), |
| 25 | + |
| 26 | +active_domains AS ( |
| 27 | + SELECT DISTINCT |
| 28 | + s.ID AS site_id, |
| 29 | + COALESCE( |
| 30 | + NULLIF(TRIM(s.DISPLAY_NAME), ''), |
| 31 | + NULLIF(TRIM(s.NAME), ''), |
| 32 | + CAST(s.ID AS STRING) |
| 33 | + ) AS site_name, |
| 34 | + (LOWER(REGEXP_REPLACE(COALESCE(NULLIF(TRIM(s.NAME), ''), NULLIF(TRIM(s.MOBILE_URL), ''), ''),r'^(?:https?://)?(?:www\.)?', ''))) AS site_domain |
| 35 | + FROM `viant-adelphic.ci_ads.CI_SITE` s |
| 36 | + JOIN perf p ON p.site_id = s.ID |
| 37 | +), |
| 38 | + |
| 39 | +jounce AS ( |
| 40 | + SELECT |
| 41 | + j.root_domain, |
| 42 | + ARRAY_AGG(j.jounce_classification ORDER BY j.share_of_demand DESC LIMIT 1)[OFFSET(0)] AS jounce_classification, |
| 43 | + ARRAY_AGG(j.jounce_directness ORDER BY j.share_of_demand DESC LIMIT 1)[OFFSET(0)] AS jounce_directness, |
| 44 | + MAX(j.share_of_supply) AS share_of_supply, |
| 45 | + MAX(j.share_of_demand) AS share_of_demand |
| 46 | + FROM ( |
| 47 | + SELECT * FROM `viant-ad-ops.jounce.monetization_v3_*` |
| 48 | + WHERE _TABLE_SUFFIX BETWEEN |
| 49 | + FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 3 DAY)) |
| 50 | + AND FORMAT_DATE('%Y%m%d', CURRENT_DATE()) |
| 51 | + QUALIFY _TABLE_SUFFIX = MAX(_TABLE_SUFFIX) OVER() |
| 52 | + ) j |
| 53 | + JOIN active_domains ad ON j.root_domain = ad.site_domain |
| 54 | + GROUP BY j.root_domain |
| 55 | +), |
| 56 | + |
| 57 | +enriched AS ( |
| 58 | + SELECT |
| 59 | + p.agency_id, |
| 60 | + p.advertiser_id, |
| 61 | + p.campaign_id, |
| 62 | + p.ad_order_id, |
| 63 | + p.site_id, |
| 64 | + ad.site_name, |
| 65 | + ad.site_domain, |
| 66 | + COALESCE(j.jounce_classification, 'Unknown') AS jounce_classification, |
| 67 | + COALESCE(j.jounce_directness, 'Unknown') AS jounce_directness, |
| 68 | + IFNULL(j.share_of_supply, 0) AS share_of_supply, |
| 69 | + IFNULL(j.share_of_demand, 0) AS share_of_demand, |
| 70 | + p.bids, |
| 71 | + p.imps, |
| 72 | + p.clicks, |
| 73 | + p.spend, |
| 74 | + SAFE_DIVIDE(p.clicks, NULLIF(p.imps, 0)) AS ctr, |
| 75 | + SAFE_DIVIDE(p.spend, NULLIF(p.imps, 0)) * 1000 AS ecpm |
| 76 | + FROM perf p |
| 77 | + JOIN active_domains ad ON p.site_id = ad.site_id |
| 78 | + LEFT JOIN jounce j ON ad.site_domain = j.root_domain |
| 79 | +), |
| 80 | + |
| 81 | +ranked AS ( |
| 82 | + SELECT |
| 83 | + e.*, |
| 84 | + ROW_NUMBER() OVER (ORDER BY e.spend DESC, e.site_id) AS rn |
| 85 | + FROM enriched e |
| 86 | + WHERE e.spend > 0 |
| 87 | +), |
| 88 | + |
| 89 | +paged AS ( |
| 90 | + SELECT r.* |
| 91 | + FROM ranked r |
| 92 | + JOIN params prm ON TRUE |
| 93 | + WHERE r.rn BETWEEN ((prm.page_number - 1) * prm.page_size + 1) |
| 94 | + AND (prm.page_number * prm.page_size) |
| 95 | +) |
| 96 | + |
| 97 | +SELECT v.* |
| 98 | +FROM paged v |
| 99 | +ORDER BY v.rn |
0 commit comments