Jak analizować efektywność kampanii Google Shopping
Spis treści
Twoje kampanie Google Shopping generują ruch, ale nie wiesz, które produkty faktycznie zarabiają, a które tylko przepalają budżet? ROAS na poziomie kampanii wygląda akceptowalnie, ale marża na koniec miesiąca nie domyka się. To klasyczny problem e-commerce, który da się rozwiązać, jeśli zejdziesz o poziom niżej i zaczniesz analizować dane produktowo.
Dlaczego ROAS na poziomie kampanii kłamie
Większość zespołów e-commerce patrzy na ROAS w Google Ads i zatrzymuje się na tym widoku. Kampania zwraca 4x? Świetnie. Problem w tym, że za tym agregatem ukrywa się rzeczywistość: 20% produktów generuje 80% konwersji, a reszta asortymentu pochłania budżet bez zwrotu.
Żeby zobaczyć prawdziwy obraz, musisz połączyć trzy źródła danych:
- Google Ads — koszt, kliknięcia, konwersje na poziomie produktu (raport Shopping → Produkty)
- GA4 — sesje, współczynnik konwersji, przychód z e-commerce
- System ERP/backend — marża produktowa, stany magazynowe, koszt zakupu
Samo Google Ads powie ci, ile wydałeś. Dopiero po połączeniu z marżą wiesz, czy kampania faktycznie zarabia.
Struktura analizy w Snowflake — od kosztu do marży
Jeśli masz dane z Google Ads zaciągnięte do Snowflake (np. przez Keboola Google Ads Extractor), możesz zbudować analizę produktową bez wychodzenia z SQL. Poniżej uproszczony przykład:
WITH ads_data AS (
SELECT
product_id,
product_title,
SUM(cost) AS total_cost,
SUM(clicks) AS total_clicks,
SUM(conversions) AS total_conversions,
SUM(conversion_value) AS total_revenue
FROM google_ads.shopping_product_stats
WHERE date BETWEEN '2024-01-01' AND '2024-03-31'
GROUP BY 1, 2
),
margin_data AS (
SELECT
product_id,
AVG(margin_pct) AS avg_margin,
AVG(unit_price) AS avg_price
FROM erp.products
GROUP BY 1
)
SELECT
a.product_id,
a.product_title,
a.total_cost,
a.total_revenue,
ROUND(a.total_revenue / NULLIF(a.total_cost, 0), 2) AS roas,
ROUND((a.total_revenue * m.avg_margin) / NULLIF(a.total_cost, 0), 2) AS margin_roas,
ROUND(a.total_cost / NULLIF(a.total_conversions, 0), 2) AS cpa,
a.total_conversions
FROM ads_data a
LEFT JOIN margin_data m ON a.product_id = m.product_id
ORDER BY a.total_cost DESC;Kluczowa kolumna to margin_roas — nie przychód podzielony przez koszt reklamy, ale marża podzielona przez koszt. Produkt z ROAS = 6x i marżą 15% jest mniej opłacalny niż produkt z ROAS = 3x i marżą 50%.
Segmentacja produktów według rentowności
Po zbudowaniu widoku z danymi kosztowo-marżowymi, następny krok to segmentacja. Używam prostej matrycy 2x2:
| | Wysoki ROAS | Niski ROAS |
|---|---|---|
| Wysoka marża | ⭐ Skaluj budżet | 🔍 Optymalizuj stawki |
| Niska marża | ⚠️ Monitoruj | ❌ Ogranicz/wyłącz |
W SQL możesz to zakodować jako:
SELECT
product_id,
product_title,
margin_roas,
avg_margin,
CASE
WHEN margin_roas >= 3 AND avg_margin >= 0.30 THEN 'SCALE'
WHEN margin_roas >= 3 AND avg_margin < 0.30 THEN 'MONITOR'
WHEN margin_roas < 3 AND avg_margin >= 0.30 THEN 'OPTIMIZE'
ELSE 'PAUSE'
END AS recommended_action
FROM product_performance_view
ORDER BY total_cost DESC;Progi margin_roas >= 3 i avg_margin >= 0.30 musisz skalibrować pod swój biznes — w elektronice marże 10-15% to norma, w kosmetykach często 50%+.
GA4 jako uzupełnienie danych Google Ads
Google Ads pokazuje konwersje, ale GA4 daje kontekst behawioralny, którego nie ma w raportach reklamowych. Szczególnie przydatne metryki:
- Współczynnik dodania do koszyka z ruchu Shopping — czy produkt, który klika, faktycznie trafia do koszyka?
- Czas do konwersji — produkty z długim cyklem zakupowym wymagają innej strategii stawek niż impulse buy
- Ścieżki konwersji — czy Shopping jest pierwszym touchpointem, czy domykającym?
W GA4 (BigQuery Export) możesz wyciągnąć ścieżki sesji z parametrem session_campaign i porównać zachowanie użytkowników z Shopping vs. innych kanałów. Często okazuje się, że Shopping inicjuje sprzedaż, ale konwersja "zapisuje się" na remarketing — i wtedy błędnie ograniczasz budżet Shopping.
Automatyzacja raportowania w Keboola
Ręczne łączenie danych z Google Ads, GA4 i ERP co miesiąc to strata czasu. Powtarzalny pipeline w Keboola wygląda tak:
- Extractory: Google Ads Extractor + BigQuery (GA4 export) + ekstraktor do bazy ERP
- Transformacje: SQL transformacje w Snowflake — czyszczenie danych, joinowanie po
product_id, obliczanie metryk - Orchestration: dzienny trigger uruchamiający pipeline o 6:00 rano
- Output: tabela wynikowa zasilająca dashboard Tableau z automatycznym alertem, gdy
margin_roasdowolnego produktu z budżetem > 500 PLN/mies. spada poniżej 1.5
Taki setup zajmuje 2-3 dni pracy jednorazowo, ale potem raport kampanii Shopping generuje się sam — bez angażowania analityka przy każdym cyklu.
TL;DR
- ROAS bez marży to połowa prawdy — zawsze łącz dane reklamowe z marżą produktową, żeby zobaczyć realną opłacalność
- Segmentuj produkty w matrycy ROAS × marża i przypisuj akcje: skaluj, optymalizuj, wstrzymaj
- GA4 + Google Ads razem pokazują pełną ścieżkę użytkownika — nie oceniaj Shopping tylko przez atrybucję last-click
- Snowflake SQL pozwala zbudować analizę produktową łącząc źródła danych bez narzędzi no-code
- Automatyzacja w Keboola eliminuje ręczną pracę i daje dzienny widok rentowności kampanii Shopping
Chcesz wiedzieć, gdzie tracisz klientów?
Przeanalizuję Twój lejek i wskażę, co poprawić najpierw. Pierwsza rozmowa jest bezpłatna.
Umów konsultacjęWięcej artykułów o data analytics:
Wróć do bloga