Tutorial: Naprawa ruchu „Unassigned” w raportach pozyskiwania GA4

Spis treści
- Krok 1: Rozdzielenie worka po źródle i medium sesji
- Krok 2: Gdy pojawia się realna wartość — przypadek tagowania
- Krok 3: Gdy pojawia się (not set) — parametry utracone po drodze
- Krok 4: Przypadek Consent Mode
- Krok 5: Policzenie skali w BigQuery
- Pozostając w granicach
- Pytania i odpowiedzi
- Źródła
- Kontrola w praktyce: rzeczywiste wiersze pozyskiwania
„Unassigned” w raporcie pozyskiwania ruchu GA4 nie jest kanałem — to resztka, która zostaje, gdy źródło i medium sesji nie pasują do żadnej reguły w domyślnej grupie kanałów. Czyni to z niego objaw o kilku niepowiązanych ze sobą przyczynach i właśnie dlatego typowa rada, żeby „naprawić UTM-y”, rozwiązuje część przypadków, a przy innych nie zmienia nic.
Niezawodne podejście polega na rozdzieleniu worka, zanim cokolwiek zostanie ruszone: jeden odczyt raportu oddziela problem z tagowaniem od problemu z utratą danych, a każdy z nich ma własne rozwiązanie.

Krok 1: Rozdzielenie worka po źródle i medium sesji
W raporcie pozyskiwania ruchu dodanie źródła / medium sesji jako wymiaru dodatkowego do wiersza Unassigned rozdziela go na dwa zasadniczo różne przypadki:
- Pojawia się realna wartość, na przykład
newsletter / october-promo— dane dotarły w całości, ale żadna reguła kanału do nich nie pasuje. To problem taksonomii, rozwiązywalny przez poprawienie tagowania. - Pojawia się
(not set)— sesja zaczęła się zupełnie bez informacji o źródle. Reguły kanałów nie mają z tym nic wspólnego; dane kampanii nigdy nie dotarły do GA4.
Warto wcześniej zrobić jeszcze jedno rozróżnienie: Unassigned w raporcie pozyskiwania użytkowników opisuje atrybucję pierwszej wizyty, a raport pozyskiwania ruchu — każdą pojedynczą sesję. Zestawienie wymiaru o zakresie użytkownika z metryką o zakresie sesji tworzy wiersze Unassigned odzwierciedlające tę rozbieżność zakresów, a nie błąd zbierania danych — oba raporty warto więc sprawdzić osobno przed jakąkolwiek zmianą.
Krok 2: Gdy pojawia się realna wartość — przypadek tagowania
Domyślna grupa kanałów GA4 dopasowuje konkretne wartości, a nie intencje. Medium newsletter nie staje się kanałem E-mail; reguła E-mail wymaga źródła lub medium o wartości dokładnie email, e-mail, e_mail albo e mail. Wielkość liter nie ma przy tym znaczenia, więc Email wielką literą jest w porządku; newsletter, mailing czy crm już nie pasują. Również utm_source zupełnie bez utm_medium pozostawia GA4 bez możliwości zaklasyfikowania sesji.
| Zamierzony kanał | Pasujące medium | Częsta wartość, która nie pasuje |
|---|---|---|
email, e-mail, e_mail |
newsletter, mailing, crm |
|
| Wyniki organiczne | organic |
seo, search |
| Płatne wyniki | cpc, ppc, paid… (źródło wyszukiwarki) |
sem, adwords |
| Paid Social | cpc, ppc, paid… (źródło społecznościowe) |
social-paid, fb-ads |
| Odesłania | referral, link |
partner |
| Afiliacja | affiliate |
affiliates, programpartnerski |
<!-- Wpada do Unassigned: zadna regula nie pasuje do medium=newsletter -->
https://example.com/oferta?utm_source=mailchimp&utm_medium=newsletter
<!-- Klasyfikowane jako E-mail: medium pasuje do reguly kanalu -->
https://example.com/oferta?utm_source=mailchimp&utm_medium=email&utm_campaign=october-promo
Poprawione tagowanie działa wyłącznie na ruch zebrany od tego momentu; sesje już zapisane zachowują wartość, z jaką dotarły. Własna grupa kanałów potrafi przypisać historyczne wartości do nazwanego kanału na potrzeby raportowania, ale jest to przeetykietowanie tego, co zebrano, a nie naprawa.
Krok 3: Gdy pojawia się (not set) — parametry utracone po drodze
Sesja zaczynająca się zupełnie bez źródła wskazuje na drogę, jaką przebył odwiedzający, a nie na tagowanie kampanii. Trzy mechanizmy odpowiadają za większość takich przypadków:
- Przejście między domenami bez linkera. Gdy odwiedzający przechodzi z jednej domeny na drugą — sklep przekazuje ruch do operatora płatności i z powrotem — GA4 przenosi tożsamość w parametrze
_gldopisywanym przez pomiar międzydomenowy. Bez skonfigurowania obu domen w ramach tego samego strumienia danych powrót rozpoczyna nową sesję, której odesłaniem jest operator płatności; jeśli ten host znajduje się dodatkowo na liście wykluczeń odesłań, odesłanie zostaje odrzucone i nie zostaje nic, do czego dałoby się przypisać sesję. - Redirect gubiący query string. Przekierowanie po stronie serwera dotyczące języka, ukośnika końcowego albo http-na-https, które składa adres na nowo bez przekazania
?utm_…, usuwa parametry kampanii, zanim jakikolwiek tag zdąży je odczytać. - Tag odpalający się po zmianie adresu. W aplikacji jednostronicowej zmiana trasy po stronie klienta, następująca przed załadowaniem tagu GA4, sprawia, że tag odczytuje adres już po nawigacji — a ten nie niesie już parametrów kampanii.
Krok 4: Przypadek Consent Mode
Consent Mode dokłada się do Unassigned w konkretny sposób: gdy zgoda na magazyn reklamowy lub analityczny zostaje odmówiona, identyfikatorów kliknięcia ani parametru linkera nie da się utrzymać w ciasteczkach przy przejściu między stronami. Włączone URL Passthrough w tagu Google albo w Conversion Linkerze zatrzymuje gclid i _gl w adresie URL, dzięki czemu źródło przetrwa nawigację nawet bez magazynu.
Poważniejszą przyczyną jest twarde blokowanie. Niedopuszczenie do odpalenia tagów Google aż do momentu udzielenia zgody — przez trigger blokujący zamiast wbudowanych sprawdzeń zgody — oznacza, że wyświetlenie strony docelowej nigdy nie zostaje zmierzone; pierwsze zdarzenie, jakie widzi GA4, dociera już po przejściu dalej, bez pierwotnych parametrów kampanii. Skorzystanie z własnych ustawień zgody w tagach zachowuje ten pierwszy strzał jako ping bez ciasteczek, który wciąż niesie źródło — i który jest zarazem podstawą modelowania behawioralnego.
Krok 5: Policzenie skali w BigQuery
Interfejs GA4 pokazuje udział; eksport do BigQuery pokazuje, z jakimi kombinacjami źródła i medium sesje docierają — i dopiero to czyni naprawę mierzalną. Grupy kanałów eksport nie zawiera, a manual_source i manual_medium w collected_traffic_source według schematu eksportu Google zawierają nie tylko wartości UTM, lecz także wartości odczytane z parametrów odesłań; listę trzeba więc porównać z regułami kanałów:
SELECT
IFNULL(collected_traffic_source.manual_source, '(not set)') AS source,
IFNULL(collected_traffic_source.manual_medium, '(not set)') AS medium,
COUNT(*) AS sessions
FROM `project.analytics_XXXXXXXXX.events_*`
WHERE _TABLE_SUFFIX BETWEEN '20260901' AND '20260930'
AND event_name = 'session_start'
GROUP BY source, medium
ORDER BY sessions DESC
LIMIT 50;
Wiersze z realnymi, ale niedopasowanymi mediami wyliczają połowę problemu związaną z tagowaniem. Wiersze, w których oba pola mają wartość (not set), są dla połowy związanej z utratą danych tylko górną granicą: zawierają też wejścia bezpośrednie, które nie niosą ani parametrów UTM, ani odesłania i które GA4 jako (direct) / (none) przypisuje do kanału Direct. Ponowne uruchomienie zapytania po każdej zmianie pokazuje, która z tych dwóch faktycznie drgnęła.
Pozostając w granicach
Części brakujących danych kampanii nie da się odzyskać. Od osób odmawiających zgody na magazyn analityczny przy twardym blokowaniu nie dociera nic; przy ustawieniach zgody w tagach ich pingi bez ciasteczek wprawdzie niosą źródło, ale nie pojawiają się w raportach jako osobne sesje, tylko trafiają do modelowania behawioralnego, a żadna konfiguracja nie odtworzy tego, co nigdy nie zostało zebrane. Faktyczne wejścia bezpośrednie i wizyty ze środowisk aplikacji i przeglądarek usuwających odesłania do tej części nie należą: bez żadnego źródła GA4 przypisuje je jako (direct) / (none) do kanału Direct. Realistycznym celem jest niewielki, stabilny udział; rosnący sygnalizuje nową usterkę i to właśnie ten odczyt wart jest obserwowania, a nie wartość bezwzględna.
Pytania i odpowiedzi
Jak znaleźć przekierowanie, które gubi parametry UTM?
Przez wywołanie strony docelowej z parametrami testowymi i obejrzenie każdego etapu łańcucha przekierowań, na przykład w zakładce sieci w narzędziach deweloperskich albo za pomocą curl -sIL. Rozstrzyga nagłówek Location każdej odpowiedzi: jeśli brakuje w nim ciągu zapytania, który był jeszcze w żądaniu, przyczyną jest ten etap. Do próby należą też warianty bez ukośnika końcowego, z http i z prefiksem językowym, bo każdy z nich może uruchomić własną regułę.
Jak zachować parametry kampanii w aplikacji jednostronicowej do chwili, gdy odczyta je tag?
Artykuł nazywa mechanizm: jeśli router zmienia adres, zanim załaduje się tag GA4, tag odczytuje adres bez parametrów. Trzy rozwiązania pozwalają utrzymać parametry:
- Wczesne ładowanie tagu Google, w sekcji head strony i przed kodem routera, tak aby pierwsze wyświetlenie strony widziało jeszcze pierwotny adres.
- Zapisanie adresu wejściowego w zmiennej zaraz po załadowaniu i przekazanie go jako
page_locationz pierwszym page_view. GA4 odczytuje parametry kampanii z tej wartości, więc późniejsza zmiana adresu już na nią nie wpływa. - Odroczenie porządkowania adresu. Niektóre aplikacje usuwają parametry zapytania przez
history.replaceState(), żeby adres wyglądał schludnie; powinno to nastąpić dopiero po wysłaniu pierwszego trafienia.
Baner zgody pogarsza problem, jeśli opóźnia ładowanie tagu do chwili podjęcia decyzji: do tego czasu router mógł już dawno zmienić adres. Tu również pomaga ten sam zapisany adres wejściowy.
Źródła
Kontrola w praktyce: rzeczywiste wiersze pozyskiwania
Audyt pozyskiwania w testerze kanałów uzupełnia pojedyncze przykłady reguł o kontrolę danych raportowych. Po autoryzacji Google usługę i jawny zakres dat wykorzystuje się do zapytania. Narzędzie pobiera źródło, medium, kampanię i domyślną grupę kanałów sesji wraz z sesjami. Nie miesza pozyskiwania pierwszego użytkownika z pozyskiwaniem sesji.
- Wybór zakończonego okresu raportowania. Najnowsze dane mogą się jeszcze zmieniać.
- Kontrola wierszy Unassigned od największych wartości sesji. Porównanie źródła i medium z opisanymi regułami kanałów.
- Sprawdzenie wariantów takich jak
Emailiemailoraz dodatkowych spacji w kampanii. Kandydat oznacza niespójność nazewnictwa do zbadania, a nie automatyczną poprawkę. - Kontrola metadanych przed interpretacją. Progi, próbkowanie i wiersz
(other)mogą ukrywać szczegóły. - Eksport wskazówek do CSV i poprawienie przyszłych linków kampanii lub konfiguracji tam, gdzie uzasadniają to dane.
Procent Unassigned opiera się na sumie zwróconych wartości sesji, a nie na osobno pobranej sumie usługi. Narzędzie odrzuca niepełną paginację i nie zmienia historycznej atrybucji. Samo (not set) nie rozstrzyga, czy przyczyną braku była zgoda, przekierowanie czy tagowanie.
Źródła techniczne: wymiary i metryki Data API oraz metadane odpowiedzi.