SET @start_date = '2023-01-01'; #SET @end_date = '2023-08-31'; SET @end_date = DATE_SUB(CURDATE(), INTERVAL 1 DAY); SET @user_id = 151256; DROP TEMPORARY TABLE IF EXISTS tmp_usd_rate; CREATE TEMPORARY TABLE tmp_usd_rate (KEY (`date`)) SELECT e.`date`, AVG(e.exrate) AS exrate FROM rabota_db.exchange_rate e WHERE e.`date` BETWEEN DATE(@start_date) AND DATE(@end_date) AND e.source_cur_id = 6 AND e.destination_cur_id = 2 GROUP BY e.`date`; DROP TEMPORARY TABLE IF EXISTS tmp_eur_rate; CREATE TEMPORARY TABLE tmp_eur_rate (KEY (`date`)) SELECT e.`date`, AVG(e.exrate) AS exrate FROM rabota_db.exchange_rate e WHERE e.`date` BETWEEN DATE(@start_date) AND DATE(@end_date) AND e.source_cur_id = 6 AND e.destination_cur_id = 4 GROUP BY e.`date`; DROP TEMPORARY TABLE IF EXISTS tmp_rub_rate; CREATE TEMPORARY TABLE tmp_rub_rate (KEY (`date`)) SELECT e.`date`, AVG(e.exrate) AS exrate FROM rabota_db.exchange_rate e WHERE e.`date` BETWEEN DATE(@start_date) AND DATE(@end_date) AND e.source_cur_id = 6 AND e.destination_cur_id = 1 GROUP BY e.`date`; DELETE FROM tablo.unified_site_data WHERE `date` BETWEEN DATE(@start_date) AND DATE(@end_date) AND user_id = @user_id; #Insert GA INSERT INTO tablo.unified_site_data ( `date`, account_id, account_type, url, user_id, site_id, advertiser_id, advertiser_name, device, sessions, pageviews, users, content_platform ) SELECT ga.`date`, ci.ga_view_id, 'analytics', IFNULL(s.url_domain, s.url) AS uri, s.user_id, ci.site_id, 0, 'Google Analytics', CONCAT(UPPER(LEFT(ga.device_category, 1)), SUBSTR(ga.device_category, 2)) AS device, SUM(ga.sessions), SUM(ga.pageviews), SUM(ga.users), IF(data_source='(not set)' OR data_source='web', 'Web', 'AMP') AS content_platform FROM imports.`ga_unified_reporting` ga JOIN rabota_db.ga_custom_import ci ON ci.ga_import_id = ga.ga_import_id JOIN rabota_db.site s ON s.site_id = ci.site_id WHERE ga.`date` BETWEEN DATE(@start_date) AND DATE(@end_date) AND (ci.field_group='unified_reporting_devices_users') AND s.`user_id` = @user_id GROUP BY `date`,ci.ga_view_id,uri,user_id,ci.site_id,device,content_platform; #Insert GA4 AMP INSERT INTO tablo.unified_site_data ( `date`, account_id, account_type, url, user_id, site_id, advertiser_id, advertiser_name, device, sessions, pageviews, users, content_platform ) SELECT ga.`date`, ci.ga_view_id, 'analytics', IFNULL(s.url_domain, s.url) AS url, s.user_id, ci.site_id, 0, 'Google Analytics', 'Mobile' AS device, SUM(ga.sessions), SUM(ga.pageviews), SUM(ga.users), 'AMP' AS content_platform FROM imports.`ga_unified_reporting` ga JOIN rabota_db.ga_custom_import ci ON ci.ga_import_id = ga.ga_import_id JOIN rabota_db.site s ON s.site_id = ci.site_id WHERE ga.`date` BETWEEN DATE(@start_date) AND DATE(@end_date) AND ci.field_group = 'ga4_unified_reporting_no_devices' AND s.user_id = @user_id GROUP BY `date`,ci.ga_view_id,url,user_id,ci.site_id,device,content_platform; # for subtracting from total in order to get web DROP TEMPORARY TABLE IF EXISTS tmp_ga4_amp; CREATE TEMPORARY TABLE tmp_ga4_amp (KEY (`date`, site_id, device_category)) SELECT ga.`date`, ci.site_id, 'mobile' AS device_category, SUM(ga.sessions) AS sessions, SUM(ga.pageviews) AS pageviews, SUM(ga.users) AS users FROM imports.`ga_unified_reporting` ga JOIN rabota_db.ga_custom_import ci ON ci.ga_import_id = ga.ga_import_id JOIN rabota_db.site s ON s.site_id = ci.site_id WHERE ga.`date` BETWEEN DATE(@start_date) AND DATE(@end_date) AND ci.field_group = 'ga4_unified_reporting_no_devices' AND s.user_id = @user_id GROUP BY `date`, ci.site_id; #Insert GA4 Web INSERT INTO tablo.unified_site_data ( `date`, account_id, account_type, url, user_id, site_id, advertiser_id, advertiser_name, device, sessions, pageviews, users, content_platform ) SELECT ga.`date`, ci.ga_view_id, 'analytics', IFNULL(s.url_domain, s.url) AS url, s.user_id, ci.site_id, 0, 'Google Analytics', IF(ga.device_category = 'smart tv', 'Desktop', CONCAT(UPPER(LEFT(ga.device_category, 1)), SUBSTR(ga.device_category, 2))) AS device, SUM(ga.sessions) - SUM(IFNULL(gaamp.sessions, 0)), SUM(ga.pageviews) - SUM(IFNULL(gaamp.pageviews, 0)), SUM(ga.users) - SUM(IFNULL(gaamp.users, 0)), 'Web' AS content_platform FROM imports.`ga_unified_reporting` ga JOIN rabota_db.ga_custom_import ci ON ci.ga_import_id = ga.ga_import_id JOIN rabota_db.site s ON s.site_id = ci.site_id LEFT JOIN tmp_ga4_amp gaamp ON ga.date = gaamp.date AND ci.site_id = gaamp.site_id AND ga.device_category = gaamp.device_category WHERE ga.`date` BETWEEN DATE(@start_date) AND DATE(@end_date) AND ci.field_group = 'ga4_unified_reporting_devices' AND s.user_id = @user_id GROUP BY `date`,ci.ga_view_id,url,user_id,ci.site_id,device,content_platform; INSERT INTO tablo.unified_site_data ( `date`, account_id, account_type, url, user_id, site_id, advertiser_id, advertiser_name, device, requests, impressions, clicks, pageviews_adsense, adv_expense_gbp, partner_gain, partner_gain_gbp, content_platform, viewability_viewed, viewability_measured, adv_expense_usd, partner_gain_usd, adv_expense_eur, partner_gain_eur, adv_expense_rub, partner_gain_rub ) SELECT a.`date`, a.client_id, 'adsense', IFNULL(IFNULL(s.url_domain, s.url), a.`domain`), IFNULL(r.clickio_user_id, s.user_id), r.clickio_site_id, 0, 'Google AdSense', IF(a.platform_type = 'HighEndMobile', 'Mobile', IF(a.platform_type = 'Tablet', 'Tablet', 'Desktop')), SUM(a.ad_requests), SUM(a.impressions), SUM(a.clicks), SUM(a.page_views), SUM(a.earnings_gbp), SUM(a.earnings), SUM(a.earnings_gbp), CASE WHEN a.content_platform = 'Web Story' THEN 'Web' ELSE a.content_platform END AS content_platform, SUM(a.measurability * a.impressions * a.viewability), SUM(a.measurability * a.impressions), ROUND(SUM(a.earnings_gbp) * usd.exrate, 8), ROUND(SUM(a.earnings_gbp) * usd.exrate, 8), ROUND(SUM(a.earnings_gbp) * eur.exrate, 8), ROUND(SUM(a.earnings_gbp) * eur.exrate, 8), ROUND(SUM(a.earnings_gbp) * rub.exrate, 8), ROUND(SUM(a.earnings_gbp) * rub.exrate, 8) FROM imports.adsense_raw_data a JOIN tablo.unified_adsense_domain_relation r ON r.`domain` = a.`domain` AND r.client_id = a.client_id LEFT JOIN rabota_db.site s ON s.site_id = r.clickio_site_id JOIN tmp_usd_rate usd ON usd.`date` = a.`date` JOIN tmp_eur_rate eur ON eur.`date` = a.`date` JOIN tmp_rub_rate rub ON rub.date = a.date WHERE a.`date` BETWEEN DATE(@start_date) AND DATE(@end_date) AND r.clickio_user_id = @user_id GROUP BY a.`date`, a.client_id, IFNULL(IFNULL(s.url_domain, s.url), a.`domain`), r.clickio_site_id, IF(a.platform_type = 'HighEndMobile', 'Mobile', IF(a.platform_type = 'Tablet', 'Tablet', 'Desktop')), CASE WHEN a.content_platform = 'Web Story' THEN 'Web' ELSE a.content_platform END HAVING SUM(a.earnings) > 0; # ad manager - by sites INSERT INTO tablo.unified_site_data ( `date`, account_id, account_type, url, user_id, site_id, advertiser_id, advertiser_name, device, requests, impressions, clicks, adv_expense_gbp, partner_gain, partner_gain_gbp, content_platform, adv_expense_usd, partner_gain_usd, adv_expense_eur, partner_gain_eur, adv_expense_rub, partner_gain_rub, demand_channel, viewability_viewed, viewability_measured ) SELECT a.`date`, a.network_id, 'admanager', IFNULL(IFNULL(s.url_domain, s.url), f.`domain`), s.user_id, r.clickio_site_id, 0, 'Google Ad Manager', IF(a.device_category_name = 'Smartphone', 'Mobile', IF(a.device_category_name = 'Tablet', 'Tablet', 'Desktop')), SUM(a.requests), SUM(a.impressions), SUM(a.clicks), SUM(a.revenue * IFNULL(e.exrate, 1)), SUM(a.revenue), SUM(a.revenue * IFNULL(e.exrate, 1)), IF(a.inventory_types = 'AMP', 'AMP', 'Web'), ROUND(SUM(a.revenue * IFNULL(e.exrate, 1)) * usd.exrate, 8), ROUND(SUM(a.revenue * IFNULL(e.exrate, 1)) * usd.exrate, 8), ROUND(SUM(a.revenue * IFNULL(e.exrate, 1)) * eur.exrate, 8), ROUND(SUM(a.revenue * IFNULL(e.exrate, 1)) * eur.exrate, 8), ROUND(SUM(a.revenue * IFNULL(e.exrate, 1)) * rub.exrate, 8), ROUND(SUM(a.revenue * IFNULL(e.exrate, 1)) * rub.exrate, 8), a.demand_channel, SUM(a.viewable_impressions), SUM(a.measurable_impressions) FROM tablo.unified_reporting_gam a JOIN tablo.unified_reporting_gam_site_filter f ON a.date = f.date AND a.ad_unit_id = f.ad_unit_id AND a.network_id = f.network_id JOIN tablo.unified_gam_domain_relation r ON r.`domain` = f.`domain` AND r.network_id = a.network_id LEFT JOIN rabota_db.site s ON s.site_id = r.clickio_site_id LEFT JOIN rabota_db.exchange_rate e ON a.date = e.date AND r.currency_id = e.source_cur_id AND e.destination_cur_id = 6 AND e.exchange_rate_source_id = 3 JOIN tmp_usd_rate usd ON usd.`date` = a.`date` JOIN tmp_eur_rate eur ON eur.`date` = a.`date` JOIN tmp_rub_rate rub ON rub.date = a.date WHERE a.`date` BETWEEN DATE(@start_date) AND DATE(@end_date) AND r.clickio_user_id = @user_id GROUP BY a.`date`, a.network_id, IFNULL(IFNULL(s.url_domain, s.url), f.`domain`), r.clickio_site_id, IF(a.device_category_name = 'Smartphone', 'Mobile', IF(a.device_category_name = 'Tablet', 'Tablet', 'Desktop')), IF(a.inventory_types = 'AMP', 'AMP', 'Web'), a.demand_channel #HAVING # SUM(a.revenue) > 0 ; DROP TEMPORARY TABLE IF EXISTS tmp_sites_dates; CREATE TEMPORARY TABLE tmp_sites_dates (KEY (site_id, `date`)) SELECT DISTINCT site_id, `date` FROM tablo.unified_site_data WHERE `date` BETWEEN DATE(@start_date) AND DATE(@end_date) AND NOT site_id IS NULL AND user_id = @user_id; INSERT INTO tablo.unified_site_data ( `date`, account_id, account_type, url, user_id, site_id, advertiser_id, device, requests, impressions, clicks, adv_expense_gbp, partner_gain, partner_gain_gbp, content_platform, viewability_viewed, viewability_measured, external_view_count, adv_expense_usd, partner_gain_usd, adv_expense_eur, partner_gain_eur, adv_expense_rub, partner_gain_rub, pub_adserver_cost, pub_adserver_cost_gbp, company_adserver_cost, company_adserver_cost_gbp ) SELECT npm.`date`, s.user_id, 'clickio', IFNULL(s.url_domain, s.url), s.user_id, npm.site_id, npm.adv_net_id, IF(npm.device_type IN ('High-end mobile devices', 'Smartphone'), 'Mobile', IF(npm.device_type IN ('Tablets', 'Tablet'), 'Tablet', 'Desktop')), SUM(npm.external_first_request_count), SUM(npm.external_first_view_count), SUM(npm.hit_count), SUM(npm.adv_expense_gbp), SUM(npm.partner_gain), SUM(npm.partner_gain_gbp), CASE WHEN sd24.is_amp = 1 THEN 'AMP' ELSE 'Web' END, SUM(npm.external_viewability_viewed_impressions), SUM(npm.external_viewability_measured_impressions), SUM(npm.external_view_count), ROUND(SUM(npm.adv_expense_gbp) * usd.exrate, 8), ROUND(SUM(npm.partner_gain_gbp) * usd.exrate, 8), ROUND(SUM(npm.adv_expense_gbp) * eur.exrate, 8), ROUND(SUM(npm.partner_gain_gbp) * eur.exrate, 8), ROUND(SUM(npm.adv_expense_gbp) * rub.exrate, 8), ROUND(SUM(npm.partner_gain_gbp) * rub.exrate, 8), SUM(npm.`pub_adserver_cost`) AS pub_adserver_cost, SUM(npm.`pub_adserver_cost_gbp`) AS pub_adserver_cost_gbp, SUM(npm.`company_adserver_cost`) AS company_adserver_cost, SUM(npm.`company_adserver_cost_gbp`) AS company_adserver_cost_gbp FROM tablo.npm_site_area_device_stat npm JOIN tmp_sites_dates tmp ON tmp.site_id = npm.site_id AND tmp.`date` = npm.`date` AND npm.site_id <> 230029 JOIN rabota_db.site s ON s.site_id = npm.site_id JOIN rabota_db.site_area_design_24 sd24 ON sd24.site_area_id = npm.site_area_id JOIN tmp_usd_rate usd ON usd.`date` = npm.`date` JOIN tmp_eur_rate eur ON eur.`date` = npm.`date` JOIN tmp_rub_rate rub ON rub.date = npm.date GROUP BY npm.`date`, IFNULL(s.url_domain, s.url), npm.site_id, npm.adv_net_id, IF(npm.device_type IN ('High-end mobile devices', 'Smartphone'), 'Mobile', IF(npm.device_type IN ('Tablets', 'Tablet'), 'Tablet', 'Desktop')), CASE WHEN sd24.is_amp = 1 THEN 'AMP' ELSE 'Web' END # HAVING # SUM(npm.partner_gain) > 0 # for inclusion of Direct Campaigns (cmf_id: 123) ; UPDATE tablo.unified_site_data u LEFT JOIN rabota_db.demand_source d ON d.cmf_system_id = u.advertiser_id SET u.advertiser_name = IFNULL(d.name, 'Unknown') WHERE u.account_type = 'clickio' AND u.date BETWEEN DATE(@start_date) AND DATE(@end_date) AND u.`user_id` = @user_id; DELETE FROM tablo.unified_ad_unit_data WHERE `date` BETWEEN DATE(@start_date) AND DATE(@end_date) AND user_id = @user_id; INSERT INTO tablo.unified_ad_unit_data ( `date`, account_id, account_type, url, user_id, site_id, ad_unit_id, ad_unit_name, advertiser_id, advertiser_name, device, requests, impressions, clicks, adv_expense_gbp, partner_gain, partner_gain_gbp, content_platform, viewability_viewed, viewability_measured, adsense_ad_format ) SELECT a.`date`, a.client_id, 'adsense', IFNULL(IFNULL(s.url_domain, s.url), a.`domain`), IFNULL(r.clickio_user_id, s.user_id), r.clickio_site_id, a.unit_id, a.unit_name, 0, 'Google AdSense', IF(a.platform_type = 'HighEndMobile', 'Mobile', IF(a.platform_type = 'Tablet', 'Tablet', 'Desktop')), SUM(a.ad_requests), SUM(a.impressions), SUM(a.clicks), SUM(a.earnings_gbp), SUM(a.earnings), SUM(a.earnings_gbp), CASE WHEN a.content_platform = 'Web Story' THEN 'Web' ELSE a.content_platform END AS content_platform, SUM(a.measurability * a.impressions * a.viewability), SUM(a.measurability * a.impressions), 'In-page' FROM imports.adsense_adunit_raw_data a JOIN tablo.unified_adsense_domain_relation r ON r.`domain` = a.`domain` AND r.client_id = a.client_id LEFT JOIN rabota_db.site s ON s.site_id = r.clickio_site_id WHERE a.`date` BETWEEN DATE(@start_date) AND DATE(@end_date) AND r.clickio_user_id = @user_id GROUP BY a.`date`, a.client_id, IFNULL(IFNULL(s.url_domain, s.url), a.`domain`), r.clickio_site_id, a.unit_id, IF(a.platform_type = 'HighEndMobile', 'Mobile', IF(a.platform_type = 'Tablet', 'Tablet', 'Desktop')), CASE WHEN a.content_platform = 'Web Story' THEN 'Web' ELSE a.content_platform END HAVING SUM(a.earnings) > 0; INSERT INTO tablo.unified_ad_unit_data ( `date`, account_id, account_type, url, user_id, site_id, ad_unit_id, ad_unit_name, advertiser_id, advertiser_name, device, requests, impressions, clicks, adv_expense_gbp, partner_gain, partner_gain_gbp, content_platform, demand_channel, viewability_viewed, viewability_measured ) SELECT a.`date`, a.network_id, 'admanager', IFNULL(IFNULL(s.url_domain, s.url), f.`domain`), s.user_id, r.clickio_site_id, a.ad_unit_id, a.ad_unit_name, 0, 'Google Ad Manager', IF(a.device_category_name = 'Smartphone', 'Mobile', IF(a.device_category_name = 'Tablet', 'Tablet', 'Desktop')), SUM(a.requests), SUM(a.impressions), SUM(a.clicks), SUM(a.revenue * IFNULL(e.exrate, 1)), SUM(a.revenue), SUM(a.revenue * IFNULL(e.exrate, 1)), IF(a.inventory_types = 'AMP', 'AMP', 'Web'), a.demand_channel, SUM(a.viewable_impressions), SUM(a.measurable_impressions) FROM tablo.unified_reporting_gam a JOIN tablo.unified_reporting_gam_site_filter f ON a.date = f.date AND a.ad_unit_id = f.ad_unit_id AND a.network_id = f.network_id JOIN tablo.unified_gam_domain_relation r ON r.`domain` = f.`domain` AND r.network_id = a.network_id LEFT JOIN rabota_db.site s ON s.site_id = r.clickio_site_id LEFT JOIN rabota_db.exchange_rate e ON a.date = e.date AND r.currency_id = e.source_cur_id AND e.destination_cur_id = 6 AND e.exchange_rate_source_id = 3 WHERE a.`date` BETWEEN DATE(@start_date) AND DATE(@end_date) AND r.clickio_user_id = @user_id GROUP BY a.`date`, a.network_id, IFNULL(IFNULL(s.url_domain, s.url), f.`domain`), r.clickio_site_id, a.ad_unit_id, IF(a.device_category_name = 'Smartphone', 'Mobile', IF(a.device_category_name = 'Tablet', 'Tablet', 'Desktop')), IF(a.inventory_types = 'AMP', 'AMP', 'Web'), a.demand_channel #HAVING # SUM(a.revenue) > 0 ; INSERT INTO tablo.unified_ad_unit_data ( `date`, account_id, account_type, url, user_id, site_id, ad_unit_id, advertiser_id, device, requests, impressions, clicks, adv_expense_gbp, partner_gain, partner_gain_gbp, content_platform, viewability_viewed, viewability_measured, external_view_count, pub_adserver_cost, pub_adserver_cost_gbp, company_adserver_cost, company_adserver_cost_gbp ) SELECT npm.`date`, s.user_id, 'clickio', IFNULL(s.url_domain, s.url), s.user_id, npm.site_id, IFNULL(asa.site_area_id, npm.site_area_id), npm.adv_net_id, IF(npm.device_type IN ('High-end mobile devices', 'Smartphone'), 'Mobile', IF(npm.device_type IN ('Tablets', 'Tablet'), 'Tablet', 'Desktop')), SUM(npm.external_first_request_count), SUM(npm.external_first_view_count), SUM(npm.hit_count), SUM(npm.adv_expense_gbp), SUM(npm.partner_gain), SUM(npm.partner_gain_gbp), CASE WHEN sd24.is_amp = 1 THEN 'AMP' ELSE 'Web' END, SUM(npm.external_viewability_viewed_impressions), SUM(npm.external_viewability_measured_impressions), SUM(npm.external_view_count), SUM(npm.`pub_adserver_cost`) AS pub_adserver_cost, SUM(npm.`pub_adserver_cost_gbp`) AS pub_adserver_cost_gbp, SUM(npm.`company_adserver_cost`) AS company_adserver_cost, SUM(npm.`company_adserver_cost_gbp`) AS company_adserver_cost_gbp FROM tablo.npm_site_area_device_stat npm JOIN tmp_sites_dates tmp ON tmp.site_id = npm.site_id AND tmp.`date` = npm.`date` AND npm.site_id <> 230029 LEFT JOIN rabota_db.attached_site_areas asa ON asa.attached_site_area_id = npm.site_area_id JOIN rabota_db.site s ON s.site_id = npm.site_id JOIN rabota_db.site_area_design_24 sd24 ON sd24.site_area_id = IFNULL(asa.site_area_id, npm.site_area_id) GROUP BY npm.`date`, IFNULL(s.url_domain, s.url), npm.site_id, IFNULL(asa.site_area_id, npm.site_area_id), npm.adv_net_id, IF(npm.device_type IN ('High-end mobile devices', 'Smartphone'), 'Mobile', IF(npm.device_type IN ('Tablets', 'Tablet'), 'Tablet', 'Desktop')), CASE WHEN sd24.is_amp = 1 THEN 'AMP' ELSE 'Web' END # HAVING # SUM(npm.partner_gain) > 0 # for inclusion of Direct Campaigns (cmf_id: 123) ; UPDATE tablo.unified_ad_unit_data u LEFT JOIN rabota_db.demand_source d ON d.cmf_system_id = u.advertiser_id SET u.advertiser_name = IFNULL(d.name, 'Unknown') WHERE u.account_type = 'clickio' AND u.date BETWEEN DATE(@start_date) AND DATE(@end_date) AND u.`user_id` = @user_id; UPDATE tablo.unified_ad_unit_data u LEFT JOIN rabota_db.site_area sa ON sa.site_area_id = u.ad_unit_id SET u.ad_unit_name = IFNULL(sa.name, 'no_ad_unit_name') WHERE u.account_type = 'clickio' AND u.date BETWEEN DATE(@start_date) AND DATE(@end_date) AND u.`user_id` = @user_id; INSERT INTO tablo.unified_ad_unit_data ( `date`, account_id, account_type, url, user_id, site_id, ad_unit_id, ad_unit_name, advertiser_id, advertiser_name, device, requests, impressions, clicks, adv_expense_gbp, partner_gain, partner_gain_gbp, content_platform, adsense_ad_format, viewability_viewed, viewability_measured ) SELECT a.`date`, a.client_id, 'adsense', IFNULL(IFNULL(s.url_domain, s.url), a.`domain`), IFNULL(r.clickio_user_id, s.user_id), r.clickio_site_id, 0, '[auto ads]', 0, 'Google AdSense', IF(a.platform_type = 'HighEndMobile', 'Mobile', IF(a.platform_type = 'Tablet', 'Tablet', 'Desktop')), SUM(a.ad_requests), SUM(a.impressions), SUM(a.clicks), SUM(a.earnings_gbp), SUM(a.earnings), SUM(a.earnings_gbp), CASE WHEN a.content_platform = 'Web Story' THEN 'Web' ELSE a.content_platform END AS content_platform, a.ad_format_name, SUM(a.measurability * a.impressions * a.viewability), SUM(a.measurability * a.impressions) FROM imports.`adsense_raw_data` a JOIN tablo.unified_adsense_domain_relation r ON r.`domain` = a.`domain` AND r.client_id = a.client_id LEFT JOIN rabota_db.site s ON s.site_id = r.clickio_site_id WHERE a.`date` BETWEEN DATE(@start_date) AND DATE(@end_date) AND a.ad_placement_name = 'Auto ads' AND r.clickio_user_id = @user_id GROUP BY a.`date`, a.client_id, IFNULL(IFNULL(s.url_domain, s.url), a.`domain`), r.clickio_site_id, IF(a.platform_type = 'HighEndMobile', 'Mobile', IF(a.platform_type = 'Tablet', 'Tablet', 'Desktop')), CASE WHEN a.content_platform = 'Web Story' THEN 'Web' ELSE a.content_platform END, a.ad_format_name HAVING SUM(a.earnings) > 0; #update site_data adsense access DROP TEMPORARY TABLE IF EXISTS tmp_mcm_access; CREATE TEMPORARY TABLE tmp_mcm_access(KEY(account_id)) SELECT CONCAT('ca-', child_network_id) AS account_id FROM rabota_db.`mcm_publisher_date_settings` WHERE mcm_type = 'adsense' ; #active API access DROP TEMPORARY TABLE IF EXISTS tmp_active_api_access; CREATE TEMPORARY TABLE tmp_active_api_access (KEY(account_id)) SELECT CONCAT("ca-", network_id) AS account_id, google_user_settings_id FROM rabota_db.`adsense_custom_import` WHERE google_user_settings_id NOT IN (1, 2, 3, 6, 15, 84, 9, 72, 148, 197, 463) AND last_import_status = 'OK' AND today_every_minute IS NOT NULL GROUP BY CONCAT("ca-", network_id) ; # set area_type UPDATE tablo.unified_ad_unit_data a JOIN rabota_db.site_area_type sat ON sat.site_area_id = a.ad_unit_id SET a.area_type = sat.`site_area_type_pub` WHERE a.`account_type` = 'clickio' AND a.`date` BETWEEN DATE(@start_date) AND DATE(@end_date) AND a.user_id = @user_id; #Adsense null user_id DROP TEMPORARY TABLE IF EXISTS tmp_adsense_null; CREATE TEMPORARY TABLE tmp_adsense_null (KEY(client_id, user_id)) SELECT a.client_id, b.user_id FROM tablo.`unified_adsense_domain_relation` a JOIN rabota_db.`site` b ON a.clickio_site_id = b.site_id GROUP BY a.client_id; UPDATE tablo.`unified_site_data` a JOIN tmp_adsense_null b ON a.`account_id` = b.client_id SET a.`user_id` = b.user_id WHERE a.account_type = 'adsense' AND a.`user_id` IS NULL AND a.`date` BETWEEN @start_date AND @end_date AND a.user_id = @user_id; UPDATE tablo.`unified_ad_unit_data` a JOIN tmp_adsense_null b ON a.`account_id` = b.client_id SET a.`user_id` = b.user_id WHERE a.account_type = 'adsense' AND a.`user_id` IS NULL AND a.`date` BETWEEN @start_date AND @end_date AND a.`user_id` = @user_id; #Adsense account name DROP TEMPORARY TABLE IF EXISTS tmp_adsense_name; CREATE TEMPORARY TABLE tmp_adsense_name (KEY(client_id)) SELECT a.client_id, a.account_name FROM imports.`adsense_raw_data` a WHERE DATE >= CURDATE() - INTERVAL 30 DAY AND a.account_name IS NOT NULL GROUP BY a.client_id; UPDATE tablo.`unified_site_data` a JOIN tmp_adsense_name b ON a.`account_id` = b.client_id SET a.`adsense_account` = b.account_name WHERE account_type = 'adsense' AND a.`date` BETWEEN @start_date AND @end_date AND a.`user_id` = @user_id; UPDATE tablo.`unified_ad_unit_data` a JOIN tmp_adsense_name b ON a.`account_id` = b.client_id SET a.`adsense_account` = b.account_name WHERE account_type = 'adsense' AND a.`date` BETWEEN @start_date AND @end_date AND a.`user_id` = @user_id; #Commercial region and publisher currency DROP TEMPORARY TABLE IF EXISTS tmp_region_cur; CREATE TEMPORARY TABLE tmp_region_cur (KEY(user_id)) SELECT a.user_id, a.commercial_region, b.code FROM rabota_db.`user` a JOIN rabota_db.`currency` b ON a.cur_id = b.currency_id; UPDATE tablo.`unified_site_data` a JOIN tmp_region_cur b ON a.`user_id` = b.user_id SET a.`commercial_region` = b.commercial_region, a.`currency` = b.code WHERE a.`date` BETWEEN @start_date AND @end_date AND a.`user_id` = @user_id; UPDATE tablo.`unified_ad_unit_data` a JOIN tmp_region_cur b ON a.`user_id` = b.user_id SET a.`commercial_region` = b.commercial_region, a.`currency` = b.code WHERE a.`date` BETWEEN @start_date AND @end_date AND a.`user_id` = @user_id; # site category UPDATE tablo.unified_site_data u JOIN rabota_db.site s ON s.site_id = u.site_id JOIN rabota_db.site_category c ON s.category_id = c.category_id SET u.site_category = IFNULL(c.name, 'Unknown') WHERE u.date BETWEEN @start_date AND @end_date AND u.`user_id` = @user_id;