Looker Studio calculated fields to funkcja, która oddziela raport prezentacyjny od narzędzia analitycznego. Różnica jest prosta — bez pól kalkulowanych, blendingu i parametrów wy po prostu odmalowujecie to, co GA4 zwraca z konektora. Z nimi – liczycie własne metryki, łączycie źródła i budujecie interaktywne panele, które dopasowują się do pytań odbiorcy. W tym tekście pokażemy trzy warstwy zaawansowanej pracy w Looker Studio, które w 2026 dzielą dobry raport od dashboardu klasy enterprise.
Ten materiał jest częścią klastra analityka marketingowa 2026. Zakładamy, że macie już gotowy podstawowy dashboard GA4 w Looker Studio oraz rozumiecie, jak działa konfiguracja GA4 poza dokumentacją. Jeśli nie – zacznijcie tam, bo wszystkie techniki poniżej wymagają porządnego modelu pomiaru u źródła.
W skrócie
- Calculated fields pozwalają policzyć metryki, których GA4 nie eksponuje – np. pseudo-przychód, AI traffic share, średnia wartość sesji bez odstających punktów.
- Blending łączy do 5 źródeł danych (GA4, Google Ads, Search Console, Meta Ads, Sheet) w jeden wykres przez wspólny klucz – data, kampania, landing page.
- Parametry to interaktywne zmienne, które odbiorca raportu sam ustawia – np. próg ROAS, okno atrybucji, stawka marży – i wszystkie wykresy przeliczają się na żywo.
- Różnica między raportem z 3 źródeł i polami kalkulowanymi a prostym wykresem GA4 to średnio 30-45 minut budowy, ale raport ma 3x dłuższą żywotność u klienta.
- Najczęstszy błąd – blending bez zgodnego klucza – powoduje 8-15% błędów w sumach, które wyglądają wiarygodnie i trudno je wyłapać bez audytu.
Spis treści
- Co to są calculated fields i po co je używać
- Składnia pól kalkulowanych – 9 typów, które pokrywają 95% przypadków
- 10 praktycznych pól kalkulowanych dla marketingu
- Blending – łączenie źródeł w praktyce
- Parametry – interaktywność, która zmienia wszystko
- Wydajność i limity – kiedy Looker zwalnia
- Trzy realne wdrożenia – co liczyli i dlaczego
- Najczęstsze błędy w polach kalkulowanych
- FAQ – najczęstsze pytania
- Co dalej
Co to są calculated fields i po co je używać
Calculated fields to pola tworzone na poziomie źródła danych lub wykresu, które wyliczają wartość na podstawie istniejących wymiarów i metryk. W Looker Studio działają jak formuła w arkuszu – piszecie wyrażenie w języku podobnym do SQL, a Looker odświeża je przy każdym odświeżeniu danych.
Podstawowy przypadek – GA4 zwraca sessions i totalUsers, ale nie zwraca sessions per user jako natywnej metryki. Pole kalkulowane sessions / totalUsers daje tę liczbę bez eksportu do arkusza. To prosty przykład, ale pokazuje logikę – Looker jest warstwą prezentacyjną, a pola kalkulowane wypełniają luki między tym, co źródło daje, a tym, czego potrzebuje biznes. Zagadnienie to omawiamy szerzej w automatyzacji raportów klienckich.
Różnica między polem na źródle a polem w wykresie
Looker oferuje dwa miejsca, w których można stworzyć calculated field. Pierwsze – poziom źródła danych (Resource → Manage data sources → Edit → Add a field). Drugie – poziom konkretnego wykresu (prawy panel → Add field). Różnica jest kluczowa dla utrzymania raportu.
- Na poziomie źródła – pole jest dostępne we wszystkich wykresach korzystających z tego źródła. Zmiana w jednym miejscu odbija się wszędzie. Używajcie, gdy pole ma być używane wielokrotnie lub gdy definiuje metrykę biznesową.
- Na poziomie wykresu – pole istnieje tylko w danym wykresie. Inne wykresy go nie widzą. Używajcie do jednorazowych przekształceń lub testów.
Zasada kciuka – jeśli pole opisuje metrykę biznesową (pseudo-przychód, AI share, koszt na konwersję z marży), trzymajcie je na źródle. Jeśli to korekta kosmetyczna w konkretnym wykresie (zaokrąglenie, formatowanie, skrócona etykieta), trzymajcie lokalnie.
Ograniczenia calculated fields
Trzy istotne limity, o których warto wiedzieć przed zaczęciem projektowania:
- Brak okien czasowych w polach na wykresie – funkcje typu
PREVIOUS_PERIODczyDATE_DIFFwymagają kontekstu czasowego, którego wyrażenia na poziomie wykresu nie mają. Jeśli potrzebujecie porównania do poprzedniego okresu, zróbcie to przez comparison daterange w kontrolce, nie przez pole kalkulowane. - Agregacje zagnieżdżone – nie napiszecie
SUM(AVG(...)). Looker wymusza jednopoziomową agregację. Obejście – utwórzcie pole pośrednie, a kolejne liczy na nim. - Łączenie wymiarów z metrykami – nie można w jednym wyrażeniu pomnożyć wymiaru przez metrykę. Najpierw trzeba skonwertować wymiar przez
CAST()lubTODATE(), a potem użyć w wyrażeniu.
Składnia pól kalkulowanych – 9 typów, które pokrywają 95% przypadków
Looker Studio ma własny język wyrażeń, bliższy SQL niż formułom Excel. Nie jest to pełne SQL – brakuje joinów, podzapytań, CTE. Ale wystarcza do 95% pracy marketingowej. Poniżej dziewięć typów wyrażeń, które wracają najczęściej.
| Typ wyrażenia | Przykład | Kiedy użyć |
|---|---|---|
| Arytmetyka | revenue / sessions | Średnia wartość sesji, CPC, ROAS, CTR, dowolny stosunek. |
| Agregacja | SUM(revenue), AVG(sessions), COUNT_DISTINCT(user_id) | Wymuszenie sposobu agregacji, gdy Looker wybiera inny domyślny. |
| Warunek CASE | CASE WHEN channel = 'Direct' THEN 'Brand' ELSE 'Non-brand' END | Grupowanie, rekategoryzacja, segmentacja. |
| Regex | REGEXP_MATCH(url, '.*/blog/.*') | Kategoryzacja URL, czyszczenie UTM, parsowanie. |
| Konkatenacja | CONCAT(source, ' / ', medium) | Tworzenie własnych kluczy do blendingu. |
| Data | DATE_DIFF(event_date, first_session_date, 'DAY') | Cykle, dni od pierwszej sesji, retention. |
| NULL handling | IFNULL(revenue, 0), NULLIF(cost, 0) | Uniknięcie dzielenia przez zero, podstawienie braków. |
| Tekst | LOWER(trim(page_title)), LENGTH(path) | Standaryzacja, filtrowanie po długości. |
| Typ | CAST(session_id AS NUMBER), TODATE(timestamp, '%Y%m%d') | Konwersja typów, obowiązkowa przed agregacją. |
Funkcje agregujące – niuansów więcej niż się wydaje
Agregacje w Looker nie działają intuicyjnie, gdy pole kalkulowane bazuje na innym polu kalkulowanym. Ma to dwa praktyczne skutki. Pierwszy – SUM(revenue)/SUM(sessions) daje inny wynik niż AVG(revenue/sessions). Pierwszy to średnia ważona sesjami, drugi to średnia arytmetyczna po wierszach. W raporcie biznesowym prawie zawsze chcecie średniej ważonej – bo jedna sesja z dużym zakupem nie powinna mieć takiej samej wagi jak 100 sesji bez zakupu. Zagadnienie to omawiamy szerzej w dashboardu GA4 jako punkt startu.
Drugi – Looker ma specjalne funkcje, które nie są agregatorami, ale wyglądają jak one. PERCENTILE(revenue, 90) zwraca wartość percentyla. APPROX_COUNT_DISTINCT(user_id) to szybsza wersja COUNT DISTINCT, z błędem około 1-2%. Używajcie ich przy dużych zbiorach – zwykły COUNT DISTINCT na 50 mln rekordach potrafi zabić zapytanie do BigQuery.
10 praktycznych pól kalkulowanych dla marketingu
Zebraliśmy dziesięć pól, które w raportach marketingowych pojawiają się w ponad połowie projektów. Każde pochodzi z realnego wdrożenia – dla sklepów e-commerce, SaaS B2B i portali treściowych.
1. AI traffic share
SUM(CASE
WHEN source IN ('chatgpt.com', 'perplexity.ai', 'gemini.google.com', 'copilot.microsoft.com')
THEN sessions ELSE 0 END) / SUM(sessions)Procent ruchu z asystentów AI. W 2026 u większości firm to 0,5-4% – ale trend jest jednostajnie rosnący, a wartość transakcyjna tego ruchu często przekracza średnią o 40-80%.
2. Współczynnik konwersji z okrojeniem outlierów
CASE
WHEN sessions > 100
THEN conversions / sessions
ELSE NULL ENDPokazuje współczynnik konwersji tylko dla segmentów z co najmniej 100 sesjami. Reszta dostaje NULL i nie psuje średnich. Pozwala uniknąć sytuacji, w której nowa kampania z 3 sesjami i 1 zakupem pokazuje 33% konwersji.
3. Pseudo-przychód dla leadów
SUM(CASE
WHEN event_name = 'generate_lead' THEN 250
WHEN event_name = 'purchase' THEN purchase_revenue
ELSE 0 END)B2B nie ma przychodu w GA4, bo zakup dzieje się poza stroną. Przypisanie stałej wartości lead (np. 250 PLN na podstawie historycznej wartości) pozwala porównywać kampanie leadowe i e-commerce w jednej metryce. Wartość stałą powinniście wyliczyć z danych CRM – średni przychód z lead × prawdopodobieństwo konwersji lead na klienta. Zagadnienie to omawiamy szerzej w GA4 dla zaawansowanych.
4. Bounce rate w starym rozumieniu (GA4 nie ma natywnie)
1 - engagement_rateGA4 zastąpił bounce rate metryką zaangażowania (engagement rate w UI Google). Klienci, którzy pamiętają UA, pytają o bounce rate. To pole przywraca starą metrykę z zachowaniem nowej definicji (zaangażowana sesja = dłuższa niż 10 sekund, > 2 odsłony lub z konwersją).
5. Klasyfikacja landing page
CASE
WHEN REGEXP_MATCH(landing_page, '.*/blog/.*') THEN 'Blog'
WHEN REGEXP_MATCH(landing_page, '.*/produkt/.*') THEN 'Produkt'
WHEN REGEXP_MATCH(landing_page, '.*/kategoria/.*') THEN 'Kategoria'
WHEN landing_page = '/' THEN 'Strona główna'
ELSE 'Inne' ENDPozwala jednym wykresem pokazać, jaki typ strony generuje ile ruchu, konwersji, zaangażowania. Bez tego musicie przesiewać ręcznie setki URL-i.
6. Segmentacja brand vs non-brand
CASE
WHEN REGEXP_MATCH(query, '(nazwafirmy|marka1|marka2)') THEN 'Brand'
WHEN query IS NULL OR query = '(not set)' THEN 'Nieznane'
ELSE 'Non-brand' ENDDla Search Console – oddziela ruch brandowy od niebrandowego. Bez tego wszystkie metryki SEO są skażone naturalnym ruchem marki i nie widać rzeczywistej dynamiki pozyskiwania nowych użytkowników.
7. ROAS z korektą marży
(revenue * 0.35) / costZamiast pokazywać zwykły ROAS (przychód / wydatek), pokazujemy ROAS liczony na marży. Przy marży 35% ROAS 3,0 to w rzeczywistości zwrot 1,05 – a więc ledwo ponad koszt. Liczba 0,35 powinna być wyciągnięta do parametru (patrz sekcja niżej).
8. Czas od ostatniej sesji
DATE_DIFF(CURRENT_DATE(), MAX(session_date), 'DAY')Dla analizy retencji. Użytkownicy, którzy nie wrócili przez 30 dni, są klasyfikowani jako uśpieni. W raportach lojalnościowych niezbędne.
9. Skrócony URL do tabeli
REGEXP_REPLACE(landing_page, '^(.{60}).*', '1...')Obcina URL do 60 znaków z dodaniem „…”. Pozwala zmieścić długie adresy w tabeli bez łamania kolumn. Bez tego tabele z URL-ami w Lookerze wyglądają jak bazar.
10. Efektywny koszt na konwersję z uwzględnieniem view-through
cost / (conversions + (view_through_conversions * 0.3))W Meta Ads i Google Ads często liczycie CPA tylko na click-through. To pomija wpływ wyświetleń. Mnożnik 0,3 (waga view-through w stosunku do click-through) powinien być parametrem, bo zależy od branży i kanału.
Blending – łączenie źródeł w praktyce
Blending to mechanizm łączenia wielu źródeł danych w jeden zestaw, na którym można budować wykresy. Do 2022 był okrojony, od 2023 roku Looker Studio wspiera pełne joiny (INNER, LEFT, RIGHT, FULL OUTER, CROSS) na maksymalnie pięciu źródłach. W 2026 to jeden z dwóch najważniejszych mechanizmów w narzędziu. Więcej o tym zagadnieniu znajdziesz w pillarze o analityce marketingowej.
Kiedy używać blendingu
Trzy klasyczne scenariusze, w których blending jest niezastąpiony:
- Koszty z Google Ads + konwersje z GA4 – konektor Google Ads nie zwraca konwersji GA4 (tylko Google Ads conversions, które bywają inne). Łączenie daje pełny obraz ROAS z danych GA4.
- Search Console + GA4 – Search Console ma zapytania i kliknięcia, GA4 ma sesje i konwersje. Połączenie po landing page daje analizę „jakie zapytanie przyprowadza jakie konwersje”.
- Wiele GA4 properties – dla grup kapitałowych z 5-10 stronami WWW każda ma osobne property. Blending pozwala widzieć sumę w jednym wykresie (choć BigQuery z union jest lepszym rozwiązaniem).
Kluczowa reguła – zgodność klucza
Blending działa przez wspólny klucz. Jeśli klucz nie jest zgodny, liczby wyglądają rozsądnie, ale są fałszywe. Typowe pułapki:
- UTM-y w małych i wielkich literach – Google Ads ma
Google_Ads, ktoś wpisałgoogle_ads, blending ich nie łączy. Rozwiązanie – pole kalkulowaneLOWER(source)po obu stronach. - Data w różnych formatach – GA4 daje
YYYYMMDD, Sheet w ISOYYYY-MM-DD. Blending nie automatycznie konwertuje. Rozwiązanie –PARSE_DATE('%Y%m%d', date)na stronie GA4. - Strefy czasowe – GA4 domyślnie UTC, Google Ads – strefa konta. Różnica 1-2 godzin na granicy doby daje 3-5% błędu. Rozwiązanie – sprowadzić wszystko do jednej strefy (UTC lub Europe/Warsaw) po stronie źródła.
Typy joinów – kiedy co
Looker Studio oferuje pięć typów join. Różnice mają realny wpływ na liczby:
| Join | Co zwraca | Typowe użycie |
|---|---|---|
| INNER | Tylko wiersze obecne w obu źródłach | Kampanie z wydatkiem i konwersjami – uczciwy obraz. |
| LEFT | Wszystkie z lewego + pasujące z prawego | GA4 jako lewy, Google Ads jako prawy – widzimy cały ruch GA4, nawet bez danych kosztowych. |
| RIGHT | Wszystkie z prawego + pasujące z lewego | Rzadkie. Zwykle łatwiej odwrócić jako LEFT. |
| FULL OUTER | Wszystkie z obu źródeł | Audyt rozbieżności – co jest w Google Ads, ale nie w GA4, i odwrotnie. |
| CROSS | Iloczyn kartezjański | Niemal nigdy. Uwaga – szybko tworzy miliony wierszy. |
Praktyczny przykład – ROAS z Google Ads i GA4
Scenariusz – macie kampanię w Google Ads, chcecie zobaczyć rzeczywisty ROAS liczony na konwersjach GA4 (nie Google Ads conversions, które są nieco wyższe). Kroki:
- Dodajcie źródło Google Ads z konektora. Metryki –
cost,impressions,clicks. Wymiary –campaign_name,date. - Dodajcie źródło GA4. Metryki –
purchase_revenue,transactions. Wymiary –session_campaign,date. - Utwórzcie blend. Lewa strona – Google Ads, prawa – GA4. Klucze –
campaign_name = session_campaign,date = date. Typ – LEFT JOIN. - W calculated field na blendzie –
SUM(purchase_revenue) / SUM(cost). To jest ROAS realny. - Dodajcie filtr –
cost > 0, żeby nie pokazywać kampanii bez wydatku (dzielenie przez zero).
Wynik – tabela kampanii z wydatkiem Google Ads, przychodem GA4 i rzeczywistym ROAS. Różnica w stosunku do ROAS z samego Google Ads zwykle wynosi 10-25% na korzyść Google Ads (bo Google Ads liczy view-through i attribution z własnego modelu).
Parametry – interaktywność, która zmienia wszystko
Parametry to zmienne, które odbiorca raportu ustawia w panelu, a Looker przelicza wszystkie wykresy na żywo. Są dostępne od 2022 roku, ale do dziś większość raportów ich nie używa – szkoda, bo to najwyższa forma interaktywności w narzędziu.
Dwa typy parametrów
- Parametr numeryczny – liczba ustawiana suwakiem lub polem. Przykład – marża (25%, 35%, 45%), próg kosztu (100 PLN, 1000 PLN), mnożnik view-through (0,1-0,5).
- Parametr tekstowy / dropdown – wybór z listy. Przykład – wybór kraju, wybór kategorii produktu, wybór okna atrybucji (7/14/30/90 dni).
Jak utworzyć parametr
- Resource → Manage added data sources → Edit → Add a parameter.
- Nadajcie nazwę (np.
profitMargin), typ (Number, Text, Boolean), wartość domyślną i opcjonalnie listę dozwolonych wartości. - W calculated field odwołajcie się do parametru przez
@profitMargin. - Dodajcie kontrolkę parametru na stronie (Insert → Parameter control).
Praktyczny przykład – dynamiczna marża
Klient nie zna dokładnej marży, chce bawić się suwakiem i widzieć, jak ROAS zmienia się przy różnych założeniach. Rozwiązanie:
- Parametr
margin– typ Number, zakres 0,10-0,60, domyślnie 0,35. - Calculated field
ROAS na marży–(SUM(revenue) * @margin) / SUM(cost). - Kontrolka suwaka na stronie.
- Klient przesuwa suwak z 25% na 45%, widzi, że przy niskiej marży ROAS 2,0 jest niższy niż koszt, a przy wysokiej marży – bezpieczny.
To jest moment, w którym raport staje się narzędziem decyzyjnym, a nie tylko dokumentacją. Odbiorca nie musi wiedzieć SQL ani pytać analityka – sam eksperymentuje.
Parametry w blendingu i filtrach
Parametry można łączyć z blendingiem – np. parametr countryFilter, który zmienia źródło blendingu zależnie od wybranego kraju. Można też używać w filtrach – filtr z wyrażeniem sessions > @minSessions, gdzie @minSessions to parametr numeryczny. Klient ustawia próg 500, widzi tylko duże segmenty; ustawia 50 – widzi więcej szczegółów.
Wydajność i limity – kiedy Looker zwalnia
Trzy mechanizmy – calculated fields, blending, parametry – razem potrafią zabić wydajność. Raport, który ma 12 blendów i 30 pól kalkulowanych, potrafi ładować się 25 sekund. Granica cierpliwości odbiorcy to 6 sekund – powyżej 80% użytkowników zamyka raport.
Limity techniczne
| Element | Limit | Komentarz |
|---|---|---|
| Pola kalkulowane na źródle | Bez limitu twardego | Praktyczny próg – 50. Powyżej źródło staje się nieczytelne w edycji. |
| Blend | 5 źródeł | Więcej – trzeba rozbić na dwa blendy lub użyć BigQuery. |
| Parametry w raporcie | Bez limitu twardego | Praktyczny próg – 10. Więcej myli odbiorcę. |
| Czas odświeżenia wykresu | 60 sekund | Powyżej Looker pokazuje błąd „request took too long”. |
| Rozmiar Extract | 100 MB lub 10 mln wierszy | Powyżej – BigQuery jako źródło. |
Jak przyspieszyć raport
- Użyjcie Extract Data jako pośrednika – Looker robi snapshot danych z GA4 co godzinę, wykres korzysta ze snapshota, nie z live API. Czas ładowania spada 4-8 razy.
- Ograniczcie zakres dat na wykresach – domyślnie Looker pobiera 12 miesięcy. Ustawcie domyślnie 30 dni na wykresach stricte operacyjnych.
- Filtry po stronie źródła – zamiast filtrować na wykresie, filtrujcie przy imporcie. To przyspiesza blendowanie i kalkulacje.
- Zastąpcie blendy BigQuery union – gdy łączycie 3-5 GA4 properties, zrobienie unii w BigQuery przed Lookerem jest 5-10 razy szybsze niż blending.
- Ograniczcie liczbę wykresów na stronie – każdy wykres to osobne zapytanie. 15 wykresów = 15 równoległych zapytań. Łączcie dane w tabele.
Trzy realne wdrożenia – co liczyli i dlaczego
Aby teoria nie wisiała w powietrzu, pokazujemy trzy wdrożenia z ostatnich 18 miesięcy, w których pola kalkulowane, blending i parametry rozwiązały realne problemy biznesowe.
Wdrożenie 1: Sklep z modą dziecięcą, 800 tys. sesji/miesiąc
Problem: zarząd chciał widzieć rzeczywisty ROAS kampanii Google Ads uwzględniając koszt zwrotów. GA4 zwraca przychód z zakupu, nie z zakupu netto po zwrotach.
Rozwiązanie – blend GA4 + Sheet z danymi zwrotów z Shopify. Klucz – order_id (przerzucony do GA4 jako custom dimension). Pole kalkulowane na blendzie – SUM(purchase_revenue) - SUM(return_value) jako przychód netto. Dalej – net_revenue / cost jako ROAS netto. Parametr – okno zwrotów (14, 30, 60 dni) wpływający na filtr dat w tabeli zwrotów.
Efekt – wartości ROAS spadły średnio o 18% w stosunku do raportu natywnego. Zarząd zmienił strategię skalowania z „skalujemy wszystko powyżej 3,0″ na „skalujemy powyżej 3,6 netto”. Miesięczne oszczędności na nietrafionych decyzjach szacowane na 45 tys. PLN.
Wdrożenie 2: Agencja SEO obsługująca 23 klientów
Problem: standardowy raport miesięczny dla klienta wymagał 3,5 godziny pracy analityka – blendowanie Search Console + GA4, liczenie zmian YoY, kategoryzacja zapytań brand/non-brand.
Rozwiązanie – szablon Looker Studio z 12 polami kalkulowanymi (brand/non-brand na podstawie listy słów klienta, content clustering, YoY change), parametrem brandKeywords (tekst, comma-separated), który klient mógł dostroić po swojej stronie. Dla każdego klienta kopia szablonu, zmiana źródeł, edycja parametru – 25 minut.
Efekt – czas przygotowania raportu miesięcznego spadł z 3,5 godziny do 0,5 godziny. Dla 23 klientów oszczędność 70 godzin/miesiąc, co przy stawce analityka 180 PLN/godzinę daje 12 600 PLN/miesiąc. Dodatkowy zysk – klienci dostali możliwość samodzielnego dostrojenia listy słów brandowych, co wyeliminowało około 40% sporów o klasyfikację ruchu. Pełen obraz tematu znajdziesz w kompletnym przewodniku analityka marketingowa 2026.
Wdrożenie 3: SaaS B2B, raport lejka sprzedaży
Problem: dział marketingu używał HubSpot, sprzedaż – Pipedrive, analityka sesji – GA4. Każdy widział swój fragment lejka. Zarząd chciał jednej wizualizacji od wizyty po zamknięty deal.
Rozwiązanie – trzy źródła w Looker Studio: GA4 (sesje, konwersje MQL), HubSpot Export (MQL do SQL), Pipedrive (SQL do Closed-Won). Blending po wspólnym contact_email. Pola kalkulowane – mql_to_sql_rate, sql_to_won_rate, session_to_revenue. Parametr salesCycle (30, 60, 90, 180 dni) filtrujący wartości zamknięć względem daty pierwszej sesji.
Efekt – pierwszy raport w firmie, który łączy marketing z przychodem. Pozwolił zidentyfikować, że 72% przychodu pochodzi z 3 kanałów marketingowych (SEO organic, LinkedIn Ads, webinary), a pozostałe 5 kanałów generuje głównie ruch bez konwersji. Decyzja o wstrzymaniu 3 kanałów dała oszczędność 28 tys. PLN/miesiąc.
Najczęstsze błędy w polach kalkulowanych i blendingu
- Dzielenie przez zero bez zabezpieczenia –
revenue / cost, gdy cost = 0, daje błąd. Zawsze wrapujcie wIF(cost = 0, NULL, revenue/cost). - Mieszanie user-scoped i session-scoped – w GA4
totalUsersisessionsmają różne zakresy. Dzielenie bez świadomości daje liczby, które nic nie znaczą. - Blendy na nieunikalnym kluczu – klucz zawiera duplikaty, join mnoży wiersze. Suma przychodów wzrasta sztucznie o 30-200%. Klasyczne – blend po samej dacie bez kampanii, gdy jedna ze stron ma wiele rekordów na dzień.
- Agregacja przed blendem vs po blendzie – rezultat bywa różny. Standard to agregacja PRZED blendem, na poziomie źródła; blend łączy sumy, nie surowe wiersze.
- Parametry bez wartości domyślnej – pierwsze otwarcie raportu pokazuje błąd, bo parametr jest pusty.
- Brak walidacji typu – pole CAST z błędnym formatem zwraca NULL-e, które kaskadują przez cały raport.
- Nadużywanie CASE – 20-poziomowy CASE zabija wydajność. Lepiej utworzyć osobne źródło z mapą w Sheet i zblendować.
- Pola w wykresach zamiast na źródle – kopiowanie tego samego wyrażenia do 8 wykresów. Zmiana definicji wymaga 8 edycji. Trzymajcie metryki na źródle.
FAQ – najczęstsze pytania
Czy Looker Studio radzi sobie z dużymi blendami – 5 źródeł, miliony wierszy?
Teoretycznie tak – limit to 5 źródeł i żadnego twardego limitu wierszy. Praktycznie przy 3-5 źródłach i więcej niż 2 mln wierszy łącznie czas odświeżenia przekracza 20 sekund, a przy 10 mln wierszy zwykle widać błąd timeout. Obejście – przenieście blend do BigQuery (tam joiny są natywne i 5-10 razy szybsze), a Looker podepnijcie do gotowej tabeli wynikowej przez custom query. Dodatkowy koszt BigQuery to zwykle 1-5 USD miesięcznie nawet dla dużych raportów.
Jak zrobić dynamiczną kategoryzację, której klient może sam edytować?
Najprostszy sposób – Google Sheet z mapą (kolumna A: wartość oryginalna, B: kategoria), podpięty jako osobne źródło, zblendowany z głównym źródłem. Klient edytuje arkusz, raport się aktualizuje w ciągu 15 minut (cache konektora Sheet). Alternatywa bardziej profesjonalna – tabela w BigQuery z interfejsem edycji (np. przez Looker Studio Admin API lub Google Apps Script). Unikajcie CASE w calculated field – każda zmiana kategorii wymaga edycji raportu i ponownego udostępnienia.
Czy parametry działają w udostępnionym raporcie, czy tylko w edycji?
Parametry działają w obu trybach, ale z różnymi uprawnieniami. W trybie View klient widzi kontrolki parametrów i może zmieniać wartości – ale zmiany nie zapisują się (każdy odbiorca widzi swój domyślny stan). W trybie Edit zmiana wartości jest zapisywana na wszystkich widzów. Dla raportów klienckich – włączcie Parameters allowed in report URL, wtedy możecie wysłać klientowi link z ustawieniami parametrów preladowanymi. Dla analityka – używajcie trybu Edit do konfiguracji domyślnych.
Co się stanie, gdy usunę pole używane przez wiele wykresów?
Wykresy przestaną działać i pokażą błąd „field not found”. Looker Studio nie ostrzega przed usunięciem zależności. Zanim usuniecie pole na źródle – wyszukajcie je w raporcie przez Ctrl+F w trybie Edit lub przez zakładkę Fields usage w panelu źródła danych (funkcja dodana w 2024 roku). Alternatywnie – zamiast usuwać, zmieńcie formułę na zwracającą NULL i sprawdźcie, które wykresy się popsują. To bezpieczniejsza metoda niż trwałe usunięcie.
Jak debugować calculated field, który zwraca nieoczekiwane wartości?
Trzyetapowy proces. Po pierwsze – sprawdźcie typ danych każdego elementu wyrażenia. Dziewięć na dziesięć błędów to mieszanie typów (liczba z tekstem, data z numerem). Po drugie – rozbijcie wyrażenie na kawałki; zamiast jednego długiego CASE, utwórzcie trzy mniejsze pola i porównajcie ich wartości w tabeli. Po trzecie – użyjcie Data Explorer (funkcja Looker Studio Pro) lub utwórzcie tabelę z wszystkimi składowymi obok siebie. Typowe znaleziska – NULL-e w danych, spacje w tekstach, różne wielkości liter.
Czy Looker Studio Pro warto kupić dla zaawansowanych funkcji?
Pro (9 USD/user/miesiąc) daje – rozszerzone limity, Data Explorer, zarządzanie dostępem na poziomie wiersza (RLS), wsparcie techniczne, integrację z Looker (enterprise). Dla agencji obsługujących 5-20 klientów – zwykle nie warto, wersja darmowa wystarcza. Dla wewnętrznego zespołu w firmie > 50 osób, z potrzebą RLS i dedykowanego wsparcia – tak, 9 USD × 50 = 450 USD/miesiąc to mało w stosunku do kosztu alternatywy Tableau (70 USD × 50 = 3 500 USD). Porównanie narzędzi znajdziecie w materiale o automatyzacji raportów klienckich.
Jak policzyć zmianę procentową rok do roku w polu kalkulowanym?
Bezpośrednio w calculated field się nie da – brak dostępu do okna czasowego. Dwa obejścia. Pierwsze – użyjcie wbudowanego mechanizmu comparison date range w kontrolce dat (porównanie z poprzednim okresem). Wykres automatycznie pokazuje zmianę. Drugie – jeśli potrzebujecie zmiany YoY w tabeli – zróbcie blend tego samego źródła z przesuniętą datą (pole DATE_SUB(date, INTERVAL 1 YEAR)) i liczcie (this_year - last_year) / last_year. Trzecie, najczystsze – zrobcie to w BigQuery (LAG window function) i zblendujcie wynik z Lookerem.
Co dalej
Gdy opanujecie calculated fields, blending i parametry, Looker Studio przestaje być narzędziem do raportów i staje się interfejsem analitycznym. Kolejne kroki:
Warto pamiętać, że Looker Studio jest w 2026 najmocniej rozwijanym narzędziem Google w kategorii BI. W ciągu ostatnich 18 miesięcy doszły natywne Gemini-wnioski, rozszerzone joiny, Data Explorer, RLS. Spodziewajcie się, że część z opisanych obejść (np. parametry jako zamiennik okien czasowych) zniknie, gdy Google doda brakujące funkcje. Zaletą ekosystemu jest to, że uczenie się Looker Studio się opłaca – przez najbliższe 3-5 lat będzie to standard raportowania w każdym projekcie z GA4.
Ostatnia uwaga praktyczna — raport, który używa zaawansowanych mechanizmów, wymaga zaawansowanej dokumentacji. Każde pole kalkulowane powinno mieć opis (pole description na źródle) — bez tego po 6 miesiącach nikt nie będzie wiedział, dlaczego dana metryka liczy się tak, a nie inaczej. Zainwestujcie w opisy – to jest różnica między raportem, który służy zespołowi przez rok, a raportem, który klient zamówi od nowa po pół roku, bo „nikt już nie pamięta, jak to działa”.
Drugi element dojrzałej praktyki – wersjonowanie raportów. Looker Studio ma historię wersji w menu File, ale nie pozwala na przywracanie granularne (tylko całość raportu). Przed każdą większą zmianą zduplikujcie raport i nazwijcie datą (np. Dashboard klient X – 2026-04 przed zmianą MMM). Przy trzech takich kopiach miesięcznie archiwum rośnie, ale w razie regresji – macie szybki powrót bez ryzyka utraty godzin pracy.
Trzeci element – testowanie na świeżym źródle. Gdy klient zgłasza, że „liczby nie są prawidłowe”, pierwszym krokiem zawsze powinno być porównanie z natywnym interfejsem GA4 dla tego samego zakresu dat i segmentów. 70% zgłoszeń to nie błąd w raporcie, tylko różnice w sposobie myślenia klienta o metryce (np. klient myśli „konwersje” jako „purchase”, a w raporcie jest „generate_lead + purchase”). Zanim zaczniecie debugować – zgodnie ustalcie definicję.