Reklamy w ChatGPT dla sklepu: konfiguracja od zera
- Największa strata czasu wyszła z formatu pliku: OpenAI nie przyjmuje XML, a panel nie podaje powodu odmowy.
- Do kampanii nie idzie cały magazyn. Z ponad pięciu tysięcy pozycji zostało 2656.
- Ustawienia kampanii pobraliśmy z żywego konta, bo różnią się od dokumentacji: rozliczenie dzienne, minimum 65 dolarów.
- Pomiar stoi na dwóch kanałach spiętych wspólnym numerem zamówienia, ale zgłoszenie konwersji nie przyjmuje kwoty: przychód system czyta z katalogu.
- Grupa reklam z niewłaściwym typem kreacji daje zerowy zasięg, co wygląda na problem z katalogiem, a nim nie jest.

- Punkt wyjścia i kolejność prac
- Które produkty w ogóle wpuścić do reklamy
- Trzy dni na komunikacie bez powodu
- Schemat pól, czyli czego nie ma w feedzie Google
- Pomiar konwersji na dwóch kanałach
- Kampania: gdzie panel rozjeżdża się z dokumentacją
- Lista kontrolna dla sklepu
- Jak emedia może w tym pomóc?
- Podsumowanie
- Przeczytaj także
- Najczęstsze pytania
Reklamy w ChatGPT uruchamialiśmy na własnym sklepie, żeby przejść całą drogę bez ryzyka po stronie klienta. Sklep to smartu.eu, elektronika sieciowa i monitoring, kilka tysięcy pozycji w magazynie. Poniżej jest zapis wdrożenia: konto reklamowe, katalog produktów, pomiar konwersji i kampania, razem z miejscami, w których utknęliśmy.
Wszystkie liczby pochodzą z naszego konta i z historii zmian w kodzie sklepu. Nie ma tu wyników sprzedaży, bo kampania jest świeża. Będzie osobny tekst, gdy zbierze się materiał, z którego da się coś policzyć.
Punkt wyjścia i kolejność prac
Konto reklamowe założone, strefa czasowa ustawiona na Warszawę, przeglądy po stronie OpenAI przeszły. Od tego momentu wdrożenie reklam dla sklepu ma cztery etapy i tylko jeden z nich to klikanie w panelu.
- Wybór produktów do kampanii i przygotowanie katalogu.
- Plik w formacie, który system przyjmie, pod stałym adresem.
- Pomiar konwersji, zanim ruszy pierwsza złotówka.
- Kampania z kierowaniem, budżetem i podpiętym zdarzeniem zakupu.
Kolejność nie jest przypadkowa. Kampania bez pomiaru pokaże kliknięcia i nic więcej, a wtedy pierwszy tydzień emisji jest wydatkiem bez wniosku. Jak wygląda sama instalacja pomiaru, opisaliśmy w tekście o pikselu OpenAI.
Które produkty w ogóle wpuścić do reklamy
Kampania produktowa kusi tym, że można wrzucić wszystko. To najdroższy sposób na jej prowadzenie. Napisaliśmy generator, który buduje osobny katalog pod reklamę, a nie kopiuje magazynu, i odsiewa cztery grupy pozycji.

