Na czym to polega w sklepie
Kiedy WHERE nie wystarcza? Gdy chcesz odrzucić kampanie dopiero po zsumowaniu kosztów i przychodu. HAVING filtruje grupy po agregacji - np. kampanie z min. 500 zł wydatku i ROAS poniżej 2. Bez progu spendu wycinasz kampanie z jednym kliknięciem za 2 zł.
Przykład ze sklepu internetowego
Sklep DTC z dziesiątkami kampanii Search - media buyer chce listę do review: min. 500 zł spendu w maju i ROAS poniżej progu rentowności:
SELECT
campaign_name,
SUM(cost_pln) AS total_cost,
SUM(revenue_pln) AS total_revenue
FROM campaign_daily
WHERE report_date >= DATE '2026-05-01'
GROUP BY campaign_name
HAVING SUM(cost_pln) >= 500
AND SAFE_DIVIDE(SUM(revenue_pln), SUM(cost_pln)) < 2
ORDER BY total_cost DESC;
Co zrobić po stronie biznesu
- Wygeneruj tygodniową listę kampanii do pauzy i prześlij ją zespołowi Ads przed poniedziałkowym optymalizowaniem.
- Zastosuj próg min. liczby sesji przed porównaniem conversion rate między kanałami - odfiltruj szum.
- Dla feedu Shopping: SKU z dużą liczbą wyświetleń i niskim CTR - kandydaci do wykluczenia lub zmiany tytułu.
W skrócie
HAVING to filtr na poziomie kampanii i SKU, nie pojedynczego dnia. Próg minimalnego spendu chroni przed przedwczesnym wyłączaniem testów, które jeszcze nie zebrały danych.