Przejdź do treści

Shoper API i feeds_excludes: zdjęcie wykluczenia z kampanii działa, nałożenie w naszym teście nie

W Shoperze o tym, czy produkt trafia do pliku produktów dla Google czy Meta, decyduje pole feeds_excludes. Dokumentacja API pokazuje je w przykładzie zapisu produktu, więc wygląda na to, że wykluczenie da się ustawić automatem. W teście na żywym sklepie zapis wykluczeń z plików kampanii Google i Meta nie zostawał w rekordzie, także wtedy, gdy celem było zdjęcie tylko wykluczenia Google. Opisuję dokładny przebieg testu, jak w takiej sytuacji dobierać produkty do plików kampanii, jak wygląda odbudowa plików według reguły i jakie zabezpieczenia ma nocny proces.

W skrócie

W teście na jednym sklepie przez API dało się zdjąć wykluczenia z plików kampanii, ale nie dało się ich nałożyć. Automat mógł więc tylko dokładać produkty do plików, a wykluczanie i przywracanie zostało w panelu. Trafienie produktu do pliku nie uruchamia jeszcze reklamy; o tym decyduje konfiguracja kampanii. Dobór produktów do plików warto oprzeć na regule z histerezą i zabezpieczeniach, bo zmiany, której API nie cofnie, trzeba potem poprawiać ręcznie.

Zapisy pola feeds_excludes w teście na żywym sklepie: wysłana lista i odczyt po zapisie
Wysłana lista wykluczeńOdczyt po zapisieWniosek
Googlepusta listawykluczenie Google nie zapisało się
Metapusta listawykluczenie Meta nie zapisało się
Google i Metapusta listaoba odrzucone
Google, Meta i trzeci plik katalogutylko trzeci pliktrzeci plik zapisuje się normalnie
[0]brak wykluczeńprodukt w plikach obu kampanii
01

Objaw: zapis wykluczenia nie zostaje w rekordzie

Pole feeds_excludes trzyma listę plików produktów, z których produkt jest wykluczony. Dokumentacja Shoper API dla zapisu produktu pokazuje to pole w przykładzie zapisu, z identyfikatorem pliku na liście.

W teście na żywym sklepie zapisy z identyfikatorami plików kampanii Google albo Meta wracały przy odczycie jako pusta lista, a trzeci plik katalogu zapisywał się normalnie. Według naszej obserwacji wykluczeniami z plików kampanii zarządza usługa kampanii Shopera, a nie zapis produktu. Zapis listy z wartością 0 oznaczał „brak wykluczeń” i działał. W tym sklepie przez API dało się więc produkt do plików kampanii dodać, ale nie wykluczyć. Inne sklepy i przyszłe wersje platformy mogą zachowywać się inaczej, dlatego przed każdym masowym zapisem tego pola robi się jeden zapis próbny i odczyt wyniku.

02

Druga pułapka: Google i Meta zdejmują się razem

Dokładny przebieg: produkt był wykluczony z plików Google i Meta. Celem było zdjęcie tylko wykluczenia Google, więc wysłana lista zawierała samo wykluczenie Meta. Odczyt po zapisie pokazał pustą listę: wykluczenie Meta też zniknęło i produkt trafił do plików obu kampanii. Ponieważ samo wykluczenie Meta też nie zapisuje się przez API, nie da się przez API zdjąć jednego wykluczenia i zostawić drugiego.

To ma znaczenie, jeśli sklep prowadzi w obu kanałach inne asortymenty. Wtedy dodanie produktu przez API do pliku jednej kampanii jest zarazem decyzją o drugiej, a wykluczenie z drugiej trzeba potem zrobić ręcznie w panelu. Trafienie do pliku nie oznacza jeszcze wyświetlania reklamy: to zależy od ustawień kampanii, budżetu i reguł platformy reklamowej.

03

Dlaczego warto w ogóle automatyzować dobór produktów

Wykluczenia nakładane ręcznie latami rzadko są potem przeglądane. W jednym z obsługiwanych sklepów poza plikami produktów było około dwóch trzecich dostępnego asortymentu, czyli produktów na stanie, które nie mogły się pokazać w kampaniach produktowych. Z drugiej strony produkt z jednym rozmiarem i jedną sztuką nie powinien być promowany w kampanii produktowej. Potrzebna jest reguła, która co noc ocenia, co pasuje do plików kampanii.

04

Reguła doboru produktów do kampanii

Reguła, którą stosujemy, ma kilka elementów. Konkretne progi zależą od asortymentu sklepu, więc tu opisuję tylko ich rolę:

  • wejście do kampanii przy wystarczającej liczbie sztuk i dostępnych rozmiarów albo przy produkcie w jednym rozmiarze
  • wyjście przy łagodniejszym progu niż wejście, czyli histereza: produkt na granicy nie wskakuje i nie wypada co noc
  • wyjątek dla produktów z dużym zapasem w części rozmiarów
  • sezonowość: produkty letnie poza sezonem zostają poza kampanią, a produkty całoroczne nie podlegają tej zasadzie
  • liczenie z nocnego zrzutu katalogu, bez dodatkowych zapytań do API tylko po to, żeby policzyć regułę