- Towar niedostępny od ręki. Kliknięcie w produkt, którego nie ma, kosztuje tyle samo co w ten, który jest.
- Drobnica poniżej 150 złotych. Przy tanich pozycjach kliknięcie potrafi kosztować więcej niż zarobek na sztuce.
- Pozycje bez zapasu w cenie, czyli te, na których i tak nie zejdziemy do poziomu rynkowego.
- Produkty bez rozpoznanej marki. To pole jest wymagane, więc taka pozycja i tak zostałaby odrzucona przy wgraniu. Odsialiśmy ich 195.
Z pierwszego przebiegu na 5324 pozycjach do kampanii zakwalifikowało się 2850, po odrzuceniu 630 bez znanej ceny zakupu, 1529 poza przyjętymi widełkami cenowymi i 315 ze zbyt małym zapasem. Po dołożeniu warunku o marce plik ma 2656 produktów. Panel oczekuje przy tym co najmniej tysiąca pozycji, więc mniejsze sklepy powinny sprawdzić ten próg, zanim zaplanują pracę.
Osobna decyzja dotyczyła cen. Przy ręcznym porównaniu siedmiu produktów byliśmy od 42 do 53 procent powyżej najtańszych ofert w sieci, co przy reklamie produktowej z widoczną ceną kończy się płaceniem za kliknięcia bez szans na zamówienie. Obniżyliśmy 223 pozycje, średnio o 12 procent. Reklama nie naprawi oferty droższej o połowę i to jest praca do wykonania przed startem, nie po pierwszym raporcie.
Chcesz przejść tę drogę szybciej?
Uruchomiliśmy to u siebie, więc znamy każdy komunikat błędu na tej trasie. Zrobimy to samo w Twoim sklepie.
Trzy dni na komunikacie bez powodu
Mieliśmy gotowy plik produktowy dla Google Merchant Center, więc wkleiliśmy jego adres w katalogu. Panel odpowiedział jednym zdaniem: nie można zapisać hostowanego adresu URL. Bez kodu błędu, bez wskazania pola, bez podpowiedzi.
Sprawdziliśmy po kolei wszystko, co brzmiało sensownie. Czy plik jest publicznie dostępny z zewnętrznej sieci: był. Czy certyfikat jest poprawny: był. Nagłówki odpowiedzi z serwera aplikacji: poprawione przy okazji, bo brakowało deklaracji długości pliku. Ciasteczka modułu równoważącego ruch: nie przeszkadzały. Kraj katalogu: poprawiony wcześniej, bo katalog zakładany z kodu powstaje ze Stanami Zjednoczonymi.
Żaden z tych tropów nie był właściwy. Przyczyną był format pliku. Dokumentacja OpenAI wymienia dopuszczone warianty: tekst rozdzielany tabulatorami z rozszerzeniem .txt lub .tsv, plik .csv, ich odpowiedniki spakowane gzipem oraz format JSON Lines. Zaraz potem pada zdanie, którego brakowało nam w panelu: JSON, arkusze, XML, RSS i Atom nie są obsługiwane. Feed dla Merchant Center to XML, więc nie miał prawa przejść.

Schemat pól, czyli czego nie ma w feedzie Google

