Z jednej zakładki Arkusza Google spływają metryki konwersji sprzedaży, z drugiego złącza pobiera się raport kampanii Google Ads, a z CRM wychodzą dane o przychodzie. Prezes chce jedno: „Koszt i Zysk na jednym wykresie." W starym świecie: SQL i JOIN. W Data Studio: Data Blending – łączenie źródeł bez pisania kodu.

Ale Data Blending ma konkretne ograniczenia i kilka pułapek z agregacją, które zepsują wyniki jeśli się ich nie zna. Ten artykuł wyjaśnia jak to działa od podstaw i kiedy zamienić Blend na BigQuery JOIN.

Jak działa Data Blending w Data Studio

Data Blending to złączenie dwóch lub więcej źródeł danych po wspólnym kluczu, wykonywane po stronie interfejsu Data Studio – nie w bazie. Platforma agreguje każde źródło osobno (według wybranego klucza), a następnie łączy wyniki. To fundamentalne: Blend działa na zagregowanych danych, nie na surowych wierszach.

Oznacza to, że zanim dane trafią do wykresu, każde źródło jest grupowane po kluczu złączenia (np. po dacie, kanale, produktu). Dopiero zagregowane wiersze są łączone ze sobą.

Krok po kroku: kampanie Google Ads + dane sprzedaży z CRM

Typowy przypadek: Google Ads raportuje koszty dziennie, a CRM (lub Arkusz Google) raportuje przychód dziennie. Chcemy jedno źródło z kolumnami: Data | Koszt | Przychód | ROAS.

  1. W edytorze raportu kliknij komponent (np. tabelę) → Dane → Dodaj źródło danych → Połącz dane.
  2. Jako pierwsze źródło dodaj połączenie Google Ads. Ustaw klucz złączenia: Data. Wybierz metrykę: Koszt.
  3. Kliknij Dodaj kolejne źródło, dodaj Arkusz Google z CRM. Ustaw ten sam klucz: Data. Wybierz metrykę: Przychód.
  4. Zapisz Blend. Na osi czasu masz teraz dwie linie: koszty i przychody – bez SQL, bez eksportu.
  5. Dodaj pole obliczeniowe ROAS: SUM(Przychod) / SUM(Koszt) – zawsze SUM/SUM, nie metryka/metryka.

Typy złączeń i ich konsekwencje

Data Studio obsługuje dwa typy złączeń w Blend:

Typ złączenia Zachowanie Kiedy używać
Left Outer Join (domyślne) Wszystkie wiersze z lewego źródła; brakujące z prawego → NULL Gdy lewe źródło jest "pełne" (np. wszystkie dni kampanii)
Inner Join Tylko wiersze z kluczem obecnym w obu źródłach Gdy chcesz tylko dni z danymi po obu stronach

Praktyczna zasada: jeśli kampania działała przez 30 dni, ale CRM ma transakcje tylko z 22 dni (weekendy bez sprzedaży), Left Join pokaże 30 wierszy (8 z NULL w kolumnie Przychód). Inner Join pokaże 22 wiersze. Do wykresu trendów – Left Join. Do KPI bez zniekształceń – Inner Join.

Pułapki agregacji i NULL w Blendingu

Najczęstszy błąd po skonfigurowaniu Blend: różna granularność kluczy. Jeśli lewe źródło ma dane na poziomie dnia i kanału, a prawe tylko na poziomie dnia – po złączeniu „po dacie" prawy przychód będzie multiplikowany przez liczbę kanałów. Wynik: przychód zawyżony 3–5x.

Jak to sprawdzić: dodaj do tabeli blendowej kolumnę Record Count z prawego źródła. Jeśli zamiast 1 widzisz 3 lub więcej – masz multiplikację. Rozwiązanie: dodaj kanał jako drugi klucz złączenia lub zagreguj prawe źródło w BigQuery przed Blendem.

Drugi problem: NULL z brakujących wierszy. W polach obliczeniowych na Blend NULL zawsze psuje sumy. Użyj IFNULL(SUM(Przychod), 0) zamiast samego SUM(Przychod), żeby zera zastąpiły puste komórki i wykresy nie miały przerw.

Ograniczenia Data Blending – tabela

Ograniczenie Wartość
Maks. źródeł w jednym Blend 5
Typ złączenia Left Outer lub Inner (brak Full Outer, Right)
Filtrowanie po blendie Ograniczone – filtr działa na całym Blend, nie per-źródło
Community Connectors (Facebook, TikTok Ads) Timeout przy >100k wierszy dziennie
Pola obliczeniowe w Blend Tylko na poziomie Blend – nie można mieszać z polami per-źródło

Kiedy BigQuery JOIN jest lepszy niż Blend

Data Blending ratuje budżety przy małych zestawieniach: dwa Arkusze Google, Google Ads + GA4, przychód z CRM + koszty marketingu. Dla tych przypadków – wystarczy.

Ale gdy masz do czynienia z:

  • więcej niż 500k wierszy w którejkolwiek tabeli,
  • 3+ community connectors (Facebook, TikTok, LinkedIn Ads) jednocześnie,
  • potrzebą złączenia po kilku kluczach jednocześnie (data + produkt + region),
  • raportami odświeżanymi automatycznie co godzinę,

– przenieś logikę złączenia do BigQuery. Tam JOIN działa na surowych danych, przed agregacją, z pełną obsługą klauzul WHERE i GROUP BY. Wynik ląduje w jednej tabeli BigQuery, którą Data Studio pobiera jako pojedyncze źródło.

-- BigQuery: złączenie kosztów Ads z przychodem CRM
SELECT
  a.date,
  SUM(a.cost)     AS koszt,
  SUM(c.revenue)  AS przychod,
  SUM(c.revenue) / NULLIF(SUM(a.cost), 0) AS roas
FROM `projekt.ads.kampanie_daily` a
LEFT JOIN `projekt.crm.transakcje_daily` c
  ON a.date = c.date
GROUP BY a.date
ORDER BY a.date DESC

Tę jedną tabelę podpinasz w Data Studio jako Data Source – koniec z Timeout, koniec z multiplikacją wierszy, ROAS liczony poprawnie jako SUM(przychod)/SUM(koszt).

Data Blending = SQL JOIN wykonany po agregacji. BigQuery JOIN = SQL JOIN wykonany przed agregacją. Ta różnica determinuje poprawność każdej metryki złożonej (ROAS, marża, konwersja).