Produkty do dodania trafiają do plików przez API. Produkty do wykluczenia trafiają do pliku CSV, z którego ktoś wyklucza je w panelu, bo w tym sklepie API tego nie pozwalało zrobić. Nocny dobór jest więc w połowie ręczny: dodania działają same, wykluczenia czekają na człowieka.

05

Zabezpieczenia nocnego procesu

Dodania, których API nie cofnie, trzeba potem wykluczać ręcznie, więc proces ma kilka bezpieczników:

  • bez jawnej flagi zapisu działa tylko podgląd
  • w trybie nocnym odmawia zapisu, jeśli liczba dodań przekracza ustalone maksimum: nietypowa noc oznacza zwykle zmianę w danych źródłowych, a nie w regule
  • przed zmianą zapisuje kopię pola feeds_excludes każdego zmienianego produktu
  • przed zapisem czyta produkt na żywo, a nie ze zrzutu, i pomija go, jeśli już jest w pliku
  • pierwszy zapis jest próbny: jeśli odczyt pokazuje, że wykluczenie nie zostało zdjęte, proces przerywa całą noc
  • zapisuje produkty z krótką przerwą między nimi, żeby nie zbliżać się do limitów API

W trybie nocnym proces loguje ostrzeżenie, gdy wykluczeń do zrobienia w panelu jest więcej niż kilkadziesiąt. Limit wykluczeń nie blokuje nocy, bo te i tak przechodzą przez człowieka.

Kopia pola sprzed zmiany jest dowodem, co zmieniono, ale nie daje automatycznego cofnięcia, bo nałożenie wykluczeń przez API nie działało. W opisanym sklepie zamiast cofania zrobiliśmy odbudowę plików według reguły: w panelu wykluczono z plików kampanii wszystkie produkty, a potem automat dodał z powrotem tylko te, które spełniają regułę. Kontrola pełnym odczytem katalogu potwierdziła, że w plikach są dokładnie produkty z reguły, a żaden z wcześniej wskazanych do wykluczenia nie wrócił.

Taka odbudowa odtwarza zbiór wynikający z reguły, a nie dokładny stan sprzed zmiany. Wcześniejsze ręczne wyjątki, np. produkt świadomie wykluczony mimo spełnienia reguły albo dodany mimo jej niespełnienia, trzeba odczytać z kopii pola sprzed zmiany i nanieść ponownie: wykluczenia w panelu, a dodania przez API.

06

Kiedy dobór do kampanii zrobisz sam, a kiedy z kimś

Sam

Jednorazowy przegląd wykluczeń w panelu, odczyt pola z API i dodanie wybranych produktów do plików z zapisem próbnym. Przy kilkudziesięciu produktach panel wystarczy.

Z kimś, kto to robił

Tysiące produktów, zmienne stany, kampanie w Google i Meta naraz i potrzeba, żeby dodania do plików działały co noc automatycznie i bez skakania produktów, a wykluczenia trafiały na gotową listę do zrobienia w panelu.

Gdy zlecasz nam dobór produktów do plików kampanii, dostajesz analizę obecnych wykluczeń, zapis próbny na Twoim sklepie, regułę dopasowaną do asortymentu, nocny proces z zabezpieczeniami z sekcji 05, listę produktów do wykluczenia w panelu i opis odbudowy plików według reguły, z listą ręcznych wyjątków do ponownego naniesienia. Więcej o automatyzacjach przez Shoper API i o pliku produktów Google z Shopera.

FAQ: feeds_excludes i kampanie produktowe

W naszym teście na żywym sklepie nie. Zapis identyfikatora pliku kampanii Google albo Meta w polu feeds_excludes wracał przy odczycie jako pusta lista, a trzeci plik katalogu zapisywał się normalnie. Przez API dało się wykluczenie zdjąć, czyli dodać produkt do pliku, a wykluczyć można go było tylko w panelu. Przed masowym zapisem warto to sprawdzić zapisem próbnym na własnym sklepie.
Brak wykluczeń: produkt trafia do plików produktów. Taką wartość wysyła się, gdy lista wykluczeń ma być pusta.
W naszym teście tak. Produkt był wykluczony z plików Google i Meta, a wysłana lista zawierała samo wykluczenie Meta, żeby zdjąć tylko Google. Odczyt pokazał pustą listę, więc produkt trafił do plików obu kampanii. Ponieważ wykluczenie Meta też nie zapisywało się przez API, nie dało się zdjąć jednego wykluczenia i zostawić drugiego.
Nie samo w sobie. Plik produktów dostarcza dane produktu, a to, czy i gdzie reklama się wyświetli, zależy od konfiguracji kampanii, budżetu i reguł platformy reklamowej.
W naszym przypadku tylko ręcznie w panelu, bo nałożenie wykluczenia przez API nie działało. Kopia pola sprzed zmiany pokazuje, co zmieniono, ale nie cofa zmiany. Sprawdzona ścieżka to odbudowa według reguły: wykluczyć w panelu wszystko, dodać automatem produkty spełniające regułę i potwierdzić stan pełnym odczytem katalogu. Odtwarza ona zbiór z reguły, a nie dokładny stan sprzed zmiany, więc wcześniejsze ręczne wyjątki trzeba nanieść ponownie na podstawie kopii pola.