W dzisiejszym świecie marketingu internetowego, gdzie użytkownicy swobodnie poruszają się między subdomenami i osadzonymi iframe’ami, poprawne śledzenie ich aktywności w Google Analytics 4 (GA4) jest kluczowe dla precyzyjnej analizy konwersji i optymalizacji kampanii.
Bez właściwej konfiguracji każde przejście między subdomenami lub interakcja w iframe może być traktowane jako nowy użytkownik lub sesja, co zniekształca dane i prowadzi do błędnych decyzji biznesowych.
Artykuł ten krok po kroku wyjaśni, jak skonfigurować śledzenie subdomen, pomiar w wielu domenach (cross-domain) oraz śledzenie iframe’ów, opierając się na oficjalnych zaleceniach Google i praktycznych wdrożeniach. Skupimy się na GA4, które od 2023 roku jest standardem, zastępując Universal Analytics.
Czym jest użytkownik w Google Analytics i dlaczego subdomeny oraz iframe’y komplikują śledzenie?
W GA4 użytkownik to unikalny identyfikator przechowywany w ciasteczku _ga, przypisany do konkretnej przeglądarki i urządzenia. Ta sama osoba odwiedzająca serwis z różnych przeglądarek jest traktowana jako oddzielni użytkownicy.
Subdomeny (np. blog.example.com i shop.example.com) są domyślnie śledzone automatycznie pod warunkiem użycia tego samego tagu GA lub kontenera Google Tag Manager (GTM) na wszystkich częściach serwisu. Bez dodatkowej konfiguracji przejścia między subdomenami mogą jednak generować nowe sesje i sztucznie dzielić ścieżkę użytkownika.
Iframe’y to osadzone ramki HTML z innej domeny lub subdomeny, często używane do wideo, formularzy czy widgetów. Standardowe śledzenie GA nie przechodzi automatycznie przez granice iframe’ów z uwagi na politykę Same-Origin Policy, co utrudnia przypisywanie zdarzeń do tej samej sesji.
Najczęstsze konsekwencje niewłaściwej konfiguracji to:
- nowe sesje zamiast kontynuacji – przejście z example.com na sub.example.com liczy się jako nowy użytkownik;
- brak danych z iframe’ów – aktywność wewnątrz iframe nie jest przypisywana do głównej sesji;
- zniekształcone konwersje – podział sesji fałszuje ścieżki użytkownika i ROI kampanii.
Rozwiązaniem jest pomiar w wielu domenach (cross-domain) oraz celowane wdrożenia dla iframe’ów.
Śledzenie subdomen w GA4 – automatyczne i proste wdrożenie
Subdomeny własnej domeny (np. *.example.com) nie wymagają skomplikowanej konfiguracji. Upewnij się, że na wszystkich subdomenach działa ten sam tag GA4 lub ten sam kontener GTM oraz ustaw parametr cookie_domain na auto w konfiguracji tagu. Dzięki temu domena ciasteczek dopasuje się automatycznie do subdomeny.
W GA4 przejdź do: Administracja > Strumienie danych > Konfiguracja tagu Google > Domeny. Dodaj swoje subdomeny (np. blog.example.com), aby Analytics traktował je jako jedną całość.
Przykład konfiguracji w GTM (tag GA4):
gtag('config', 'G-XXXXXX', { 'cookie_domain': 'auto' });
Po wdrożeniu sprawdź w: Raporty > Czas rzeczywisty – ruch między subdomenami powinien tworzyć jedną sesję.
Uwaga: subdomeny zewnętrzne (np. hostowane u partnera) wymagają pełnego śledzenia w wielu domenach – opis poniżej.
Śledzenie w wielu domenach – mierzenie użytkownika między domenami i subdomenami
Gdy użytkownik przechodzi między różnymi domenami (np. example.com → partner.com) lub subdomenami traktowanymi jako oddzielne jednostki, GA4 musi przekazywać identyfikatory client_id i session_id poprzez parametry URL.
Konfiguracja w interfejsie GA4 (zalecana)
W sekcji Administracja > Strumienie danych > Szczegóły strumienia > Więcej tagowania > Konfiguruj tagi > Konfiguracja > Domeny dodaj wszystkie domeny i subdomeny (np. example.com, sub.example.com). Dzięki temu GA4 będzie automatycznie dekorował linki wychodzące.
Następnie skonfiguruj tag GA4 w GTM tak, aby dodawał parametr _ga do linków wychodzących:
gtag('config', 'G-XXXXXX', {
'linker': {
'domains': ['example.com', 'sub.example.com']
}
});
Ręczne wdrożenie dla zaawansowanych przypadków
Na domenie źródłowej – pobierz identyfikatory i dołącz je do URL:
gtag('get', 'G-XXXXXX', 'client_id', (client_id) => {
// Dodaj do linku: ?clientId=XXXXX&sessionId=YYYYY
});
gtag('get', 'G-XXXXXX', 'session_id', (session_id) => {
/*...*/
});
Na domenie docelowej – odczytaj parametry z URL i ustaw w konfiguracji tagu:
gtag('config', 'G-XXXXXX', {
'client_id': getClientIdFromUrl(),
'session_id': getSessionIdFromUrl()
});
Weryfikacja: po publikacji sprawdź, czy w adresie URL pojawia się parametr _ga, a w Raportach na żywo sesja nie jest dzielona.
Filtry w widokach (dla starszych wdrożeń UA): dla pełnych URL-i użyj filtra „Zaawansowany > Pole niestandardowe pola > Hostname > Kategoria: Constant” z listą domen. W GA4 filtry zostały zastąpione konfiguracją w strumieniach danych.
Śledzenie między domenami dla subdomen: jeżeli subdomeny stanowią spójną całość, włącz allowLinker: true i powiąż je w GA4 w sekcji Domeny.
Śledzenie iframe’ów w GA4 – wyzwanie i rozwiązania
Iframe’y blokują standardowe ciasteczka cross-origin. Możesz je śledzić z wykorzystaniem Google Tag Manager + postMessage, podejścia server-side (sGTM) lub dekorowania linków.
Metoda 1 – GTM + postMessage (dla iframe’ów na tej samej domenie/subdomenie)
- W GTM głównej strony utwórz tag GA4 Event oparty o trigger (np. załadowanie/kliknięcie w iframe);
- W iframe’ie umieść GTM oraz tag wysyłający zdarzenia do rodzica przez
window.parent.postMessagelub przez wspólnydataLayer; - Przekaż
client_idz głównej strony do iframe’a, aby zdarzenia z iframe’a trafiły do tej samej sesji.
Przykład kodu w iframe (JavaScript):
window.parent.postMessage({
event: 'gtm.js',
client_id: '{{DL - GA Client ID}}' // z dataLayer
}, '*');
Następnie w GTM głównej strony dodaj trigger na zdarzenia window.message i skonfiguruj odpowiedni tag GA4.
Metoda 2 – server-side GTM dla iframe’ów między domenami
Skorzystaj z sGTM, aby proxy’ować żądania z iframe’a i ominąć ograniczenia CORS. Zdarzenia z iframe’a wysyłaj do Twojego endpointu serwerowego, który przekaże je dalej do GA4, zachowując spójność identyfikatorów.
To rozwiązanie wymaga konfiguracji kontenera serwerowego oraz mapowania pól requestu na parametry GA4, ale zapewnia najwyższą kontrolę nad danymi.
Metoda 3 – dekorator URL dla linków w iframe’ach
Jeżeli w iframe’ie znajdują się linki prowadzące do głównej witryny, dodawaj do nich parametr _ga (jak w standardowym cross-domain), aby przekazać client_id i session_id.
Weryfikacja: użyj DebugView w GA4 oraz GTM Preview, sprawdzając czy zdarzenia z iframe’a przypisują się do tej samej sesji co w oknie nadrzędnym.
Dla szybkiego porównania scenariuszy, narzędzi i rozwiązań zastosuj poniższą ściągę:
| Problem | Rozwiązanie | Narzędzia |
|---|---|---|
| Subdomeny własnej domeny | cookie_domain: 'auto' |
GTM / GA4 interfejs |
| Różne domeny | linker.domains + parametry URL |
GA4 config |
| Iframe w tej samej domenie | postMessage |
GTM |
| Iframe w innej domenie | sGTM lub proxy | sGTM |
Najczęstsze błędy i jak je unikać
Poniżej znajdziesz checklistę kontrolną, która pomoże uniknąć najczęstszych potknięć:
- Niepublikowanie zmian w GTM – zawsze testuj w trybie Preview i dopiero potem publikuj;
- Brak wykluczenia IP – wyklucz własny ruch w GA4, szczególnie przy testach cross-domain;
- Ignorowanie RODO (GDPR) – informuj o ciasteczkach cross-domain w polityce prywatności i respektuj zgody;
- Mylenie UA z GA4 – UA używał widoków/filtrów; GA4 opiera się na strumieniach i linkerze;
- Niewystarczające testy – użyj okna incognito, Google Tag Assistant oraz DebugView w GA4.
Praktyczne wskazówki dla marketerów i deweloperów
Wdrażając cross-domain i integracje iframe, zwróć uwagę na te aspekty:
- Integracja z Google Ads – śledzenie między domenami poprawia atrybucję i import konwersji do Ads;
- Raportowanie – w GA4 analizuj Ścieżki użytkownika po wdrożeniu; sesje powinny być ciągłe;
- Skalowalność – dla wielu subdomen zacznij od konfiguracji w interfejsie GA4; przy edge-case’ach użyj
gtag.jslub GTM; - Aktualizacje – GA4 dynamicznie się zmienia; monitoruj changelog na Google Developers, aby utrzymać zgodność.






