Problemy sklepów internetowych – przemyślenia, rozwiązania, sukcesy i porażki

Dziennik wdrożeń

Bez teorii. Tylko to, co faktycznie weszło na produkcję. Pisane przez człowieka, nie ai.

Analityka 3 min

Jak wdrożyć server-side tagging z poszanowaniem zgód

Cała różnica między dobrym a złym wdrożeniem sprowadza się do jednego: czy informacja o zgodzie dociera do pośrednika i czy pośrednik ją respektuje.

Dobra wiadomość jest taka, że server-side tagging da się wdrożyć tak, aby szanował decyzje użytkowników i nie wymaga to wcale dużo pracy ;) Cała różnica między dobrym a złym wdrożeniem sprowadza się do jednego: czy informacja o zgodzie dociera do pośrednika i czy pośrednik ją respektuje.

  • Przekazywanie decyzji użytkownika na serwer - pośrednik musi wiedzieć to samo, co przeglądarka: czy była zgoda, czy odmowa. Zatem to co klika użytkownik w Cookie baner powinno trafić do serwera. Ta informacja jest w parametrach żądania (m.in. gcs) i przy typowej konfiguracji dociera na serwer sama - ale to trzeba sprawdzić, a nie założyć. Sprawdzenie jest proste, bo w szczegółach żądania do pośrednika (zakładka Payload) parametr gcs ma być obecny i zgodny z tym, co użytkownik faktycznie wybrał.

    Co dokładnie znaczą poszczególne parametry, rozpisałem w osobnym wpisie: Parametry zgody, które warto znać.

  • Wysyłka dalej tylko przy zgodzie - to, że żądanie dotarło do pośrednika, nie oznacza, że musi polecieć dalej. Pośrednik zna decyzję użytkownika (punkt wyżej) i na jej podstawie decyduje, co przekazać platformom: do analityki, systemów reklamowych czy API platform społecznościowych. Brak zgody powinno się równać brakiem wysyłki dalej. Właśnie w tym miejscu - a nie w banerze - rozstrzyga się, czy odmowa użytkownika cokolwiek znaczy.

  • Ciasteczka zatrzymane na pośredniku - jak opisałem wyżej, przeglądarka i tak dołączy do żądania ciasteczka zapisane w domenie sklepu, w tym identyfikatory innych narzędzi. Pośrednik nie musi jednak robić z nich użytku. W zasadzie, to nie powinien przekazywać ich dalej do platform ani zapisywać u siebie ponad potrzebę. Domyślnie nikt tego nie pilnuje i jest to ustawienie, które trzeba świadomie wybrać.

  • Test z zewnątrz - wdrożenie należy sprawdzić tak, jak zobaczy je użytkownik. Czyli otworzyć okno prywatne przeglądarki, włączyć DevTools i w zakładce Network użyć filtrowania po „collect”. Zbadać należy dwa stany, czyli przed jakąkolwiek decyzją o zgodach i po odmowie. Jeśli po odmowie żądania do pośrednika nadal wychodzą z pełnymi danymi, wdrożenie nie respektuje decyzji i trzeba wrócić do punktu 2. Pełna procedura testu, powinna też obejmować wszystkie możliwe warianty zgód wraz ze sprawdzeniem, czy każda zmiana natychmiast wysyła oczekiwane parametry (a nie dopiero po odświeżeniu strony).

Zakładka Payload w DevTools na patrizia.aryton.pl przed decyzją: parametr gcs ma wartość G100
patrizia.aryton.pl w oknie prywatnym, baner widoczny, nic jeszcze nie kliknięte. Zakładka Payload żądania do pośrednika: gcs=G100, gcd=13p3p3p2p5l1, npa=1.
Zakładka Cookies w DevTools: lista ciasteczek wysłanych w żądaniu do kolektora w domenie sklepu
To samo żądanie, zakładka Cookies. W nagłówku jedzie siedem ciasteczek pierwszej strony: _fbp, ajs_anonymous_id, PHPSESSID, pp_deferred_loading_once, pp_pixel_time_event i dwa PrestaShop. Zrzuty pokazują mechanizm, a nie ocenę wdrożenia: czy serwer przekazuje to dalej mimo odmowy, z przeglądarki nie widać.

Ciekawostka - żądanie do pośrednika i żądanie wprost do Google są w zakładce Network niemal nieodróżnialne. To często te same parametry, ta sama struktura, ten sam tid. Jedyna różnica to domena i dlatego audyt oparty na listach domen daje fałszywie pozytywne wyniki dokładnie w tych sklepach, które w infrastrukturę pomiarową zainwestowały najwięcej.

Lista żądań w DevTools z kolumną Url: trzy żądania o nazwie collect kierowane do google-analytics.com, googlesyndication.com i do domeny sklepu
Lista żądań z włączoną kolumną Url. Wszystkie noszą nazwę collect: część idzie na region1.google-analytics.com i pagead2.googlesyndication.com, podświetlone na patrizia.aryton.pl/01e1/gs/ccm/collect.

Warto też wspomnieć, że podpięcie pośrednika pod decyzje jakie wyraża użytkownik w Cookie banerze, to technicznie niewielka praca. A jednocześnie to cała różnica między wdrożeniem, którym można się chwalić, a schowanym problemem, który kiedyś ktoś znajdzie w zakładce Network ;)