Ready2GEO Reklamy ChatGPT

Piksel ChatGPT Ads i Conversions API: wdrożenie śledzenia konwersji

Ostatnia aktualizacja: 24 sierpnia 2026, zweryfikowane na podstawie oficjalnej dokumentacji OpenAI. Nazwy zdarzeń i parametrów przytaczane na tej stronie pochodzą z dokumentacji deweloperskiej OpenAI i mogą się zmieniać w trakcie bety.

Bez pomiaru konwersji kampania ChatGPT Ads pozostaje ślepa: wiesz, ile wydajesz, ale nie wiesz, co z tego masz. Przede wszystkim zaś nie możesz włączyć optymalizacji pod konwersję. Ta strona opisuje obie oficjalne metody, piksel przeglądarkowy i Conversions API po stronie serwera, oraz sposób ich współdziałania. Szerszy kontekst znajdziesz w naszym przewodniku ChatGPT Ads.

9 min czytania
J Josh Ekspert SEO i GEO w Ready2GEO

Wyszukiwarki AI omawiane na tej stronie

2 oficjalne źródła pomiaru: piksel JavaScript i Conversions API po stronie serwera

Dlaczego pomiar jest wymaganiem, a nie opcją

Trzy powody, z czego jeden blokujący:

  • Blokujący: optymalizacja pod konwersję (oCPC) wymaga, by śledzenie było już skonfigurowane, przez piksel JavaScript, Conversions API albo oba naraz. Bez sygnału system nie ma czego optymalizować.
  • Raportowanie w Ads Manager zawiera kolumnę konwersje, która pozostaje pusta, jeśli nic nie jest podpięte.
  • Wyliczenie kosztu pozyskania klienta zależy całkowicie od tych danych: bez nich sterujesz przez CPC, czyli przez wydatek, a nie przez wynik.

Ogólna zasada sformułowana przez OpenAI jest prosta: tworzysz źródło danych (data source) w Ads Manager, a następnie wysyłasz do niego zdarzenia konwersji przez piksel, przez API albo przez oba.

Piksel czy Conversions API: co wybrać?

Piksel JavaScriptConversions API
Gdzie działaW przeglądarce odwiedzającegoWyłącznie na Twoim serwerze
WdrożenieSkrypt do umieszczenia w sekcji headPraca deweloperska po stronie back-endu
OdpornośćWrażliwy na blokery i ograniczenia przeglądarekOpenAI przedstawia je jako źródło bardziej wiarygodne niż sam piksel
Rekomendacja OpenAIPunkt wyjściaDo użycia, gdy jest to możliwe, dla dokładniejszych danych

Pragmatyczna odpowiedź nie brzmi „jedno albo drugie”, tylko „oba, z deduplikacją”. Piksel wdraża się w godzinę i od razu ożywia kampanie; API podłącza się później i trwale zabezpiecza pomiar.

Instalacja piksela pomiarowego

Piksel pomiarowy ChatGPT Ads to SDK przeglądarkowy służący do mierzenia zdarzeń na Twojej stronie, które można przypisać reklamom w ChatGPT. Skrypt ładuje się asynchronicznie z adresu https://bzrcdn.openai.com/sdk/oaiq.min.js, umieszcza się go w sekcji <head>, a następnie inicjalizuje identyfikatorem piksela:

oaiq("init", { pixelId: "TWOJE-PIXEL-ID" });

Parametr pixelId jest obowiązkowy i tworzy się go w Ads Manager. Opcjonalny parametr debug wypisuje aktywność SDK w konsoli przeglądarki, co jest przydatne na etapie testów odbiorczych.

Cały pomiar przechodzi dalej przez jedno polecenie: oaiq("measure", eventName, eventData, options).

Zdarzenia standardowe, zdarzenia niestandardowe i ich ograniczenia

Każde zdarzenie standardowe oczekuje obiektu danych, którego pole type musi się zgadzać. Dokumentacja deweloperska OpenAI grupuje je następująco:

RodzinaZdarzeniaOczekiwane pole type
Handelorder_created, items_added, checkout_startedcontents
Treśćpage_viewed, contents_viewedcontents
Lead i rejestracjalead_created, registration_completed, appointment_scheduledcustomer_action
Subskrypcjasubscription_created, trial_startedplan_enrollment

Dla zdarzeń typu contents udokumentowane pola obejmują amount, currency oraz tablicę contents złożoną z wpisów z polami id, name, content_type i quantity. Zdarzenia typu plan_enrollment oczekują pola plan_id. Dokumentacja precyzuje, by dla amount i quantity używać wartości całkowitych.

Gdy żadne zdarzenie standardowe nie pasuje, zdarzenie niestandardowe deklaruje się trzecim argumentem i obiektem opcji:

oaiq("measure", "custom", { type: "custom" }, { custom_event_name: "quote_requested" })

