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.
Wyszukiwarki AI omawiane na tej stronie
- ChatGPT
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 JavaScript | Conversions API | |
|---|---|---|
| Gdzie działa | W przeglądarce odwiedzającego | Wyłącznie na Twoim serwerze |
| Wdrożenie | Skrypt do umieszczenia w sekcji head | Praca deweloperska po stronie back-endu |
| Odporność | Wrażliwy na blokery i ograniczenia przeglądarek | OpenAI przedstawia je jako źródło bardziej wiarygodne niż sam piksel |
| Rekomendacja OpenAI | Punkt wyjścia | Do 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:
| Rodzina | Zdarzenia | Oczekiwane pole type |
|---|---|---|
| Handel | order_created, items_added, checkout_started | contents |
| Treść | page_viewed, contents_viewed | contents |
| Lead i rejestracja | lead_created, registration_completed, appointment_scheduled | customer_action |
| Subskrypcja | subscription_created, trial_started | plan_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 dopuszczenia | Rola |
|---|---|---|
| script-src | https://bzrcdn.openai.com | Ładowanie SDK |
| connect-src | https://bzr.openai.com oraz https://bzrcdn.openai.com | Wysyłka i pobieranie zdarzeń |
| img-src | https://bzr.openai.com | Awaryjne 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
- Źródło danych utworzone w Ads Manager, Pixel ID pobrany.
- Skrypt załadowany w sekcji head, inicjalizacja wywołana z właściwym Pixel ID.
- Zgoda podpięta przed inicjalizacją na stronach europejskich.
- Zdarzenia standardowe wyzwalane we właściwych miejscach, z właściwym polem type.
- Deduplikacja wdrożona, jeśli dublujesz wysyłkę przez API: ta sama wartość w id i event_id, ten sam Pixel ID.
- CSP zaktualizowana dla wszystkich trzech dyrektyw.
- Tryb debug włączony na czas testów, a potem wyłączony.
- 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.
- 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?
Czy Conversions API samo pobiera oppref?
Czy trzeba wybierać między pikselem a Conversions API?
Jak uniknąć policzenia konwersji dwa razy?
Czy zdarzenie niestandardowe może być celem oCPC?
Czy piksel respektuje zgodę użytkownika?
Mój piksel nic nie raportuje, co sprawdzić najpierw?
Jak zmierzyć instalację aplikacji?
Jakie jest okno atrybucji?
Wynik SEO, wynik GEO, wydajność i responsywność: 49 sprawdzonych punktów, natychmiastowy werdykt AI Overviews.
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 poradnikCennik 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 poradnikChatGPT 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