Enhanced Conversions działa tak, że razem z konwersją wysyła dane klienta, żeby Google mogło dopasować je do zalogowanego użytkownika, którego kliknięcia inaczej nie dałoby się przypisać. Cały mechanizm opiera się na jednym wymogu: te dane mają być zahaszowane SHA-256, zanim opuszczą przeglądarkę. Google nigdy nie dostaje adresu; dostaje skrót i porównuje skróty.
Kiedy ten wymóg nie jest spełniony, dzieją się naraz dwie rzeczy. Współczynnik dopasowania po cichu się nie poprawia, a adres e-mail klienta został przesłany otwartym tekstem do endpointu reklamowego. Pierwsze to problem pomiarowy. Drugie to problem, w który wchodzą inne działy.
Jak wygląda poprawne pole na łączu
Są dwie prawidłowe postacie i warto znać obie, bo wdrożenia się różnią:
- Goły skrót.
emniesie 64 znaki szesnastkowe i nic poza tym. Tak jest, gdy własny kod haszuje wartość, zanim poda ją tagowi. - Koperta Google taga.
tv.1~em.<sha256>~ph.<sha256>— tag sam zebrał wartości i zapakował kilka z nich w jeden parametr. Każdy segment po prefiksie nadal jest skrótem; koperta nie jest pretekstem, żeby przestać sprawdzać.
Wszystko inne to defekt, a te cztery spotkasz naprawdę.
Tag Master waliduje pola w każdej konwersji Google Ads, którą widzi, i mówi, w jakiej postaci jest
każde z nich: SHA-256, MD5 albo otwarty tekst z ostrzeżeniem. Czyta kopertę tv.1~,
zamiast traktować ją jak niezahaszowany ciąg — narzędzie, które podnosi fałszywy alarm na poprawnym
wdrożeniu, byłoby gorsze niż brak sprawdzenia.
Cztery sposoby, w jakie to się psuje
- Otwarty tekst. Wartość w
emnadal jest adresem e-mail, zwykle dlatego, że zmienną z dataLayer podpięto wprost do pola danych użytkownika w założeniu, że tag ją zahaszuje. Czasem haszuje; gdy wartość przychodzi przez zmienną, a nie przez zbieranie ze strony — nie. - MD5. Trzydzieści dwa znaki szesnastkowe. Odziedziczony wewnętrzny helper do haszowania, użyty ponownie. Żądanie się udaje i nie pasuje do niczego.
- Zahaszowane bez normalizacji. To ten kosztowny, bo wszystko wygląda dobrze.
[email protected], ten sam adres z wielką literą i ten sam z jedną spacją na końcu dają trzy zupełnie różne skróty. Utnij białe znaki, zamień adres na małe litery, usuwaj kropki i plus-tagi tylko tam, gdzie Google tak mówi, a numer telefonu doprowadź do postaci E.164 przed haszowaniem — inaczej wysyłasz poprawny skrót niewłaściwego ciągu. - Zahaszowane dwa razy. Kod haszuje wartość, a tag haszuje ją jeszcze raz. Sześćdziesiąt cztery znaki szesnastkowe, nienagannie uformowane, pasujące do nikogo.
Tylko dwa pierwsze widać po kształcie. Dwa ostatnie wyglądają identycznie jak sukces — dlatego sprawdzenie musi obejmować także odczytanie wartości, którą wkładasz, a nie tylko tej, która wyszła.
Dlaczego interfejs Ci tego nie powie
Diagnostyka Google Ads raportuje konwersje już przetworzone, dni później, a raportuje pokrycie: ile konwersji niosło dane użytkownika. Nie może zaraportować, że skrót policzono na nieznormalizowanym ciągu, bo od strony Google jest to po prostu hash, który nie pasował. Dwa nierozróżnialne wyniki, jeden z nich to Twój błąd.
Żądanie jest przy tym natychmiastowe i jednoznaczne. Zrób testową konwersję, przeczytaj trafienie, potwierdź kształt każdego pola — i masz odpowiedź w minutę, a nie w tydzień.
Dwie rzeczy do sprawdzenia przy okazji
Po pierwsze, strona atrybucji. Enhanced Conversions poprawia dopasowanie; nie zastępuje łańcucha
kliknięcia. Jeśli konwersja nie niesie gclid ani ciasteczka linkera, pod spodem jest osobny
problem, a zaczyna się on od
kampanii, która przyprowadziła odwiedzającego.
Po drugie, zgoda. Dane użytkownika opuszczające przeglądarkę przy odmówionym
ad_user_data to gorsza wersja tego samego wniosku i również nie jest czymś, co pokaże
interfejs Google Ads. Odczytanie stanu zgody niesionego
przez każde trafienie mówi, czy żądanie w ogóle powinno było wyjść.
Pytania
Jak sprawdzić, że dane Enhanced Conversions są zahaszowane?
Przeczytaj żądanie konwersji. Zahaszowane pole to 64 znaki szesnastkowe albo koperta Google taga: tv.1~em.<hash>~ph.<hash>. Wszystko, co nadal wygląda jak adres e-mail, jest otwartym tekstem — a to nie tylko zepsuta konfiguracja, ale i problem zgodności.
Które pola muszą być zahaszowane?
em, ph, fn, ln, ct, st i zp. Wyjątkiem jest country — jedzie jako zwykły kod ISO 3166-1 alpha-2 i tak ma być.
Czy MD5 wystarczy?
Nie. Google Ads przyjmuje wyłącznie SHA-256. Skrót MD5 ma 32 znaki szesnastkowe zamiast 64, więc widać go od razu — i zostanie przyjęty przez żądanie, nie pasując do niczego.
Dlaczego diagnostyka Google Ads mówi, że wszystko jest w porządku?
Bo raportuje dane już przetworzone, z opóźnieniem liczonym w dniach, i raportuje pokrycie, a nie poprawność. Pole zahaszowane bez wcześniejszej normalizacji daje poprawnie wyglądający skrót, który nie pasuje do nikogo, a diagnostyka nie ma jak tego powiedzieć.
Reszta tej grupy: GA4, server-side i atrybucja
- Debugowanie GA4, gdy DebugView nic nie pokazuje
- GA4 liczy wszystko dwa razy
- Jak debugować server-side GTM
- Google Tag Gateway: sprawdzenie, czy naprawdę działa
- Gdy GA4 twierdzi, że ruch przyszedł skądinąd
Cała grupa GA4, server-side i atrybucja
Sprawdź na własnej stronie
Tag Master jest darmowy, nie wymaga konta i nie zbiera żadnych danych.
Dodaj do Chrome — za darmo