Zmiana formatu to nie było przepisanie XML na tabulatory. Schemat pól również jest inny, a nazwy z prefiksem g: są w nim wprost zakazane. Format własny OpenAI wymaga w każdym wierszu dziewięciu kolumn: item_id, title, description, url, brand, seller_name, image_url, availability i price.
Trzy różnice, które trzeba obsłużyć w generatorze:
- Numer produktu to
item_id, nieg:id. Musi być stały i niepowtarzalny, bo po nim system rozpoznaje pozycję między kolejnymi wgraniami. - Nazwa sprzedawcy jest wymagana. W feedzie dla Google takiego pola nie ma, tutaj trzeba je dopisać w każdym wierszu.
- Cena to jeden ciąg: kwota z dwoma miejscami po przecinku, spacja, trzyliterowy kod waluty. U nas
151.99 PLN, a nie osobna kolumna z walutą.
Gotowy plik ma 2656 wierszy i 1,1 megabajta, serwer podaje go z typem text/tab-separated-values, a odświeża się codziennie o 22:45 razem z pozostałymi katalogami sklepu. Przed wklejeniem adresu przeszliśmy go własnym sprawdzeniem: zero pustych pól wymaganych, zero cen w złym zapisie, zero powtórzonych numerów, wszystkie adresy po HTTPS. To pięć minut pracy, które oszczędza kolejnej rundy zgadywania, gdy panel znów czegoś nie przyjmie.
Jedna rzecz została nam do sprawdzenia i piszemy o tym wprost: w pliku nie ma kolumny is_ads_eligible. Katalogi zakładane w Menedżerze reklam domyślnie dopuszczają produkty do reklam, więc powinno być dobrze, ale przy katalogu zakładanym inaczej ta kolumna decyduje o wszystkim. Dołożenie jej to jedna linia w generatorze i zamknięcie tematu.
Pomiar konwersji na dwóch kanałach
Pomiar postawiliśmy przed uruchomieniem kampanii, na dwóch niezależnych drogach. Piksel w przeglądarce wysyła zdarzenia ze stron sklepu i zapisuje odnośnik kliknięcia w reklamę we własnym ciasteczku, dzięki czemu zamówienie da się powiązać z reklamą. Kanał serwerowy wysyła to samo zdarzenie z naszego zaplecza, więc dociera nawet wtedy, gdy przeglądarka zablokuje skrypty.
Dwa kanały oznaczają ryzyko policzenia jednego zamówienia dwa razy. Rozwiązanie jest proste i trzeba je zaplanować od początku: oba kanały wysyłają ten sam identyfikator zdarzenia, zbudowany z numeru zamówienia. System łączy wtedy obie wiadomości w jedną konwersję.
Trzy pułapki z tego etapu, każda kosztowała nas osobne podejście.
- Zgłoszenie konwersji nie przyjmuje kwoty. Nie ma pola na wartość zamówienia. Przychód system odczytuje z katalogu produktowego, po numerze produktu ze zdarzenia. Bez wgranego katalogu policzy więc konwersje, ale nie policzy pieniędzy, i nic o tym nie powie.
- Klucz do kampanii to inny klucz niż do konwersji. Klucz konta reklamowego odpowiada na zdarzenia komunikatem o braku uprawnień, a próba wystawienia nim nowego klucza kończy się odmową. Ten drugi tworzy się ręcznie w ustawieniach konta.
- Numer zamówienia po naszej stronie jest sprawdzany. Zdarzenie serwerowe wysyłamy dopiero po potwierdzeniu zamówienia w bazie sklepu, nigdy na podstawie tego, co przyszło od przeglądarki.
Szczegóły kanału serwerowego opisaliśmy przy pomiarze po stronie serwera.
Na koniec rzecz, o której łatwo zapomnieć: samo zbieranie zdarzeń nie wystarczy. Ustawienie konwersji trzeba podpiąć do kampanii, inaczej system widzi kliknięcia, a nie widzi sprzedaży.
Kampania: gdzie panel rozjeżdża się z dokumentacją
Kampanię składaliśmy z kodu, a ustawienia wzięliśmy z kampanii działającej już na koncie, nie z przykładów w dokumentacji. Powód jest taki, że się różnią. Cztery rzeczy, które kosztowały nas po jednym nieudanym żądaniu.
- Budżet dzienny, nie całkowity. Przykłady pokazują limit na całe życie kampanii, a nasze konto rozlicza się dziennie. Minimum to 65 dolarów na dobę, czyli około 250 złotych.
- Cel i sposób rozliczenia podaje się razem. Osobno każde z nich kończy się odmową.
- Grupa reklam używa strategii nastawionej na kliknięcia, zamiast stawki maksymalnej, a grupy z automatycznym ustalaniem stawek wymagają nagłówka zapobiegającego duplikatom. Liczymy go z treści żądania, więc powtórne uruchomienie skryptu nie zakłada drugiej takiej samej grupy.
- Kierowanie trzeba ustawić jawnie na Polskę. Konto domyślnie celuje w Stany Zjednoczone, o czym pisaliśmy przy kierowaniu geograficznym.
Grupa bez właściwej kreacji nie wyda ani złotówki
To najbardziej mylący błąd na całej trasie, bo wygląda jak problem z katalogiem. Kampania stoi, katalog wgrany poprawnie, a grupa reklam świeci czerwonym błędem i ma zerowy zasięg. Przyczyna leży gdzie indziej: kampania katalogowa wymaga osobnego typu kreacji. Zwykła reklama tekstowa, ta sama, która działa w kampanii bez katalogu, jest tutaj odrzucana.
Potrzebny jest szablon produktowy, a w nim tylko tytuł podlega zwykłej weryfikacji. Opis i cena muszą zostać znacznikami, czyli dosłownie {{product.body}} i {{product.price}}, bo w miejsce znacznika system podstawia dane produktu wybranego w momencie emisji. Wpisanie tam własnego tekstu nie przejdzie.

