Przejdź do treści

Generator UTM i arkusz kontroli kampanii: szablon dla agencji i działu marketingu

Generator UTM w arkuszu to najtańszy sposób na spójne dane o kampaniach. Pokazujemy układ szablonu, gotowe formuły, funkcję czyszczącą w Apps Script i proces kontroli, który zatrzymuje błędne linki przed publikacją.

Redakcja Pixel Insider8 min czytaniaPoziom: podstawy

  • Arkusze Google
  • Apps Script
  • UTM
Spis treści
  1. Generator UTM online czy własny arkusz – co wybrać
  2. Struktura szablonu: zakładki i kolumny arkusza kontroli kampanii
  3. Formuły generatora UTM do skopiowania
  4. Funkcja czyszcząca w Apps Script
  5. Jak wdrożyć arkusz kontroli kampanii w zespole krok po kroku
  6. Generator UTM dla agencji i wielu klientów
  7. Najczęstsze błędy w generatorach UTM
  8. 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.

  1. 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.
  2. Zbuduj zakładki i formuły według układu powyżej, a zakładkę słowników chroń przed edycją.
  3. Przygotuj 3–4 przykładowe wiersze dla najczęstszych działań: newslettera, kampanii Meta, artykułu sponsorowanego i SMS-a.
  4. Ustal regułę publikacji. Link bez wpisu w kolumnie „Sprawdził” nie może trafić do kampanii.
  5. Testuj każdy link w przeglądarce. Wklej go w oknie prywatnym i sprawdź adres końcowy po przekierowaniach.
  6. 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.