Spis treści
- Generator UTM online czy własny arkusz – co wybrać
- Struktura szablonu: zakładki i kolumny arkusza kontroli kampanii
- Formuły generatora UTM do skopiowania
- Funkcja czyszcząca w Apps Script
- Jak wdrożyć arkusz kontroli kampanii w zespole krok po kroku
- Generator UTM dla agencji i wielu klientów
- Najczęstsze błędy w generatorach UTM
- Najczęściej zadawane pytania
Generator UTM to narzędzie, które z kilku pól – adresu strony, źródła, medium i nazwy kampanii – składa gotowy link z parametrami, a dobrze zbudowany pozwala wybrać tylko wartości dozwolone przez konwencję zespołu. Najpraktyczniejszą formą jest arkusz w Arkuszach Google lub Excelu, który jednocześnie generuje linki i prowadzi rejestr wszystkich kampanii. Taki arkusz kontroli kampanii pokazuje, kto, kiedy i z jakimi wartościami przygotował link, i pozwala co miesiąc porównać plan z tym, co faktycznie pojawiło się w GA4. Poniżej znajdziesz układ szablonu, formuły do skopiowania i proces wdrożenia.
Najważniejsze w skrócie
- Arkusz z listami rozwijanymi i formułą sklejającą adres eliminuje większość literówek, które rozbijają kampanie w GA4.
- Szablon potrzebuje trzech zakładek: słowników z dozwolonymi wartościami, generatora z rejestrem linków i kontroli porównującej rejestr z danymi z GA4.
- W polskich ustawieniach regionalnych Arkuszy Google argumenty formuł oddzielasz średnikiem, a nie przecinkiem.
- Nazwę kampanii składaj formułą z członów (miesiąc, cel, rynek, opis), a nie wpisuj ręcznie.
- Każdy link przed publikacją sprawdza druga osoba i otwiera go w przeglądarce, żeby wykryć przekierowania gubiące parametry.
Generator UTM online czy własny arkusz – co wybrać
Generator online wystarczy do jednorazowego linku, ale zespół potrzebuje arkusza, bo tylko on pilnuje dozwolonych wartości i przechowuje historię. Różnice widać najlepiej w zestawieniu.
| Cecha | Generator online (np. Campaign URL Builder od Google) | Własny arkusz | Formularz z Apps Script |
|---|---|---|---|
| Koszt i czas wdrożenia | zero | 1–2 godziny | kilka godzin |
| Lista dozwolonych wartości | brak, pola swobodne | listy rozwijane | listy rozwijane |
| Historia i rejestr linków | brak | tak | tak |
| Kontrola nazwy kampanii | brak | formuła i walidacja | walidacja w kodzie |
| Porównanie z danymi GA4 | brak | ręczne lub półautomatyczne | możliwe automatycznie |
| Dla kogo | pojedyncze osoby | małe i średnie zespoły | agencje, duże działy |
Niezależnie od formy generator ma jedno zadanie: sprawić, żeby każdy parametr UTM miał wartość z zamkniętej listy, a nie wymyśloną w biegu. Generator Google ma jedną przewagę: zawsze poprawnie koduje znaki w adresie. W arkuszu musisz o to zadbać sam, co pokazujemy w części z formułami. Zasady, które arkusz ma egzekwować, opisujemy w artykule o konwencji nazewniczej UTM dla zespołu, a pełną listę parametrów, które możesz uwzględnić w kolumnach, w tekście o parametrach UTM w GA4.
Struktura szablonu: zakładki i kolumny arkusza kontroli kampanii
Szablon składa się z trzech zakładek: „Słowniki”, „Generator” i „Kontrola”. Zakładka generatora jest jednocześnie rejestrem – każdy wiersz to jeden link, który ktoś przygotował.
Zakładka „Słowniki” zawiera kolumny z dozwolonymi wartościami: źródła (A), media (B), cele kampanii (C) i rynki (D). Tę zakładkę edytuje wyłącznie właściciel konwencji, co ustawisz przez ochronę zakresu.
Zakładka „Generator” ma następujące kolumny:
| Kolumna | Zawartość | Sposób wypełnienia |
|---|---|---|
| A | Data przygotowania | ręcznie lub skrót klawiszowy daty |
| B | Osoba przygotowująca | ręcznie |
| C | Adres strony docelowej | ręcznie, pełny adres z https |
| D | utm_source | lista rozwijana ze słownika |
| E | utm_medium | lista rozwijana ze słownika |
| F | Miesiąc kampanii (rrrr-mm) | ręcznie, jako tekst |
| G | Cel | lista rozwijana |
| H | Rynek | lista rozwijana |
| I | Opis kampanii | ręcznie, czyszczony formułą |
| J | utm_campaign | formuła |
| K | utm_content | ręcznie, czyszczony formułą |
| L | utm_id | ręcznie (ID z systemu reklamowego) |
| M | Link końcowy | formuła |
| N | Kontrola formalna | formuła: OK lub opis błędu |
| O | Sprawdził / data | druga osoba |
Listy rozwijane ustawisz przez sprawdzanie poprawności danych z zakresu, np. 'Słowniki'!A2:A50, z opcją odrzucania nieprawidłowych danych. Dzięki temu nikt nie wpisze „Facebook” zamiast „facebook”.
Formuły generatora UTM do skopiowania
Formuły składają nazwę kampanii z członów, kodują wartości i dokładają parametry do adresu z uwzględnieniem tego, czy adres ma już znak zapytania. Poniższe przykłady zakładają polskie ustawienia regionalne, czyli średnik jako separator.
Nazwa kampanii w kolumnie J (miesiąc, cel, rynek i opis połączone podkreślnikiem):
=IF(OR(F2="";G2="";H2="";I2="");"";LOWER(TEXTJOIN("_";TRUE;F2;G2;H2;UTMCLEAN(I2))))
Link końcowy w kolumnie M:
=IF(OR(C2="";D2="";E2="";J2="");"";
C2 & IF(REGEXMATCH(C2;"\?");"&";"?") &
"utm_source=" & ENCODEURL(D2) &
"&utm_medium=" & ENCODEURL(E2) &
"&utm_campaign=" & ENCODEURL(J2) &
IF(K2="";"";"&utm_content=" & ENCODEURL(UTMCLEAN(K2))) &
IF(L2="";"";"&utm_id=" & ENCODEURL(L2)))
Kontrola formalna w kolumnie N:
=IF(C2="";"";
IF(REGEXMATCH(C2;"#");"Usuń fragment # z adresu";
IF(NOT(REGEXMATCH(C2;"^https://"));"Adres musi zaczynać się od https://";
IF(REGEXMATCH(C2;"utm_");"Adres zawiera już UTM-y";
IF(NOT(REGEXMATCH(J2;"^\d{4}-\d{2}_[a-z]+_[a-z]{2}_[a-z0-9-]+$"));"Zła nazwa kampanii";"OK")))))
Platformy reklamowe, które mają osobne pole na parametry adresu, jak Meta Ads, potrzebują samego ciągu parametrów bez adresu strony. Dodaj w tym celu kolumnę P z formułą, która pomija adres i znak zapytania:
=IF(J2="";"";"utm_source=" & ENCODEURL(D2) & "&utm_medium=" & ENCODEURL(E2) & "&utm_campaign=" & ENCODEURL(J2) & IF(K2="";"";"&utm_content=" & ENCODEURL(UTMCLEAN(K2))))
W Meta Ads możesz w tym polu zastąpić stałą wartość utm_content parametrem dynamicznym, np. {{ad.name}}, ale wtedy nazwy reklam w Menedżerze reklam też muszą trzymać się konwencji – inaczej przeniesiesz do GA4 cały bałagan z konta reklamowego.
Kilka uwag praktycznych. Funkcja ENCODEURL zamienia spacje i znaki specjalne na zapis bezpieczny w adresie, ale nie usuwa polskich liter – dlatego wartości swobodne przepuszczamy najpierw przez funkcję UTMCLEAN. Kontrola fragmentu # jest ważna, bo parametry dopisane po krzyżyku nie zostaną odczytane jako UTM-y. Kontrola istniejących UTM-ów chroni przed linkami, w których parametry występują dwa razy.
Funkcja czyszcząca w Apps Script
Arkusze Google nie mają wbudowanej funkcji, która zamienia polskie litery na łacińskie, więc najprościej dodać własną funkcję w Apps Script. Po zapisaniu działa w arkuszu jak zwykła formuła.
W arkuszu wybierz Rozszerzenia, potem Apps Script, wklej poniższy kod i zapisz projekt:
/**
* Czyści wartość do użycia w parametrze UTM.
* @param {string} text Wartość do oczyszczenia
* @return {string} małe litery, bez polskich znaków, myślniki zamiast spacji
* @customfunction
*/
function UTMCLEAN(text) {
if (text === '' || text === null) return '';
var map = {'ą':'a','ć':'c','ę':'e','ł':'l','ń':'n','ó':'o','ś':'s','ź':'z','ż':'z'};
return String(text)
.toLowerCase()
.replace(/[ąćęłńóśźż]/g, function (c) { return map[c]; })
.replace(/[^a-z0-9-]+/g, '-')
.replace(/-+/g, '-')
.replace(/^-|-$/g, '');
}
Funkcja zamienia „Promocja Świąteczna 2026” na promocja-swiateczna-2026. Podkreślnik celowo jest zamieniany na myślnik, bo w konwencji rozdziela człony nazwy kampanii i nie powinien pojawiać się w opisie. Jeśli Twój zespół pracuje w Excelu, ten sam efekt uzyskasz zagnieżdżonymi funkcjami podstawiania tekstu albo prostym makrem.
Jak wdrożyć arkusz kontroli kampanii w zespole krok po kroku
Arkusz działa tylko wtedy, gdy jest jedynym miejscem, z którego wychodzą linki kampanii. Wdrożenie zajmuje tydzień, z czego większość czasu to uzgodnienie słowników.
- Zbierz obecne wartości. Wyeksportuj z GA4 listę kombinacji źródło/medium i kampanii z ostatnich 12 miesięcy i na tej podstawie przygotuj słowniki.
- Zbuduj zakładki i formuły według układu powyżej, a zakładkę słowników chroń przed edycją.
- Przygotuj 3–4 przykładowe wiersze dla najczęstszych działań: newslettera, kampanii Meta, artykułu sponsorowanego i SMS-a.
- Ustal regułę publikacji. Link bez wpisu w kolumnie „Sprawdził” nie może trafić do kampanii.
- Testuj każdy link w przeglądarce. Wklej go w oknie prywatnym i sprawdź adres końcowy po przekierowaniach.
- Raz w miesiącu uruchom kontrolę. W zakładce „Kontrola” wklej eksport kampanii z GA4 i porównaj go z rejestrem.
Formuła w zakładce „Kontrola”, która oznacza kampanie widoczne w GA4, ale nieobecne w rejestrze (kolumna A to wklejona nazwa kampanii z GA4):
=IF(A2="";"";IF(COUNTIF('Generator'!J:J;A2)>0;"w rejestrze";"BRAK W REJESTRZE"))
Każda pozycja „BRAK W REJESTRZE” to link przygotowany poza arkuszem albo literówka. Takie wartości często trafiają też do kanału Unassigned lub ruchu bezpośredniego; przyczyny opisujemy w poradniku o „(not set)” i ruchu bezpośrednim w GA4.
Generator UTM dla agencji i wielu klientów
Agencja potrzebuje jednego szablonu z elementami wspólnymi dla wszystkich klientów i miejscem na wyjątki konkretnej marki. Najlepiej sprawdza się kopia szablonu dla każdego klienta, a nie jeden wielki arkusz.
- Wspólny słownik bazowy. Media i podstawowe źródła są takie same u wszystkich klientów, dzięki czemu specjaliści przechodzący między kontami nie uczą się nowych zasad.
- Dodatkowe człony klienta. Jeśli marka potrzebuje np. członu z linią produktową, dodaj go jako osobną kolumnę i uwzględnij w formule nazwy kampanii.
- Uprawnienia. Klient może mieć wgląd w rejestr, ale słowniki edytuje tylko osoba odpowiedzialna po stronie agencji.
- Spójność z kampaniami Google Ads. Kampanie z autotagowaniem dostają nazwy z konta, więc nazwa w Google Ads powinna być identyczna z wartością z kolumny J. Szczegóły zależności opisujemy w tekście o autotagowaniu Google Ads a UTM.
- Połączenie z raportowaniem. Rejestr może być źródłem danych w Looker Studio, np. do przypisania kampanii do celu i budżetu. Jak łączyć takie źródła z danymi z platform, pokazujemy w artykule o łączeniu danych z Google Ads, Meta i GA4, a rozbijanie nazwy kampanii na człony – w zestawie pól obliczeniowych w Looker Studio.
Spójny rejestr bardzo ułatwia miesięczne raportowanie. Gdy nazwy kampanii są takie same w arkuszu, w GA4 i w systemach reklamowych, raport efektywności można oprzeć na jednym kluczu, co wykorzystujemy w szablonie raportu ROAS dla klienta. Jeśli publikujesz artykuły sponsorowane, dodaj w słowniku źródeł nazwy portali – porównanie publikacji opisujemy w tekście o artykułach sponsorowanych.
Najczęstsze błędy w generatorach UTM
Nawet dobry arkusz można obejść albo zepsuć. Oto błędy, które w praktyce pojawiają się najczęściej.
- Kopiowanie linku z poprzedniej kampanii i ręczna zmiana jednego parametru. Kończy się to starą nazwą kampanii w nowym linku.
- Skracacze linków bez testu. Część z nich przekierowuje bez parametrów lub dokłada własne. Zawsze sprawdź adres końcowy.
- UTM-y na linkach wewnętrznych. Generator nie powinien w ogóle przyjmować adresów banerów na własnej stronie.
- Słownik bez właściciela. Gdy każdy może dopisać źródło, po kilku miesiącach lista znów ma warianty pisowni.
- Dane osobowe w utm_content. Adres e-mail czy numer klienta w parametrze to naruszenie zasad Google i problem z RODO.
Wszystkie poradniki o nazewnictwie kampanii znajdziesz w podtemacie UTM i nazewnictwo, a wskazówki do konfiguracji raportów na stronie narzędzia Looker Studio.
Najczęściej zadawane pytania
Czy generator UTM od Google wystarczy dla zespołu?
Do pojedynczych linków tak, ale dla zespołu to za mało. Generator Google ma swobodne pola, więc nie pilnuje dozwolonych wartości ani wzoru nazwy kampanii, i nie zapisuje historii linków. Arkusz z listami rozwijanymi, formułą sklejającą adres i rejestrem pozwala uniknąć literówek i co miesiąc porównać plan z danymi w GA4.
Dlaczego formuły z artykułu nie działają w moim arkuszu?
Najczęstsza przyczyna to separator argumentów. W polskich ustawieniach regionalnych Arkuszy Google argumenty oddziela się średnikiem, a w angielskich przecinkiem. Druga przyczyna to brak funkcji UTMCLEAN, którą trzeba najpierw dodać w Apps Script. Sprawdź też, czy nazwy zakładek w odwołaniach są ujęte w apostrofy.
Jak usunąć polskie znaki z wartości UTM w arkuszu?
Arkusze Google nie mają wbudowanej funkcji transliteracji, więc najwygodniej dodać krótką funkcję w Apps Script, która zamienia ą, ć, ę, ł, ń, ó, ś, ź i ż na litery łacińskie, zmienia tekst na małe litery i zastępuje spacje myślnikami. W Excelu podobny efekt dają zagnieżdżone funkcje podstawiania tekstu.
Kto powinien zarządzać arkuszem kontroli kampanii?
Jedna osoba, zwykle analityk lub osoba odpowiedzialna za raportowanie. Decyduje o dopisaniu nowych źródeł i mediów, chroni zakładkę słowników i raz w miesiącu porównuje rejestr z danymi z GA4. Bez właściciela słowniki szybko się rozrastają, a arkusz przestaje pełnić funkcję kontrolną.
Czy w generatorze trzeba uwzględniać kampanie Google Ads?
Kampanie Google Ads z autotagowaniem nie wymagają linków z generatora, bo GA4 pobiera ich nazwy z połączonego konta. Warto jednak wpisywać je do rejestru, żeby nazwy kampanii w Google Ads były zgodne z konwencją, oraz generować sufiks końcowego URL, jeśli dane trafiają też do CRM lub innych narzędzi analitycznych.