Nazwy zdarzeń niestandardowych muszą spełniać ścisłe reguły: od 1 do 64 znaków, wyłącznie litery, cyfry, podkreślenia i myślniki, oraz początek i koniec znakiem alfanumerycznym.

Uwaga na ograniczenie o znaczeniu strukturalnym: zdarzenie niestandardowe nie może pełnić roli celu optymalizacji oCPC. Jeśli Twoja konwersja biznesowa ma sterować optymalizacją, musi być raportowana jako zdarzenie standardowe.

Podłączenie Conversions API po stronie serwera

API wykorzystuje się wyłącznie ze swojego serwera. Udokumentowane punkty wdrożenia:

  • Tworzysz źródło konwersji web i jego Pixel ID przez punkt wejścia POST /conversions/pixels.
  • Generujesz klucz zdolny wysyłać zdarzenia po stronie serwera dla bieżącego konta reklamowego.
  • Ten klucz musi być przechowywany w menedżerze sekretów po stronie serwera. Dokumentacja jest kategoryczna: nigdy nie umieszczaj go w kodzie przeglądarkowym, w zmiennych środowiskowych widocznych po stronie klienta, w logach ani w repozytorium kodu.
  • API przyjmuje paczki do 1 000 zdarzeń. Punkt krytyczny dla obsługi błędów: jeśli jedno zdarzenie z paczki zawiedzie, zawodzi cała paczka.

Tę ostatnią zasadę warto uwzględnić już na etapie projektowania: paczka odrzucona w całości z powodu źle sformatowanego pola w jednym zamówieniu może usunąć z raportowania 999 poprawnych konwersji.

Deduplikacja piksela i API: zasada, której nie wolno przeoczyć

Jeśli wysyłasz tę samą konwersję z piksela i z Conversions API, musisz powiedzieć o tym systemowi, inaczej policzysz ją dwa razy. Udokumentowana metoda:

  • Użyć tej samej wartości jako id po stronie API i jako event_id po stronie piksela.
  • Wysłać oba zdarzenia z tym samym Pixel ID.
  • Dla zdarzeń niestandardowych używać tego samego custom_event_name po obu stronach.

Po stronie piksela wygląda to tak: oaiq("measure", "order_created", {...}, { event_id: "order_12345" }). Dopasowanie opiera się na Pixel ID, nazwie zdarzenia i event_id; dla zdarzenia niestandardowego custom_event_name zastępuje w tej logice nazwę zdarzenia.

W praktyce: użyj identyfikatora zamówienia albo leada jako klucza deduplikacji, to jedyna wartość naturalnie dostępna po obu stronach.

oppref: zachować go aż do konwersji, nie tylko przechwycić

Piksel przechwytuje oppref, referencję kliknięcia OpenAI, i przechowuje ją w pliku cookie pierwszej strony (__oppref). Samo udokumentowanie jego przechwycenia nie wystarczy: oficjalna dokumentacja podkreśla punkt, który wiele wdrożeń pomija, oppref musi zostać zachowany przez przekierowania i nawigację aż do strony, na której konwersja jest faktycznie mierzona. Tunel płatności prowadzący przez subdomenę płatności, przekierowanie po formularzu albo koszyk zmieniający domenę gubią cookie po drodze, jeśli nic nie zapewnia jego przekazania dalej.

Drugi często pomijany punkt: Conversions API nie przechwytuje oppref za Ciebie, w przeciwieństwie do piksela. Jeśli wywołujesz API po stronie serwera, to Twój kod musi sam pobrać wartość oppref (zwykle zapisaną przez piksel w pliku cookie albo przekazaną jako parametr URL) i jawnie dołączyć ją do wywołania, gdy jest dostępna. Bez tego kroku zdarzenie wysłane wyłącznie przez API traci powiązanie z kliknięciem reklamowym, które je poprzedziło.

Architektura rekomendowana przez OpenAI składa się z trzech elementów: piksel na każdej stronie do przechwytywania oppref i lekkich zdarzeń, Conversions API dla zdarzeń o wysokiej wartości wysyłanych z Twojego back-endu (tam, gdzie masz zamówienie i gdzie nic nie może zablokować wywołania), oraz oba kanały wysyłające tę samą konwersję z tym samym event_id.

Automatyczny advanced matching

Automatyczny advanced matching (AAM) służy do przypisywania konwersji do Twoich reklam, gdy nie jest dostępny żaden identyfikator kliknięcia. Piksel automatycznie wykrywa rozpoznawalne informacje o kliencie w formularzach i innych źródłach na Twojej stronie, normalizuje je i hashuje algorytmem SHA-256 bezpośrednio w przeglądarce. Dokumentacja precyzuje, że żadne dane surowe nie są przesyłane.

