Dziewięciu klientów, jeden raport miesięcznie dla każdego i osiem godzin pracy, z czego większość to kopiowanie liczb z jednego okna do drugiego. Tak wyglądał punkt wyjścia w małym zespole SEO i SEM, który obsługiwał sklepy internetowe oraz kilka firm usługowych. Ten case opisuje, jak automatyzacja raportowania skróciła ten czas do mniej więcej jednej godziny miesięcznie, czego nie dało się zautomatyzować i jakie błędy wyszły dopiero po pierwszym kwartale.
Najważniejsza teza na start: automatyzacja nie zastąpiła człowieka przy raporcie. Zabrała mu tylko tę część pracy, która nie wymagała myślenia, i zostawiła tę, za którą klient faktycznie płaci, czyli komentarz i rekomendacje.
Punkt wyjścia: gdzie uciekał czas
Zanim cokolwiek zmieniliśmy, przez jeden miesiąc mierzyliśmy, na co dokładnie idzie czas przy raportach. Bez tego pomiaru łatwo zautomatyzować nie to, co trzeba. Wynik był dość jednoznaczny:
| Czynność | Czas miesięcznie (9 klientów) | Udział |
|---|---|---|
| Eksport danych z Search Console, GA4 i Google Ads | ok. 2 h 40 min | 33% |
| Wklejanie liczb do arkuszy i prezentacji | ok. 2 h 10 min | 27% |
| Poprawianie formatowania i wykresów | ok. 1 h 20 min | 17% |
| Komentarz i wnioski | ok. 1 h 10 min | 15% |
| Wysyłka i odpowiedzi na pytania | ok. 40 min | 8% |
Ponad trzy czwarte czasu to była praca mechaniczna. Komentarz, czyli jedyna część raportu, którą klient czytał uważnie, dostawał średnio niecałe osiem minut na klienta. To był właściwy problem do rozwiązania, a nie sama liczba godzin.
Ujednolicenie źródeł danych i nazewnictwa
Pierwszy etap nie miał nic wspólnego z narzędziami do automatyzacji. Każdy klient miał inaczej nazwane kampanie, inne zdarzenia kluczowe w GA4 i inny zakres dat w raportach (część dostawała miesiąc kalendarzowy, część ostatnie 30 dni). Automatyzacja na takim bałaganie tylko szybciej produkuje niespójne liczby.
Ustaliliśmy trzy zasady obowiązujące wszystkich klientów:
- raport zawsze obejmuje pełny miesiąc kalendarzowy i porównanie rok do roku, a nie miesiąc do miesiąca,
- w GA4 każdy klient ma maksymalnie trzy zdarzenia kluczowe o identycznych nazwach technicznych,
- kampanie Google Ads mają prefiks typu kampanii (search, pmax, brand), żeby dało się je grupować jedną regułą.
Ujednolicenie zajęło około dwóch tygodni rozłożonych na kilka osób i było najbardziej żmudną częścią projektu. U dwóch klientów sklepowych przy okazji wyszły braki w danych produktowych, podobne do tych, które opisujemy w tekście o tym, kiedy GTIN, MPN i marka w feedzie są wymagane; poprawki feedu poszły osobnym torem.
Szablon raportu wspólny dla wszystkich klientów
Zamiast dziewięciu osobnych prezentacji powstał jeden szablon w Looker Studio z filtrem klienta. Struktura jest stała i ma pięć stron: podsumowanie dla zarządu, ruch organiczny, płatne kampanie, konwersje oraz strona z komentarzem analityka. Na pierwszej stronie zostawiliśmy wyłącznie metryki, które klient może powiązać z biznesem; dobór wskaźników opieraliśmy na zestawie opisanym w artykule jakie KPI z SEO i AI raportować zarządowi.
Z szablonu wyleciały za to średnia pozycja dla całej domeny i liczba zaindeksowanych stron. Klienci pytali o nie najczęściej, a jednocześnie żadna z tych liczb nie prowadziła do konkretnej decyzji. Jeśli ktoś bardzo chciał je widzieć, trafiały do załącznika.
Co dał wspólny szablon
Każda zmiana w układzie raportu jest teraz robiona raz, a nie dziewięć razy. Nowa osoba w zespole uczy się jednego raportu. Klienci dostają ten sam układ co miesiąc, więc szybciej znajdują to, czego szukają, i zadają mniej pytań w stylu „gdzie jest ten wykres z zeszłego miesiąca”.
Automatyczne pobieranie danych i odświeżanie
Dane z Search Console trafiają do BigQuery przez natywny masowy eksport, który opisaliśmy w poradniku o eksporcie Search Console do BigQuery. GA4 ma swój eksport do tej samej usługi, a Google Ads podpięliśmy przez transfer danych. Na tej warstwie działa kilka zapisanych zapytań, które co noc przeliczają tabele raportowe w jednym, wspólnym formacie.
Looker Studio czyta już tylko gotowe tabele, a nie surowe dane. To była decyzja świadoma: raport oparty bezpośrednio na konektorach GA4 i Search Console ładował się u największego klienta ponad minutę i regularnie przekraczał limity zapytań. Po przejściu na tabele zbiorcze strona otwiera się w kilka sekund. Koszt BigQuery przy tej skali to kilka złotych miesięcznie, głównie za przechowywanie danych.
Ostatni element automatu to harmonogram: pierwszego dnia miesiąca o szóstej rano tabele są przeliczone za cały poprzedni miesiąc, a zespół dostaje na Slacku listę klientów, u których któraś metryka zmieniła się o więcej niż 30% rok do roku. To jest sygnał, od których raportów zacząć.
Co zostało po stronie człowieka: komentarz i wnioski
Testowaliśmy generowanie komentarza przez model językowy na podstawie liczb z raportu. Teksty były poprawne, ale puste: opisywały to, co i tak widać na wykresie („ruch organiczny wzrósł o 12%”), i nie znały kontekstu, na przykład tego, że klient w połowie miesiąca wyłączył jedną kategorię produktów. Zostawiliśmy AI tylko do jednego zadania: przygotowania listy największych zmian w zapytaniach i stronach docelowych. Wnioski pisze analityk.
Komentarz ma stały format, maksymalnie pięć punktów:
- co się wydarzyło w liczbach (jedno zdanie),
- dlaczego, z odniesieniem do konkretnej zmiany lub zdarzenia,
- co robimy w kolejnym miesiącu,
- czego potrzebujemy od klienta,
- ryzyko, jeśli takie widać.
Na komentarz przypada teraz średnio około pięciu minut na klienta w tej najbardziej skondensowanej formie, bo analityk nie zaczyna od zera: ma przed sobą gotową listę anomalii i notatki z bieżącej pracy. Podobne podejście, w którym człowiek interpretuje dane, a nie je przepisuje, sprawdziło się też w projekcie, w którym młoda domena zdobyła pierwsze 1000 wejść z Google.
Kontrola jakości przed wysyłką
Automatyczny raport ma jedną niebezpieczną cechę: błąd powtarza się po cichu u wszystkich klientów naraz. Dlatego przed wysyłką działa krótka lista kontrolna:
- czy suma sesji w raporcie zgadza się z interfejsem GA4 z tolerancją do 2%,
- czy dane z Search Console obejmują pełny miesiąc (eksport bywa opóźniony o dwa, trzy dni),
- czy koszt kampanii zgadza się z fakturą Google Ads,
- czy komentarz odnosi się do liczb z tego miesiąca, a nie z poprzedniego.
Pierwsze trzy punkty sprawdza zapytanie SQL, które zwraca listę rozbieżności. Czwarty to szybkie przeczytanie raportu przez drugą osobę. Cała kontrola dla dziewięciu klientów zajmuje około piętnastu minut.
Efekty po kwartale i reakcje klientów
Po trzech miesiącach czas pracy nad raportami ustabilizował się na poziomie około godziny miesięcznie dla całego portfela: 45 minut na komentarze i 15 minut na kontrolę jakości. Wysyłka jest automatyczna, z linkiem do raportu i komentarzem w treści maila.
Dwie rzeczy zaskoczyły nas bardziej niż sama oszczędność czasu. Po pierwsze, liczba pytań od klientów po raporcie spadła mniej więcej o połowę, bo stały układ okazał się czytelniejszy niż dopasowywane ręcznie prezentacje. Po drugie, w pierwszym miesiącu jeden błąd w zapytaniu (zła strefa czasowa przy eksporcie GA4) przesunął dane o jeden dzień u wszystkich klientów jednocześnie. Kontrola sum go wyłapała, ale gdyby jej nie było, dziewięć raportów poszłoby z błędem. Od tamtej pory lista kontrolna jest obowiązkowa.
Jeden klient poprosił o powrót do prezentacji w PowerPoincie, bo raport trafiał do zarządu jako załącznik. Rozwiązanie było proste: eksport stron Looker Studio do PDF raz w miesiącu. Dla porównania, w innym naszym projekcie główną zmianą też było uporządkowanie danych, a nie nowe narzędzie, co opisaliśmy przy okazji case’u, w którym sklep trafił do rekomendacji ChatGPT.
Jeśli chcesz powtórzyć ten projekt u siebie, zacznij od tygodnia pomiaru czasu i od ujednolicenia nazw. Narzędzia są drugorzędne; dokumentacja Looker Studio i BigQuery wystarczy, żeby postawić pierwszą wersję w kilka dni.
FAQ
Czy automatyzacja raportowania wymaga BigQuery?
Nie. Przy kilku klientach i małym ruchu wystarczą natywne konektory Looker Studio. BigQuery opłaca się wtedy, gdy raporty ładują się wolno, przekraczają limity zapytań albo trzeba łączyć dane z kilku źródeł w jednej tabeli.
Ile trwało wdrożenie całego projektu?
Około sześciu tygodni: dwa na ujednolicenie nazewnictwa i źródeł danych, dwa na szablon i zapytania SQL, dwa na testy równoległe ze starymi raportami, zanim wyłączyliśmy ręczny proces.
Czy komentarz do raportu może pisać AI?
W naszym teście komentarze generowane automatycznie opisywały wykresy, ale nie wyjaśniały przyczyn zmian. AI dobrze sprawdza się przy wyszukiwaniu anomalii w danych, natomiast wnioski i rekomendacje warto zostawić analitykowi, który zna kontekst klienta.
Jak sprawdzić, czy automatyczny raport nie zawiera błędów?
Najprościej porównać kilka sum kontrolnych z interfejsami źródłowymi: sesje z GA4, kliknięcia z Search Console i koszt z Google Ads. Rozbieżność powyżej 2% to sygnał, żeby wstrzymać wysyłkę i sprawdzić zapytania.
Co zrobić, gdy klient chce raport w innym formacie?
Zostawić jeden szablon jako źródło prawdy i dodać eksport, na przykład do PDF. Tworzenie osobnej wersji raportu dla jednego klienta szybko odtwarza problem, który automatyzacja miała rozwiązać.
