Modelowane listy odbiorców nie zawierają konkretnych osób, tylko prawdopodobieństwa. Wyjaśniam, jak powstają, gdzie ich szukać w panelu i jak czytać ich raporty.
Pytanie o „reklamy z funkcją powiadomienia o dostępności towaru” wraca do mnie regularnie, zwykle w listopadzie, kiedy w sklepach kończą się najlepiej sprzedające się rozmiary i kolory. Właściciel widzi u konkurencji przycisk „powiadom mnie, gdy produkt wróci” i pyta, czy da się to włączyć w Google Ads.
Odpowiedź jest trochę rozczarowująca: w panelu Google Ads nie ma pola, które taką funkcję dokłada do reklamy. Nie ma też formatu, który sam zbiera zapisy na powiadomienia. To, co widać w wynikach, składa się z dwóch niezależnych rzeczy — informacji o dostępności, którą reklama pobiera z pliku produktowego, oraz mechanizmu „powiadom mnie” zbudowanego na stronie sklepu.
Dobra wiadomość jest taka, że oba elementy da się poskładać samemu i nie jest to trudne. Trudniejsze jest co innego: nierozwalenie przy tej okazji kampanii produktowych. Poniżej opisuję, jak do tego podchodzę.
Reklamy produktowe nie czytają Twojego sklepu na bieżąco. Korzystają z danych, które wysyłasz do Merchant Center — czyli z pliku produktowego. To on decyduje, co pojawi się w reklamie i czy pojawi się w ogóle.
O dostępności mówi atrybut availability. Do wyboru masz kilka wartości i różnią się one dużo bardziej, niż wynikałoby z ich nazw.
Dwie ostatnie wartości są tym, co najbardziej przypomina „reklamę z powiadomieniem o dostępności” — reklama nadal działa, a użytkownik dostaje w niej i na stronie jasny komunikat, kiedy otrzyma zamówiony towar. Warunek jest jednak twardy: zamówienie musi być naprawdę możliwe. Ustawienie backorder na produkcie, którego nie da się kupić, to najprostsza droga do odrzucenia oferty i ostrzeżenia w Merchant Center o niezgodności danych ze stroną.
Pamiętaj też, że dane w Merchant Center są tak świeże, jak Twój harmonogram pobierania pliku. Jeśli plik zaciąga się raz na dobę, przez kilkanaście godzin reklamujesz stany magazynowe z wczoraj. Przy szybkiej rotacji asortymentu warto ustawić częstsze pobieranie albo — jeśli platforma sklepu to obsługuje — aktualizacje przez API.
To rozróżnienie jest ważniejsze, niż wygląda, bo w sklepach od dawna funkcjonuje obyczaj wyłączania reklam niechcianych produktów przez ustawianie im out_of_stock. Wygodne, bo wymaga jednej podmiany w pliku, a produkt momentalnie znika z reklam.
Google udostępnił w kwietniu 2022 osobny atrybut pause, którego zadaniem jest właśnie czasowe wstrzymanie produktu w reklamach — bez kłamania o stanie magazynowym. Produkt zostaje w koncie, zachowuje historię, a jego oferta nie jest wyświetlana. Google zapowiedział przy tym, że wstrzymywanie reklam przez ustawianie availability na out_of_stock będzie od 2023 traktowane jako niepoprawne użycie atrybutu. Na dziś to zapowiedź, nie obowiązująca zasada, ale kierunek jest jednoznaczny i wolę mieć to poukładane wcześniej niż pod przymusem.
Praktyczna różnica przy powiadomieniach o dostępności jest taka: out_of_stock i pause zabierają Ci reklamę, preorder i backorder ją zostawiają. Jeśli zależy Ci, żeby produkt dalej pracował w kampaniach w czasie braku towaru, musisz umożliwić jego zamówienie z późniejszą realizacją. Jeśli tego nie chcesz, reklama zniknie, a powiadomienie o dostępności będzie musiało działać poza reklamą — na stronie sklepu i w mailu.
Sam formularz „powiadom mnie, gdy produkt będzie dostępny” to element sklepu, nie reklamy. Na popularnych platformach jest albo w standardzie, albo jako dodatek; przy własnym oprogramowaniu to prosty formularz z adresem e-mail powiązany z identyfikatorem wariantu produktu.
Z perspektywy kampanii ważniejsze od samego formularza jest to, co się dzieje z kartą produktu. Zapisuję sobie zawsze te same trzy zasady i widzę, że łamie je większość sklepów, które przejmuję.
Po pierwsze, strona produktu musi zostać pod tym samym adresem i zwracać kod 200. Kasowanie karty albo przekierowywanie jej na kategorię niszczy nie tylko powiadomienie, ale i całą historię tego adresu w wyszukiwarce. Odbudowanie pozycji dla wracającego produktu bywa dużo droższe niż utrzymanie nieaktywnej karty.
Po drugie, komunikat na stronie ma być zgodny z tym, co mówi plik produktowy. Jeśli w pliku jest backorder z datą, na stronie musi być ta sama data i realna możliwość zamówienia. Jeśli w pliku jest out_of_stock, na stronie nie może stać przycisk „dodaj do koszyka”. Systemy Google porównują stronę z danymi z pliku i rozbieżność kończy się ostrzeżeniem albo odrzuceniem oferty.
Po trzecie, dane strukturalne produktu powinny mówić to samo co plik. Sklep, w którym znaczniki twierdzą, że produkt jest dostępny, a formularz zbiera zapisy na powiadomienie, wysyła dwa sprzeczne sygnały jednocześnie.
Sam mail z powiadomieniem traktuję jak zwykłą wiadomość transakcyjną: krótki, z linkiem prosto do wariantu, wysyłany natychmiast po zmianie stanu, nie w nocnym wsadzie. Ludzie, którzy zostawili adres, chcieli konkretny rozmiar konkretnego modelu, a nie newsletter o nowej kolekcji.
Największy błąd, jaki widzę przy brakach magazynowych, to wyłączanie całych kampanii albo grup produktowych, bo „i tak nie ma czego sprzedawać”. Po powrocie towaru kampania startuje od zera z uczeniem, a strategia ustalania stawek traci ciągłość danych.
Jeśli brak dotyczy pojedynczych produktów, nie ruszam kampanii. Produkty niedostępne wypadają z aukcji same, a budżet przepływa na to, co zostało na stanie. W Performance Max i w kampaniach produktowych to dzieje się automatycznie — właśnie dlatego plik musi być aktualny, bo inaczej system dalej pcha ruch na coś, czego nie ma.
Jeśli brak dotyczy całej grupy asortymentu, wolę zawęzić kierowanie niż wyłączyć kampanię. W kampaniach produktowych wystarczy podział grupy produktów i ustawienie wykluczenia dla identyfikatorów, których nie ma. W Performance Max robi się to przez grupę plików produktowych albo etykietę własną w pliku — i to jest, moim zdaniem, najlepszy argument za tym, żeby mieć w pliku etykietę opisującą stan magazynowy. Bez niej każda taka operacja to grzebanie w identyfikatorach po jednym.
Osobno warto zająć się ludźmi, którzy już byli na karcie niedostępnego produktu. Lista odbiorców z tych odwiedzin plus remarketing dynamiczny po powrocie towaru to najprostsza forma „powiadomienia” dla osób, które nie zostawiły adresu. Nie wymaga zgody na mailing i wykorzystuje dane, które i tak masz.
Zapisy na powiadomienie warto mierzyć — to jedna z niewielu twardych informacji o popycie na towar, którego nie masz. Ale sposób, w jaki wpiszesz to zdarzenie do Google Ads, ma konsekwencje.
Jeśli oznaczysz zapis jako konwersję główną, trafi on do kolumny „Konwersje” i zacznie wpływać na strategię stawek. Skutek jest przewidywalny: system nauczy się, że tanio zdobywa „konwersje” na kartach produktów, których nie ma na stanie, i zacznie kierować tam więcej ruchu. Sprzedaż od tego nie wzrośnie, a raport będzie wyglądał lepiej niż stan kasy.
Dlatego zapis ustawiam jako konwersję dodatkową — jest widoczny w kolumnie „Wszystkie konwersje”, nie miesza się z optymalizacją i nadal daje się analizować. Tak samo traktuję zapis do newslettera i inne zdarzenia pośrednie.
Z tych danych korzystam potem dwojako. Liczba zapisów na wariant mówi zakupom, co zamówić w pierwszej kolejności. Stosunek zapisów do wejść na kartę pokazuje, czy w ogóle warto ten produkt utrzymywać w ofercie. To rzadki przypadek, w którym raport z Google Ads bezpośrednio przekłada się na decyzję magazynową.
Nie zastąpi towaru. Widzę to na większości kont, które przejmuję: dobrze zrobiony formularz powiadomienia ratuje część zainteresowania, ale nie zatrzymuje osoby, która chce kupić dziś i za chwilę znajdzie to samo u kogoś innego. Traktuję go jako sposób na odzyskanie kontaktu, nie na uratowanie sprzedaży.
Nie naprawi też sezonowej dziury. Jeśli w szczycie sprzedażowym połowa asortymentu ma pusty stan, problemem jest planowanie zapasu, a nie konfiguracja kampanii. W listopadzie widać to najostrzej, bo koszt kliknięcia i tak jest wyższy niż zwykle, a ruch trafia na karty, których nie da się kupić.
I ostatnia rzecz, o której warto pamiętać: nie ma osobnego formatu reklamy z powiadomieniem o dostępności, więc nie szukaj przełącznika w kampanii. Masz do dyspozycji atrybuty pliku produktowego, kod na stronie i zdrowy porządek w danych. Brzmi mniej efektownie niż nowa funkcja w panelu, ale działa niezależnie od tego, co Google akurat wdraża.
Używamy plików cookies, aby ułatwić Ci nawigację oraz wykonywanie określonych funkcji. Szczegółowe informacje o wszystkich plikach cookies znajdziesz w każdej kategorii zgody poniżej.
Pliki cookies oznaczone jako "Niezbędne" są przechowywane w Twojej przeglądarce, ponieważ są one kluczowe dla zapewnienia podstawowych funkcji strony.
Używamy również plików cookies firm trzecich, które pomagają nam analizować, w jaki sposób korzystasz z tej strony, zapamiętują Twoje preferencje oraz dostarczają treści i reklamy odpowiednie dla Ciebie. Te pliki cookies będą przechowywane w Twojej przeglądarce tylko za Twoją uprzednią zgodą.
Możesz zdecydować, czy chcesz włączyć lub wyłączyć niektóre bądź wszystkie te pliki cookies, jednak wyłączenie niektórych z nich może wpłynąć na Twoje doświadczenia podczas przeglądania strony.
| Cookie | Czas przechowywania | Opis |
|---|---|---|
| __cf_bm | 13 minutes | Cloudflare bot management — distinguishes humans from bots. |
| rc::* | Persistent | Google reCAPTCHA — localStorage holding anti-bot challenge state. |
| Cookie | Czas przechowywania | Opis |
|---|---|---|
| wpEmojiSettingsSupports | Session | WordPress — sessionStorage flag caching whether the browser can render emoji (feature detection). |
| ytidb* | Persistent | YouTube — IndexedDB storing playback/search state for embedded videos. |
| Cookie | Czas przechowywania | Opis |
|---|---|---|
| _ga_* | 400 days | Google Analytics 4 — persists session state per property. |
| _ga | 400 days | Google Analytics — distinguishes unique users via a client id. |
| Cookie | Czas przechowywania | Opis |
|---|---|---|
| NID | 183 days | Google — stores preferences for personalized ads. |
| fr | 90 days | Meta — encrypted Facebook id and browser id for ads. |
| _gcl_au | 90 days | Google AdSense/Ads — experiments with advertising efficiency (conversion linker). |
| Cookie | Czas przechowywania | Opis |
|---|---|---|
| __Secure-YNID | 180 days | |
| YSC | Session | |
| __Secure-ROLLOUT_TOKEN | 180 days | |
| VISITOR_INFO1_LIVE | 180 days | |
| VISITOR_PRIVACY_METADATA | 180 days | |
| datr | 400 days | |
| sb | 400 days | |
| wd | 7 days |