Możesz też sam dostarczyć zahaszowane identyfikatory w obiekcie user przy inicjalizacji: email_sha256, phone_number_sha256, external_id_sha256, first_name_sha256, last_name_sha256, a także niezahaszowane pola country, city, region i postal_code.

Ta funkcja dotyka danych osobowych: decyzję o jej włączeniu trzeba uzgodnić z osobą odpowiedzialną za ochronę danych, zwłaszcza w Europie.

Zgoda, RODO i sterowanie pikselem

SDK udostępnia polecenie zgody, które należy wywołać przed inicjalizacją, aby zablokować pomiar do czasu akceptacji przez użytkownika:

oaiq("consent", false); następnie oaiq("init", { pixelId: "..." }); i oaiq("consent", true); po uzyskaniu zgody.

Dwa punkty do zapamiętania. Po pierwsze, zgoda ma domyślnie wartość true, chyba że zostanie wprost ustawiona na false albo zarejestrowano odmowę: na stronie europejskiej trzeba więc wcześniej wywołać wprost oaiq("consent", false), zamiast liczyć na zachowanie domyślne. Po drugie, gdy wartość wynosi false, zdarzenia pomiarowe nie są wysyłane.

Parametr opt_out pozwala ponadto wyłączyć zdarzenie z personalizacji na poziomie użytkownika; jego wartość domyślna to false. SDK obsługuje również identyfikator przyjazny prywatności, oppref, przechwytywany z adresu URL i przechowywany w pliku cookie __oppref.

Przypomnienie kontekstu: reklamy spersonalizowane nie są dostępne na starcie w Europejskim Obszarze Gospodarczym ani w Szwajcarii. To w niczym nie zwalnia z obsługi zgody na sam pomiar.

Content Security Policy: domeny do dopuszczenia

Najczęstsza przyczyna cichej awarii na stronach ze ścisłą CSP: SDK zostaje zablokowany, zanim w ogóle się zainicjalizuje. Udokumentowane dyrektywy:

DyrektywaŹródło do dopuszczeniaRola
script-srchttps://bzrcdn.openai.comŁadowanie SDK
connect-srchttps://bzr.openai.com oraz https://bzrcdn.openai.comWysyłka i pobieranie zdarzeń
img-srchttps://bzr.openai.comAwaryjne wysłanie przez żądanie obrazu

Jeśli piksel nic nie raportuje, chociaż kod jest poprawnie osadzony, otwórz konsolę z włączonym parametrem debug: błąd CSP pojawi się tam natychmiast.

Czego piksel nie potrafi

Jedno wyraźne ograniczenie, o którym trzeba wiedzieć przed zaprojektowaniem planu tagowania: piksel pomiarowy nie obsługuje zdarzeń app_installed i app_opened. Te zdarzenia trzeba wysyłać po stronie serwera, przez Conversions API.

OpenAI dokumentuje ponadto integracje z partnerami pomiarowymi, w tym z partnerami pomiaru mobilnego (MMP), dla reklamodawców, u których konwersja następuje w aplikacji.

Inny punkt uwagi: użycie kilku Pixel ID na jednej stronie wymaga szczególnej konfiguracji, udokumentowanej przez OpenAI osobno.

Atrybucja: co jest liczone i w jaki sposób

OpenAI ocenia zdarzenia konwersji względem zdarzeń skonfigurowanych dla Twojej kampanii oraz obowiązującego okna atrybucji. Dwie zasady do zapamiętania:

  • Atrybucja po kliknięciu korzysta ze skonfigurowanego okna kliknięcia.
  • Konwersje po wyświetleniu (view-through) korzystają ze stałego jednodniowego okna po kwalifikującym się wyświetleniu, niezależnego od Twojego okna kliknięcia.

I zasada odczytu, która chroni przed błędami w rachunku: główna kolumna Konwersje zawiera wyłącznie konwersje po kliknięciu. Konwersje po wyświetleniu to odrębne, dodatkowe raportowanie, którego zdaniem OpenAI nie należy dodawać do konwersji ani wykorzystywać do podstawowych metryk efektywności, takich jak CPA.

Lista kontrolna testów odbiorczych przed startem

  1. Źródło danych utworzone w Ads Manager, Pixel ID pobrany.
  2. Skrypt załadowany w sekcji head, inicjalizacja wywołana z właściwym Pixel ID.
  3. Zgoda podpięta przed inicjalizacją na stronach europejskich.
  4. Zdarzenia standardowe wyzwalane we właściwych miejscach, z właściwym polem type.
  5. Deduplikacja wdrożona, jeśli dublujesz wysyłkę przez API: ta sama wartość w id i event_id, ten sam Pixel ID.
  6. CSP zaktualizowana dla wszystkich trzech dyrektyw.
  7. Tryb debug włączony na czas testów, a potem wyłączony.
  8. Strona docelowa dostępna dla OAI-AdsBot: zablokowana strona może spowodować odrzucenie reklamy, niezależnie od jakości tagowania. Nasz checker strony docelowej ChatGPT Ads sprawdza ten punkt.
  9. Jedno standardowe zdarzenie aktywne wybrane jako cel, jeśli celujesz w oCPC, przy czym po utworzeniu kampanii nie będzie już można go zmienić.

