Looker Studio advanced: calculated fields, blending, parametry

16 kwietnia, 2026

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

  1. Co to są calculated fields i po co je używać
  2. Składnia pól kalkulowanych – 9 typów, które pokrywają 95% przypadków
  3. 10 praktycznych pól kalkulowanych dla marketingu
  4. Blending – łączenie źródeł w praktyce
  5. Parametry – interaktywność, która zmienia wszystko
  6. Wydajność i limity – kiedy Looker zwalnia
  7. Trzy realne wdrożenia – co liczyli i dlaczego
  8. Najczęstsze błędy w polach kalkulowanych
  9. FAQ – najczęstsze pytania
  10. 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:

  1. Brak okien czasowych w polach na wykresie – funkcje typu PREVIOUS_PERIOD czy DATE_DIFF wymagają 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.
  2. Agregacje zagnieżdżone – nie napiszecie SUM(AVG(...)). Looker wymusza jednopoziomową agregację. Obejście – utwórzcie pole pośrednie, a kolejne liczy na nim.
  3. Łączenie wymiarów z metrykami – nie można w jednym wyrażeniu pomnożyć wymiaru przez metrykę. Najpierw trzeba skonwertować wymiar przez CAST() lub TODATE(), 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żeniaPrzykładKiedy użyć
Arytmetykarevenue / sessionsŚrednia wartość sesji, CPC, ROAS, CTR, dowolny stosunek.
AgregacjaSUM(revenue), AVG(sessions), COUNT_DISTINCT(user_id)Wymuszenie sposobu agregacji, gdy Looker wybiera inny domyślny.
Warunek CASECASE WHEN channel = 'Direct' THEN 'Brand' ELSE 'Non-brand' ENDGrupowanie, rekategoryzacja, segmentacja.
RegexREGEXP_MATCH(url, '.*/blog/.*')Kategoryzacja URL, czyszczenie UTM, parsowanie.
KonkatenacjaCONCAT(source, ' / ', medium)Tworzenie własnych kluczy do blendingu.
DataDATE_DIFF(event_date, first_session_date, 'DAY')Cykle, dni od pierwszej sesji, retention.
NULL handlingIFNULL(revenue, 0), NULLIF(cost, 0)Uniknięcie dzielenia przez zero, podstawienie braków.
TekstLOWER(trim(page_title)), LENGTH(path)Standaryzacja, filtrowanie po długości.
TypCAST(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 END

Pokazuje 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_rate

GA4 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' END

Pozwala 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' END

Dla 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) / cost

Zamiast 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:

  1. UTM-y w małych i wielkich literach – Google Ads ma Google_Ads, ktoś wpisał google_ads, blending ich nie łączy. Rozwiązanie – pole kalkulowane LOWER(source) po obu stronach.
  2. Data w różnych formatach – GA4 daje YYYYMMDD, Sheet w ISO YYYY-MM-DD. Blending nie automatycznie konwertuje. Rozwiązanie – PARSE_DATE('%Y%m%d', date) na stronie GA4.
  3. 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:

JoinCo zwracaTypowe użycie
INNERTylko wiersze obecne w obu źródłachKampanie z wydatkiem i konwersjami – uczciwy obraz.
LEFTWszystkie z lewego + pasujące z prawegoGA4 jako lewy, Google Ads jako prawy – widzimy cały ruch GA4, nawet bez danych kosztowych.
RIGHTWszystkie z prawego + pasujące z lewegoRzadkie. Zwykle łatwiej odwrócić jako LEFT.
FULL OUTERWszystkie z obu źródełAudyt rozbieżności – co jest w Google Ads, ale nie w GA4, i odwrotnie.
CROSSIloczyn kartezjańskiNiemal 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:

  1. Dodajcie źródło Google Ads z konektora. Metryki – cost, impressions, clicks. Wymiary – campaign_name, date.
  2. Dodajcie źródło GA4. Metryki – purchase_revenue, transactions. Wymiary – session_campaign, date.
  3. Utwórzcie blend. Lewa strona – Google Ads, prawa – GA4. Klucze – campaign_name = session_campaign, date = date. Typ – LEFT JOIN.
  4. W calculated field na blendzie – SUM(purchase_revenue) / SUM(cost). To jest ROAS realny.
  5. 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

  1. Resource → Manage added data sources → Edit → Add a parameter.
  2. Nadajcie nazwę (np. profitMargin), typ (Number, Text, Boolean), wartość domyślną i opcjonalnie listę dozwolonych wartości.
  3. W calculated field odwołajcie się do parametru przez @profitMargin.
  4. 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:

  1. Parametr margin – typ Number, zakres 0,10-0,60, domyślnie 0,35.
  2. Calculated field ROAS na marży(SUM(revenue) * @margin) / SUM(cost).
  3. Kontrolka suwaka na stronie.
  4. 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

ElementLimitKomentarz
Pola kalkulowane na źródleBez limitu twardegoPraktyczny próg – 50. Powyżej źródło staje się nieczytelne w edycji.
Blend5 źródełWięcej – trzeba rozbić na dwa blendy lub użyć BigQuery.
Parametry w raporcieBez limitu twardegoPraktyczny próg – 10. Więcej myli odbiorcę.
Czas odświeżenia wykresu60 sekundPowyżej Looker pokazuje błąd „request took too long”.
Rozmiar Extract100 MB lub 10 mln wierszyPowyżej – BigQuery jako źródło.

Jak przyspieszyć raport

  1. 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.
  2. Ograniczcie zakres dat na wykresach – domyślnie Looker pobiera 12 miesięcy. Ustawcie domyślnie 30 dni na wykresach stricte operacyjnych.
  3. Filtry po stronie źródła – zamiast filtrować na wykresie, filtrujcie przy imporcie. To przyspiesza blendowanie i kalkulacje.
  4. Zastąpcie blendy BigQuery union – gdy łączycie 3-5 GA4 properties, zrobienie unii w BigQuery przed Lookerem jest 5-10 razy szybsze niż blending.
  5. 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 zabezpieczeniarevenue / cost, gdy cost = 0, daje błąd. Zawsze wrapujcie w IF(cost = 0, NULL, revenue/cost).
  • Mieszanie user-scoped i session-scoped – w GA4 totalUsers i sessions mają 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ę.