Nie ma kierowania demograficznego i to zmienia sposób planowania
Wieku, płci, zainteresowań ani gotowych grup odbiorców w tym systemie po prostu nie ma. Zostaje lokalizacja i podpowiedzi kontekstowe, czyli opis sytuacji, w której reklama ma się pojawić w rozmowie. Dla sklepu przyzwyczajonego do Google i Meta to największa zmiana w sposobie myślenia: celujesz w moment rozmowy, nie w metryczkę odbiorcy.
W praktyce oznacza to, że pracę, którą gdzie indziej wkłada się w grupy odbiorców, tutaj wkłada się w opis kontekstu i w jakość katalogu. Pisaliśmy o tym przy podpowiedziach kontekstowych oraz przy listach klientów, które w Polsce nie zadziałają.
Na koniec drobiazg diagnostyczny, który potrafi zmylić na godzinę. To samo zapytanie wysłane z Pythona wracało z odmową o kodzie 1010, a z Node przechodziło bez problemu. To blokada sieciowa dla konkretnego klienta, nie brak uprawnień klucza. Zanim uznasz klucz za zepsuty, spróbuj innym narzędziem.
Jest jeszcze jedna konsekwencja tego, że budżet siedzi na kampanii, a nie na grupie. Żeby przetestować kilka wersji tekstu bez zwiększania dziennego wydatku, dokładamy kolejne grupy do istniejącej kampanii. Zakładanie nowej kampanii na każdy test oznaczałoby 65 dolarów dziennie za każdą.
Lista kontrolna dla sklepu
Gdybyśmy zaczynali dziś od nowa, przeszlibyśmy tę listę po kolei.
- Sprawdź ceny na kilkunastu produktach, które chcesz reklamować. Jeśli jesteś wyraźnie powyżej rynku, zacznij od tego.
- Zbuduj katalog wyłącznie z pozycji dostępnych, opłacalnych i z rozpoznaną marką.
- Zapisz go jako tekst rozdzielany tabulatorami albo plik CSV. Nie jako XML.
- Zmapuj pola na schemat OpenAI: numer produktu, nazwa sprzedawcy, cena z kodem waluty w jednym polu.
- Sprawdź plik automatem: puste pola wymagane, format cen, duplikaty numerów, adresy po HTTPS.
- Wystaw plik pod stałym adresem i odświeżaj codziennie, bo pozycje wygasają po dwóch tygodniach.
- Postaw pomiar konwersji na dwóch kanałach ze wspólnym identyfikatorem zdarzenia.
- Podepnij ustawienie konwersji do kampanii i ustaw kierowanie na Polskę.
Jak emedia może w tym pomóc?
Przeszliśmy tę drogę na własnym sklepie i na własny koszt, więc w cudzym wdrożeniu nie ma już etapu zgadywania.
- Obsługa ChatGPT Ads: konto, katalog, pomiar i prowadzenie kampanii.
- Generator katalogu w formacie akceptowanym przez OpenAI, z automatycznym odświeżaniem i kontrolą pliku.
- Pomiar konwersji na dwóch kanałach, z deduplikacją i wartością zamówienia braną z bazy sklepu.
- Kampanie reklamowe PPC: ten sam katalog pracuje równolegle w Google Ads i Meta Ads.
Podsumowanie
Uruchomienie reklam produktowych w ChatGPT dla sklepu to praca na danych, nie na kreacji. Największa pułapka jest na samym początku i ma jedno zdanie rozwiązania: plik nie może być XML-em. Reszta to porządna selekcja asortymentu, pomiar postawiony przed startem i kilka ustawień kampanii, które trzeba wziąć z żywego konta zamiast z przykładów. Jeśli chcesz, żebyśmy zrobili to w Twoim sklepie, napisz do nas. Po drodze przyda się też ścieżka konfiguracji kampanii katalogowej w panelu.
Przeczytaj także
Kampania z katalogu produktów: cała ścieżka w panelu
Katalog produktów w praktyce: wgrywanie i aktualizacje
Pomiar po stronie serwera w ChatGPT Ads
Kampanie prowadzone rozmową: wtyczka Ads Manager w ChatGPT- Obsługa ChatGPT Ads: nasza oferta prowadzenia kampanii, cennik i zakres prac
Plik produktowy do ChatGPT: jak go zrobić i wgrać
Najczęstsze pytania
Dlaczego panel nie przyjmuje adresu z moim feedem?
Najczęstsza przyczyna to format pliku. OpenAI nie obsługuje XML, RSS ani Atom, a feed z Google Merchant Center jest zwykle XML-em. Dopuszczone są pliki rozdzielane tabulatorami z rozszerzeniem txt lub tsv, pliki csv, ich wersje spakowane gzipem oraz JSON Lines. Komunikat w panelu nie podaje powodu odmowy.
Czy plik z Google Merchant Center da się użyć po zmianie rozszerzenia?
Nie. Poza formatem różni się też schemat pól. Zamiast nazw z prefiksem g: obowiązują własne, wymagane jest pole z nazwą sprzedawcy, a cena to jeden ciąg z kwotą i trzyliterowym kodem waluty. Feed trzeba przemapować, nie przemianować.
Ile produktów trzeba mieć, żeby uruchomić kampanię produktową?
Panel oczekuje katalogu liczącego co najmniej tysiąc pozycji. Przy mniejszym asortymencie zostaje zwykła kampania z kartą w rozmowie, bez katalogu.
Czy do reklamy wpuszczać cały magazyn?
Nie warto. U nas z 5324 pozycji do katalogu reklamowego weszło 2656. Odsialiśmy towar niedostępny, drobnicę poniżej 150 złotych, pozycje bez zapasu w cenie oraz produkty bez rozpoznanej marki, bo marka jest polem wymaganym.
Jaki jest minimalny budżet takiej kampanii?
Na naszym koncie kampania nie przyjmuje budżetu dziennego niższego niż 65 dolarów, czyli około 250 złotych na dobę. Budżet ustawia się na kampanii, a nie na grupie reklam, więc kolejne wersje tekstu testuje się przez dokładanie grup do istniejącej kampanii.
Katalog wgrany poprawnie, a grupa reklam ma zerowy zasięg. Co jest nie tak?
Najczęściej niewłaściwy typ kreacji. Kampania katalogowa wymaga szablonu produktowego, a zwykła reklama tekstowa jest w niej odrzucana. W szablonie opis i cena muszą być znacznikami, czyli dosłownie {{product.body}} i {{product.price}}, bo system podstawia w to miejsce dane wybranego produktu. Błąd wygląda jak problem z katalogiem, choć katalog jest w porządku.
Czy da się kierować reklamy na wiek albo zainteresowania?
Nie. W ChatGPT Ads nie ma kierowania demograficznego ani gotowych grup odbiorców. Do dyspozycji zostaje lokalizacja i podpowiedzi kontekstowe opisujące sytuację rozmowy, w której reklama ma się pojawić. To najważniejsza różnica wobec Google Ads i Meta Ads.
Dlaczego widzę konwersje, ale nie widzę przychodu?
Bo zgłoszenie konwersji nie przyjmuje kwoty. Wartość zamówienia system odczytuje z katalogu produktowego po numerze produktu przekazanym w zdarzeniu. Bez wgranego katalogu policzy więc liczbę zamówień, ale nie ich wartość.
Jakie są wyniki tej kampanii?
Jeszcze ich nie podajemy. Kampania jest świeża, a liczby publikujemy dopiero wtedy, gdy da się z nich wyciągnąć wniosek. Ten wpis opisuje wdrożenie, nie skuteczność.
Jak to powstaje. Tematy, opinie i ostatnie słowo: Grzegorz Wysocki, właściciel emedia. Pierwsza wersja robocza, kod i testy: model Claude Opus 5 w narzędziu Claude Code. Nic nie idzie na stronę bez przeczytania i poprawienia przez człowieka. Grafiki składamy sami, sceny powstają z pomocą AI na bazie zdjęcia autora.
Na czym to stoi. Wdrożenie własne na sklepie smartu.eu, wrzesień 2026. OpenAI, dokumentacja dla programistów, Product Feeds oraz specyfikacja pliku produktowego, stan na 4 września 2026. OpenAI, Centrum pomocy, Create Campaigns from Product Feeds, stan na 4 września 2026. Liczby pochodzą z dokumentacji producenta albo z naszych kampanii. Czego nie wiemy, o tym piszemy wprost.
Realizacja: artykuł zrealizowany przez człowieka we współpracy z systemami AI. Redakcję i publikację firmuje autor. Wykorzystane systemy: Anthropic oraz OpenAI.
14:26
Zobacz, jak to wygląda na żywym koncie
Czternaście minut z konta reklamowego, które założyliśmy 1 września 2026: dwa sposoby uruchomienia kampanii, minimalny budżet i miejsca, w których system nie pokaże Ci tego, czego oczekujesz.
Obejrzyj filmOpublikowano 04.09.2026
Więcej na ten temat: Poradniki krok po kroku Widoczność w AI ChatGPT Ads
Rozwiń z nami swój biznes on-line
Zobacz również

Grzegorz Wysocki
CEO emedia
Komentarz autora: Zapisuję to dokładnie po to, żeby nikt nie szukał drugi raz. Wszystkie nasze hipotezy były rozsądne i wszystkie były nietrafione, bo panel nie podaje powodu odmowy. Gdyby komunikat brzmiał nieobsługiwany format pliku, sprawa zamknęłaby się w kwadrans. Tyle mogę powiedzieć na swoje usprawiedliwienie i tyle wart jest ten wpis: jedno zdanie, którego nie było w panelu.