Проблемные строки по кампаниям за последний месяц
| Строк с любым минусом | Строк с минусом в расходе | Источник и кампания | Строк с минусом в кликах | Строк с минусом в выручке | Строк с минусом в показах | Строк, где кликов больше показов |
|---|---|---|---|---|---|---|
| 0 | 0 | VK Реклама / VK Кухни | 0 | 0 | 0 | 0 |
| 0 | 0 | Яндекс Директ / Бренд | 0 | 0 | 0 | 0 |
| 0 | 0 | Яндекс Директ / Ретаргетинг | 0 | 0 | 0 | 0 |
| 0 | 0 | Яндекс Директ / РСЯ Шкафы | 0 | 0 | 0 | 0 |
| 0 | 0 | VK Реклама / VK Освещение | 0 | 0 | 0 | 0 |
| 0 | 0 | Продвижение Ozon / Ozon Освещение | 0 | 0 | 0 | 0 |
| 0 | 0 | Яндекс Директ / Поиск Диваны | 0 | 0 | 0 | 0 |
| 0 | 0 | Яндекс Директ / Поиск Кухни | 0 | 0 | 0 | 0 |
| 0 | 0 | Яндекс Директ / РСЯ Диваны | 0 | 0 | 0 | 0 |
| 0 | 0 | Яндекс Директ / Поиск Кровати | 0 | 0 | 0 | 0 |
| 0 | 0 | VK Реклама / VK Диваны | 0 | 0 | 0 | 0 |
| 0 | 0 | Продвижение WB / WB Освещение | 0 | 0 | 0 | 0 |
| 0 | 0 | Продвижение Ozon / Ozon Кровати | 0 | 0 | 0 | 0 |
| 0 | 0 | Продвижение WB / WB Диваны | 0 | 0 | 0 | 0 |
| 0 | 0 | Продвижение Ozon / Ozon Шкафы | 0 | 0 | 0 | 0 |
SQL, по которому посчитано
WITH month_ads AS (
SELECT *
FROM ads
WHERE date >= (SELECT date_trunc('month', max(date)) FROM ads)
AND date < (SELECT date_trunc('month', max(date)) + INTERVAL 1 MONTH FROM ads)
)
SELECT
source || ' / ' || campaign AS campaign_label,
count(DISTINCT date) AS days_checked,
count(*) FILTER (WHERE impressions < 0 OR clicks < 0 OR cost < 0 OR orders < 0 OR revenue < 0) AS bad_rows,
count(*) FILTER (WHERE impressions < 0) AS neg_impressions_rows,
count(*) FILTER (WHERE clicks < 0) AS neg_clicks_rows,
count(*) FILTER (WHERE cost < 0) AS neg_cost_rows,
count(*) FILTER (WHERE revenue < 0) AS neg_revenue_rows,
count(*) FILTER (WHERE clicks > impressions) AS clicks_above_impressions
FROM month_ads
GROUP BY source, campaign
ORDER BY bad_rows DESC, neg_cost_rows DESC, neg_clicks_rows DESC
LIMIT 30