Najczęściej zadawane pytania

Czy śledzenie konwersji jest obowiązkowe w ChatGPT Ads?
Nie, żeby emitować w modelu CPM lub CPC, ale tak, żeby korzystać z optymalizacji pod konwersję: oCPC wymaga, by śledzenie było już skonfigurowane przez piksel JavaScript, Conversions API albo oba naraz, i by celem było aktywne standardowe zdarzenie konwersji.
Czy Conversions API samo pobiera oppref?
Nie. Tylko piksel automatycznie przechwytuje oppref, referencję kliknięcia OpenAI, i przechowuje ją w pliku cookie. Wywołanie Conversions API musi jawnie dołączyć tę wartość, gdy jest dostępna: to Twój kod musi ją pobrać, API nie robi tego za Ciebie. Z tego właśnie powodu OpenAI zaleca uruchamianie piksela i API razem, a nie jednego zamiast drugiego.
Czy trzeba wybierać między pikselem a Conversions API?
Nie, oba mogą działać równolegle. OpenAI przedstawia Conversions API jako źródło bardziej wiarygodne niż sam piksel i zaleca korzystanie z niego, gdy jest to możliwe. Jeśli wysyłasz tę samą konwersję z obu stron, trzeba ją zdeduplikować.
Jak uniknąć policzenia konwersji dwa razy?
Używając tej samej wartości jako id po stronie API i jako event_id po stronie piksela, wysyłając oba zdarzenia z tym samym Pixel ID oraz stosując ten sam custom_event_name po obu stronach dla zdarzeń niestandardowych.
Czy zdarzenie niestandardowe może być celem oCPC?
Nie. Dokumentacja precyzuje, że zdarzenia niestandardowe nie mogą być celami optymalizacji oCPC. Potrzebne jest dokładnie jedno aktywne standardowe zdarzenie konwersji jako cel, a po utworzeniu kampanii nie da się go już zmienić.
Czy piksel respektuje zgodę użytkownika?
SDK udostępnia polecenie zgody. Rzecz do zapamiętania: zgoda ma domyślnie wartość true, chyba że zostanie wprost ustawiona na false albo zarejestrowano odmowę. Na stronie europejskiej trzeba więc wprost wywołać polecenie z wartością false przed inicjalizacją, a po zebraniu zgody przełączyć je na true.
Mój piksel nic nie raportuje, co sprawdzić najpierw?
Content Security Policy. SDK potrzebuje https://bzrcdn.openai.com w script-src, https://bzr.openai.com oraz https://bzrcdn.openai.com w connect-src, i https://bzr.openai.com w img-src. Włącz parametr debug przy inicjalizacji, aby zobaczyć błąd w konsoli.
Jak zmierzyć instalację aplikacji?
Nie pikselem: nie obsługuje on zdarzeń app_installed ani app_opened. Te zdarzenia trzeba wysyłać po stronie serwera przez Conversions API. OpenAI dokumentuje także integracje z partnerami pomiaru mobilnego.
Jakie jest okno atrybucji?
Atrybucja po kliknięciu korzysta ze skonfigurowanego okna kliknięcia. Konwersje po wyświetleniu korzystają ze stałego jednodniowego okna po kwalifikującym się wyświetleniu, niezależnego od okna kliknięcia, i są raportowane osobno od głównej kolumny Konwersje.
Przetestuj swoją stronę w 30 sekund

Wynik SEO, wynik GEO, wydajność i responsywność: 49 sprawdzonych punktów, natychmiastowy werdykt AI Overviews.

Uruchom test SEO i GEO

Powiązane poradniki

ChatGPT Ads: kompletny przewodnik 2026 po reklamie w ChatGPT

Jak działa ChatGPT Ads, gdzie jest dostępny, jak założyć konto, zbudować kampanię, targetować przez context hints i oszacować budżet: przewodnik aktualizowany na bieżąco.

Czytaj poradnik

Cennik ChatGPT Ads: stawki, budżety i realny koszt kampanii

Ile naprawdę kosztuje kampania ChatGPT Ads: trzy modele stawek, stawka początkowa zalecana przez OpenAI, minimalny budżet dzienny i rozliczanie przez próg płatności.

Czytaj poradnik

ChatGPT Ads dla e-commerce: kampanie oparte na feedzie produktowym

Jak podłączyć katalog do ChatGPT Ads: trzy metody przesyłania feedu, wygasanie pozycji, pole is_ads_eligible i różnica wobec organicznych wyników produktowych.

Czytaj poradnik