clickio

cpm coef for pub proposal

Jan 19th, 2026
232
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. -- site category
  2. SELECT s.site_id, s.url_domain, sc.name, s.category_id  
  3. FROM rabota_db.site s
  4. LEFT JOIN rabota_db.site_category sc ON s.category_id = sc.category_id
  5. WHERE s.site_id = 228243;
  6.  
  7. -- all categories
  8. SELECT * FROM rabota_db.site_category sc;
  9.  
  10. -- region, currency
  11. SELECT country, commercial_region, c.code FROM `user` u JOIN currency c ON u.cur_id = c.currency_id WHERE user_id = 113825;
  12.  
  13. -- coefficients -------------------------------------------------------------------------------------------------------
  14.  
  15. -- LAST FULL 12 months
  16. SET @start_date = '2023-10-01';
  17. SET @end_date = '2024-09-30';
  18.  
  19. -- CHANGE AS NEEDED
  20. SET @region = 'italy';
  21.  
  22. DROP TEMPORARY TABLE IF EXISTS tmp_usd_rate;
  23. CREATE TEMPORARY TABLE tmp_usd_rate (KEY(`date`))
  24. SELECT
  25. e.`date`,
  26. AVG(e.exrate) AS exrate
  27. FROM rabota_db.exchange_rate e
  28. WHERE 1=1
  29. AND e.`date` BETWEEN @start_date AND @end_date
  30. AND e.source_cur_id = 6
  31. AND e.destination_cur_id = 2
  32. GROUP BY e.`date`;
  33.  
  34. DROP TEMPORARY TABLE IF EXISTS tmp_eur_rate;
  35. CREATE TEMPORARY TABLE tmp_eur_rate (KEY(`date`))
  36. SELECT
  37. e.`date`,
  38. AVG(e.exrate) AS exrate
  39. FROM rabota_db.exchange_rate e
  40. WHERE 1=1
  41. AND e.`date` BETWEEN @start_date AND @end_date
  42. AND e.source_cur_id = 6
  43. AND e.destination_cur_id = 4
  44. GROUP BY
  45. e.`date`;
  46.  
  47. SELECT
  48. YEAR(aus.date) AS `year`,
  49. MONTH(aus.`date`) AS `month`,
  50. ROUND(SUM(adv_expense)/SUM(external_view_count)*1000,8) AS eCPM_GBP,
  51. ROUND(SUM(adv_expense*u.exrate)/SUM(external_view_count)*1000,8) AS eCPM_USD,
  52. ROUND(SUM(adv_expense*e.exrate)/SUM(external_view_count)*1000,8) AS eCPM_EUR
  53. FROM tablo.`ad_unit_stat` aus
  54. JOIN tmp_usd_rate u #gbp to usd
  55. ON u.`date` = aus.`date`
  56. JOIN tmp_eur_rate e #gbp to eur
  57. ON e.`date` = aus.`date`
  58. WHERE
  59. commercial_region = @region
  60. AND aus.date BETWEEN @start_date AND @end_date
  61. GROUP BY
  62. YEAR(aus.date),
  63. MONTH(aus.`date`)
  64. ORDER BY MONTH(aus.`date`)
  65. ;
  66.  
  67. SELECT
  68. -- YEAR(aus.date) AS `year`,
  69. ROUND(SUM(adv_expense)/SUM(external_view_count)*1000,8) AS eCPM_GBP,
  70. ROUND(SUM(adv_expense*u.exrate)/SUM(external_view_count)*1000,8) AS eCPM_USD,
  71. ROUND(SUM(adv_expense*e.exrate)/SUM(external_view_count)*1000,8) AS eCPM_EUR
  72. FROM tablo.`ad_unit_stat` aus
  73. JOIN tmp_usd_rate u #gbp to usd
  74. ON u.`date` = aus.`date`
  75. JOIN tmp_eur_rate e #gbp to eur
  76. ON e.`date` = aus.`date`
  77. WHERE
  78. commercial_region = @region
  79. AND aus.date BETWEEN @start_date AND @end_date
  80. -- GROUP BY
  81. -- YEAR(aus.date)
  82. ;
  83.  
  84. -- coef based on adsense (rarely used)
  85. SET @start_date = '2023-01-01';
  86. SET @end_date = '2023-12-31';
  87.  
  88. SELECT YEAR(usd.date) AS `year`,
  89. sum(usd.adv_expense_usd),
  90. sum(usd.impressions),
  91. sum(usd.adv_expense_usd)/sum(usd.impressions)*1000 AS eCPM_USD
  92. FROM tablo.unified_site_data usd
  93. WHERE 1=1
  94. AND usd.site_id = 234790
  95. AND usd.account_type = 'adsense'
  96. AND usd.date BETWEEN @start_date AND @end_date
  97. GROUP BY YEAR(usd.date)
  98. ;
  99.  
  100. SELECT YEAR(usd.date) AS `year`, MONTH(usd.`date`) AS `month`,
  101. sum(usd.adv_expense_usd),
  102. sum(usd.impressions),
  103. sum(usd.adv_expense_usd)/sum(usd.impressions)*1000 AS eCPM_USD
  104. FROM tablo.unified_site_data usd
  105. WHERE 1=1
  106. AND usd.site_id = 234790
  107. AND usd.account_type = 'adsense'
  108. AND usd.date BETWEEN @start_date AND @end_date
  109. GROUP BY YEAR(usd.date), MONTH(usd.`date`)
  110. ;
Advertisement
Add Comment
Please, Sign In to add comment