Jak mierzyć konwersje z ChatGPT Ads? Measurement Pixel, Conversions API i GA4

Do pomiaru reklam w ChatGPT potrzebujesz Measurement Pixela na stronie, a przy sprzedaży i leadach także Conversions API z deduplikacją zdarzeń. Integracja z GA4 jest w becie i jeszcze nie mapuje zdarzeń, więc Ads Manager i GA4 będą pokazywać różne liczby. Jedna z agencji raportowała ok. 100 kliknięć w panelu wobec 20 we własnym trackingu. Pomiar trzeba ustawić i sprawdzić przed startem kampanii, a nie po pierwszym tygodniu.

Ten artykuł przechodzi przez całą ścieżkę pomiaru: od parametru, który OpenAI dokleja do kliknięcia, przez piksel i serwerowe API, po raportowanie i powody, dla których dane się nie zgadzają. Kod pochodzi z dokumentacji OpenAI dla deweloperów, cytaty podajemy w oryginale (weryfikacja: 11.10.2026). Jeśli dopiero zastanawiasz się nad testem, zacznij od tego, jak działają reklamy w ChatGPT.

Co trzeba wdrożyć, żeby mierzyć konwersje z ChatGPT Ads?

OpenAI udostępnia dwa źródła danych o konwersjach i dwa sposoby oznaczania ruchu. Każde odpowiada na inne pytanie.

ElementCo robiKiedy jest niezbędny
Measurement Pixelskrypt w przeglądarce, wysyła zdarzenia ze strony do OpenAIzawsze, jeśli chcesz widzieć konwersje w Ads Managerze
Conversions API (CAPI)wysyła zdarzenia z serwerasprzedaż, leady, blokery reklam, zgody, kampanie konwersyjne
Parametry UTM i makraoznaczają ruch w GA4 i innych narzędziachzawsze, żeby oddzielić ruch płatny od organicznego
Integracja GA4 (beta)łączy Ads Manager z właściwością GA4na razie opcjonalna, nie zastępuje piksela

Kampania z celem konwersji bez pomiaru nie ruszy w sensowny sposób. Dokumentacja kampanii konwersyjnych wymaga piksela lub CAPI, a na dodatek zastrzega: „Custom conversion events are not currently supported for the Conversion optimization objective.” Optymalizować można tylko pod zdarzenia standardowe, więc nazewnictwo zdarzeń trzeba zaplanować przed wdrożeniem.

Jak parametr oppref łączy kliknięcie z konwersją?

Cały pomiar opiera się na jednym parametrze w adresie strony docelowej. Dokumentacja piksela opisuje go tak: „It captures oppref from the landing page URL, which is a privacy-preserving identifier”. Piksel zapisuje wartość w ciasteczku __oppref w domenie reklamodawcy, żeby kolejne odsłony mogły z niej korzystać.

Infografika: ścieżka pomiaru ChatGPT Ads - oppref, Measurement Pixel, Conversions API, deduplikacja i raport
Pomiar w ChatGPT Ads: parametr oppref, cookie __oppref, zdarzenie z piksela i z Conversions API, deduplikacja i raport po 24-48 godzinach.

Ciasteczko jest ważne 30 dni. Ważność odnawia się przy każdym wejściu z niepustym parametrem oppref w adresie, nawet z tą samą wartością. Wejście bez parametru jej nie przedłuża. Obok działa drugie ciasteczko, __obref, czyli losowy identyfikator przeglądarki ważny 365 dni.

Z tego wynika najczęstsza przyczyna „znikających” konwersji. Jeśli strona docelowa przekierowuje użytkownika (http na https, adres bez ukośnika na adres z ukośnikiem, wersja językowa, przekierowanie po geolokalizacji) i przy tym gubi parametry zapytania, oppref nie dociera do piksela. Kliknięcie jest w Ads Managerze, konwersji nie ma. Przed startem kampanii warto wejść na adres reklamy z dopisanym testowym parametrem i sprawdzić, czy przetrwał wszystkie przekierowania.

Jak zainstalować Measurement Pixel?

Pixel ID tworzysz w zakładce konwersji w Ads Managerze. Kod bazowy OpenAI zaleca umieścić jak najwyżej w sekcji <head>:

<script>
  (function (w, d, s, u) {
    if (w.oaiq) return;
    var q = function () {
      q.q.push(arguments);
    };
    q.q = [];
    w.oaiq = q;
    var js = d.createElement(s);
    js.async = true;
    js.src = u;
    var f = d.getElementsByTagName(s)[0];
    f.parentNode.insertBefore(js, f);
  })(window, document, "script", "https://bzrcdn.openai.com/sdk/oaiq.min.js");

  oaiq("init", {
    pixelId: "<YOUR-PIXEL-ID>",
  });
</script>

Zdarzenie konwersji wysyłasz wywołaniem measure. Kwotę podajesz w jednostkach podstawowych waluty, czyli w groszach. Dokumentacja zdarzeń wymaga: „Send monetary values as integers in the standard ISO 4217 minor unit for the currency code you provide”. Zamówienie za 259,99 zł to więc amount: 25999 i currency: "PLN" (przykład z dokumentacji przeliczony na złotówki):

oaiq("measure", "order_created", {
  type: "contents",
  amount: 25999,
  currency: "PLN",
});

Jeśli strona ma Content Security Policy, piksel nie zadziała bez dopisania domen OpenAI. Dokumentacja podaje cztery źródła do połączenia z własną polityką: https://bzrcdn.openai.com w script-src i connect-src oraz https://bzr.openai.com w connect-src i img-src. OpenAI zaleca nonce zamiast 'unsafe-inline'.

Dokumentacja nie opisuje wdrożenia przez Google Tag Manager ani zachowania w aplikacjach jednostronicowych (SPA). Przy GTM kod bazowy można wstawić jako tag HTML, ale wtedy trzeba samą integrację przetestować: czy oppref jest odczytywany na pierwszej odsłonie i czy zdarzenia nie dublują się przy zmianie widoku w SPA.

Jak pogodzić piksel OpenAI ze zgodami RODO?

Tu jest pułapka, którą łatwo przeoczyć. Piksel domyślnie zakłada zgodę: „The Pixel initializes consent to true by default unless you set it to false or the Pixel finds a stored denial.” Dla strony z polskimi użytkownikami to znaczy, że wklejony bez zmian kod będzie mierzył również osoby, które zgody nie wyraziły.

OpenAI daje do tego API zgody. Najpierw ustawiasz zgodę na false, potem inicjujesz piksel, a po decyzji użytkownika w banerze cookies przełączasz ją na true:

oaiq("consent", false);
oaiq("init", {
  pixelId: "<YOUR-PIXEL-ID>",
});

// Call this after the user grants measurement consent.
oaiq("consent", true);

Dwie konsekwencje z dokumentacji. Gdy zgoda wynosi false, piksel nic nie wysyła, a zdarzenia zablokowane w tym czasie nie zostaną wysłane później. Wywołanie oaiq("consent", false) usuwa też oba ciasteczka. W praktyce piksel OpenAI powinien siedzieć w tej samej kategorii zgody co piksel Mety i tag Google Ads, czyli w marketingowej. To nasza interpretacja, a nie wymóg zapisany przez OpenAI. Polski regulator nie wypowiedział się dotąd o reklamach w ChatGPT, a niemieckie organy ochrony danych z Hamburga i Berlina zajęły się na razie personalizacją po stronie użytkownika ChatGPT.

Cena zgodności jest mierzalna. Każda odmowa w banerze to konwersja, której piksel nie zobaczy. Część z nich może odzyskać Conversions API, jeśli wysyłasz zdarzenia z serwera w granicach zgody, na którą pozwala polityka prywatności. Przy identyfikatorze obref dokumentacja CAPI pisze: „Before collecting or forwarding the cookie, follow your site’s measurement consent requirements.” i dodaje: „If the user revokes consent, stop sending it.”

Kiedy potrzebujesz Conversions API i jak działa deduplikacja?

OpenAI nie ukrywa, które źródło uważa za lepsze: „The Conversions API is a more reliable tracking source than the pixel alone.” (Conversions API). Pixel traci zdarzenia przez blokery, odrzucone zgody i przerwane ładowanie strony. Serwer wysyła je niezależnie od przeglądarki.

Zapytanie trafia na adres https://bzr.openai.com/v1/events?pid=<PIXEL-ID> z nagłówkiem Authorization: Bearer <API-KEY>. Pixel ID i klucz API pobierasz z zakładki konwersji w Ads Managerze. Wymagane pola zdarzenia to id, type, timestamp_ms i data. Dla zdarzeń ze strony dochodzi source_url, a przy kwocie waluta. Najważniejsze dla jakości dopasowania jest pole oppref przekazane z ciasteczka, a opcjonalnie także obref i zahashowane dane klienta.

Dane osobowe wysyłasz wyłącznie jako skrót SHA-256 po normalizacji. E-mail przycinasz i zamieniasz na małe litery. Telefon zostawiasz z kodem kraju, usuwasz spacje, nawiasy, kropki, myślniki, wiodący plus i zera, tak żeby zostało 8-15 cyfr. Imię i nazwisko zamieniasz na małe litery i usuwasz spacje oraz interpunkcję ASCII. Polskie znaki zostają, akcentów się nie usuwa. Z każdej listy API bierze trzy pierwsze poprawne, unikalne wartości, a resztę pomija.

Deduplikacja działa na trzech polach: „For deduplication, OpenAI uses your Pixel ID, event_name, and id.” W praktyce ten sam identyfikator zamówienia musi trafić do pola event_id w pikselu i do pola id w API. OpenAI zachowuje pierwsze otrzymane zdarzenie i ignoruje kolejne o tym samym kluczu.

Dwa ograniczenia API mają duże znaczenie w praktyce. Pierwsze to batch: jedno zapytanie przyjmuje do 1000 zdarzeń, ale jeśli którekolwiek jest błędne, odrzucane jest całe zapytanie. Drugie to czas. Znacznik czasu „must be within the last 7 days”. Dla B2B oznacza to, że przez CAPI wyślesz zdarzenie lead_created z formularza, ale nie wyślesz domknięcia sprzedaży z CRM po trzech tygodniach. Optymalizacja kampanii w ChatGPT będzie więc widzieć leady, a nie klientów. Jakość leadów trzeba oceniać poza Ads Managerem.

Jakie zdarzenia możesz wysyłać?

OpenAI obsługuje zamkniętą listę zdarzeń standardowych plus zdarzenie custom z własną nazwą. Poniżej lista z dokumentacji i nasza propozycja odpowiedników w GA4. Mapowanie jest nasze, bo integracja GA4 jeszcze go nie robi.

Zdarzenie OpenAITypowy odpowiednik w GA4Zastosowanie
page_viewedpage_viewodsłona strony
contents_viewedview_itemkarta produktu, oferta
items_addedadd_to_cartdodanie do koszyka
checkout_startedbegin_checkoutrozpoczęcie zamówienia
order_createdpurchasezamówienie
lead_createdgenerate_leadformularz, zapytanie
registration_completedsign_uprejestracja konta
appointment_scheduledwłasne zdarzenieumówienie wizyty lub rozmowy
trial_started, subscription_createdwłasne zdarzeniaSaaS
app_installed, app_openedzdarzenia aplikacjiaplikacje mobilne
customdowolnetylko raportowanie, bez optymalizacji konwersji

Przy sklepie minimum to order_created z kwotą. Przy usługach lead_created, a jeśli jest kalendarz, także appointment_scheduled. Zdarzenia mikro, jak items_added, przydają się w pierwszych tygodniach, kiedy zamówień jest za mało do oceny kampanii.

Jakie okna atrybucji stosuje OpenAI?

Kliknięcie i wyświetlenie są liczone osobno. Dokumentacja piksela: „Click-through attribution uses the applicable configured click window.” oraz „View-through conversions use a fixed one-day window after an eligible ad impression.” Gdy konwersja kwalifikuje się do obu, wygrywa kliknięcie. Przykład w dokumentacji używa 30-dniowego okna kliknięcia, ale domyślnej wartości OpenAI nie podaje.

Konwersje po wyświetleniu są osobną metryką na poziomie kampanii i nie wchodzą do kolumny Conversions. To dobra wiadomość dla porządku w danych, ale trzeba o tym pamiętać przy porównaniu z Google Ads lub Metą, gdzie domyślne raporty mogą łączyć oba typy.

Jak oznaczać ruch z ChatGPT Ads w GA4?

GA4 nie wie sam z siebie, że użytkownik przyszedł z reklamy, a nie z linku w odpowiedzi ChatGPT. Bez oznaczenia ruch płatny i organiczny wpadną do tego samego źródła. OpenAI pozwala dokleić do adresu reklamy statyczne parametry i makra. Help Center Measure results wymienia makra {campaign_id}, {ad_group_id}, {ad_id} i {ad_account_id}.

Konwencja, którą stosujemy (propozycja, nie wymóg OpenAI):

ParametrWartośćPo co
utm_sourcechatgptwspólne źródło dla wszystkich kampanii w ChatGPT
utm_mediumcpcoddziela ruch płatny od organicznego referral
utm_campaignnazwa kampanii albo {campaign_id}łączenie z raportem Ads Managera
utm_content{ad_id}porównanie kreacji
utm_term{ad_group_id}grupa reklam ze wskazówkami kontekstowymi

W GA4 warto dodać regułę własnej grupy kanałów dla utm_source=chatgpt i utm_medium=cpc, żeby reklama nie wpadła do ogólnego kanału Paid Other. Ruch organiczny z ChatGPT nadal będzie widoczny jako odesłanie z domeny ChatGPT. Jak analizować tę część, opisaliśmy w artykule o analizie ruchu z AI i modeli językowych.

Co daje dziś integracja GA4 z Ads Managerem, a czego nie?

Na razie niewiele. Integracja jest w becie, a wczesny dostęp daje opiekun konta. Help Center Connect Google Analytics 4 opisuje dwa ograniczenia. Jedno konto reklamowe może mieć jedno połączenie i jedną właściwość: „Each advertiser account supports one GA4 connection and one selected property.” Mapowania zdarzeń jeszcze nie ma: „Event mapping is coming soon; advertisers will need to map their GA4 events to OpenAI events”.

Najważniejsze zastrzeżenie dotyczy interpretacji. Dane z GA4 w Ads Managerze „do not represent campaign conversion counts or return on ad spend (ROAS)”. Integracja nie zastępuje więc piksela ani CAPI i nie zasila optymalizacji kampanii. Do raportowania wyników na poziomie biznesu GA4 zostaje osobnym źródłem, a Ads Manager osobnym.

Dlaczego Ads Manager i GA4 pokazują różne liczby?

OpenAI uprzedza o tym w dokumentacji pomiaru konwersji: „OpenAI Ads Manager, your analytics provider, and other ad platforms may report different conversion totals.” Skala różnic w pierwszych miesiącach bywała jednak duża. Agencja Accuracast relacjonowała Digiday, że ChatGPT pokazał ok. 100 kliknięć, a jej własny tracking 20. W tym samym tekście agencja Web Guide Partner mówi o konwersjach spływających z opóźnieniem 24-36 godzin.

Infografika: sześć przyczyn różnic między OpenAI Ads Managerem a GA4
Skąd biorą się różnice między Ads Managerem a GA4: opóźnienia, definicje, zgody, przekierowania, konwersje po wyświetleniu i atrybucja.

Z naszej analizy wynika kilka przyczyn, które warto sprawdzać w tej kolejności:

  1. Opóźnienie danych. Według Help Center wyświetlenia i kliknięcia odświeżają się co ok. 15 minut, wydatki z opóźnieniem 7-8 godzin, a konwersje po 24-48 godzinach. Raport z wczoraj w Ads Managerze nie jest jeszcze kompletny.
  2. Definicja kliknięcia. Ads Manager liczy ważne kliknięcia w reklamę, GA4 liczy sesje. Użytkownik, który kliknął i zamknął kartę przed załadowaniem tagu GA4, jest tylko w jednym z tych raportów.
  3. Zgody. Odmowa w banerze wyłącza GA4 i piksel, ale kliknięcie w ChatGPT i tak zostaje policzone.
  4. Przekierowania gubiące oppref i UTM. Kliknięcie jest, atrybucji nie ma.
  5. Konwersje po wyświetleniu. Są w Ads Managerze jako osobna metryka, w GA4 ich nie będzie.
  6. Model atrybucji. GA4 przypisuje konwersję według własnego modelu, Ads Manager według okna kliknięcia OpenAI. Ta sama sprzedaż może trafić do różnych kanałów.

OpenAI udostępnia też ocenę jakości zdarzeń w Ads Managerze (Understand and improve event quality). To wynik z ostrzeżeniami dla każdego piksela lub źródła danych, odświeżany codziennie na podstawie ostatnich siedmiu pełnych dni. Warto go sprawdzić po pierwszym tygodniu.

Jak sprawdzić, czy kampania naprawdę sprzedaje?

Atrybucja odpowiada na pytanie, który kanał dostał zasługę, a nie na pytanie, czy bez reklamy sprzedaż byłaby mniejsza. Przy nowym kanale to drugie pytanie jest ważniejsze. OpenAI wspiera pomiar inkrementalności przez partnerów. W ogłoszeniu z 5 października 2026 r. (OpenAI) wymienia między innymi Measured i Haus, ale testy geograficzne opisuje jako wczesny etap.

Bez zewnętrznych narzędzi da się zrobić prostszy test. Kampania może być kierowana na regiony i miasta, więc polską sprzedaż można podzielić na województwa z reklamą i bez niej. Porównuje się wtedy dynamikę sprzedaży, a nie atrybucję. Do tego dwa tanie sygnały jakościowe: osobny kod rabatowy w kreacji i pytanie „Skąd o nas wiesz?” w formularzu. Żaden nie jest dokładny, ale razem z danymi z Ads Managera pokazują, czy kampania coś dokłada.

OpenAI ma też integracje z firmami pomiarowymi. W Ads Managerze dostępne są m.in. Fospha, Hightouch, INCRMNTAL, LiveRamp, Northbeam, Rockerbox, Triple Whale i WorkMagic (lista partnerów). W ogłoszeniu z 5 października OpenAI wymienia też m.in. AppsFlyer, Adjust, Branch, Singular, Kochava, Airbridge, Tenjin i Tealium. Dla polskiego sklepu to zwykle pieśń przyszłości. Większość potrzeb pokrywa poprawnie wdrożony piksel z CAPI i dobrze oznaczony ruch w GA4.

Checklista pomiaru przed startem kampanii

Zanim wydasz pierwsze 65 zł, sprawdź:

  • Pixel ID jest utworzony i kod bazowy działa na wszystkich podstronach, w tym na potwierdzeniu zamówienia,
  • piksel startuje z consent ustawionym na false i przełącza się na true dopiero po zgodzie marketingowej,
  • CSP dopuszcza bzrcdn.openai.com i bzr.openai.com,
  • testowy oppref dopisany do adresu reklamy przetrwał wszystkie przekierowania i trafił do ciasteczka __oppref,
  • order_created lub lead_created wysyła kwotę w groszach i walutę PLN,
  • ten sam identyfikator zamówienia trafia do event_id w pikselu i id w CAPI,
  • adres reklamy ma parametry UTM, a GA4 ma regułę kanału dla ChatGPT Ads,
  • wiesz, które zdarzenia są optymalizowane, a które tylko raportowane (zdarzenie custom nie zasila optymalizacji).

Pomiar ustawiamy w każdej kampanii ChatGPT Ads, którą prowadzimy, zanim reklama pójdzie do akceptacji. Koszt tej pracy jest mały w porównaniu z budżetem wydanym na kampanię, której wyniku nie da się ocenić. Jak przeliczyć wynik na opłacalność, opisujemy w artykule o tym, ile kosztuje reklama w ChatGPT.

Czego o pomiarze OpenAI jeszcze nie publikuje?

  • domyślnego okna atrybucji kliknięcia i tego, czy można je zmienić,
  • kodów błędów specyficznych dla Conversions API (strona CAPI ich nie wymienia),
  • instrukcji dla Google Tag Managera i aplikacji jednostronicowych,
  • terminu mapowania zdarzeń w integracji GA4,
  • sposobu, w jaki dane z piksela będą używane, gdy w Europie wejdzie personalizacja. Dziś OpenAI deklaruje: „OpenAI does not currently use data collected via the measurement pixel for user-level personalization.”

Pomiar ChatGPT Ads – najczęstsze pytania

Czy do reklam w ChatGPT potrzebuję piksela?

Tak, jeśli chcesz widzieć konwersje w Ads Managerze albo uruchomić kampanię z celem konwersji. Measurement Pixel instalujesz w sekcji head, a przy sprzedaży i leadach warto dodać Conversions API.

Czym jest oppref?

To identyfikator kliknięcia, który OpenAI dokleja do adresu strony docelowej. Piksel zapisuje go w ciasteczku __oppref na 30 dni. Jeśli przekierowanie na stronie usunie ten parametr, konwersja nie zostanie przypisana do reklamy.

Czy piksel OpenAI wymaga zgody na cookies?

Piksel domyślnie zakłada zgodę, ale ma API, które pozwala ją wyłączyć do czasu decyzji użytkownika. Na polskich stronach zalecamy traktować go jak inne tagi reklamowe i uruchamiać po zgodzie marketingowej.

Czy mogę wysłać do ChatGPT Ads sprzedaż domkniętą w CRM?

Tylko jeśli zdarzenie nie jest starsze niż 7 dni. Conversions API odrzuca znaczniki czasu starsze niż tydzień, więc przy długim cyklu sprzedaży kampania widzi leady, a nie domknięcia.

Dlaczego GA4 pokazuje mniej kliknięć niż Ads Manager?

Najczęściej przez odmowy zgody, przekierowania gubiące parametry, różną definicję kliknięcia i sesji oraz opóźnienie danych. OpenAI zaznacza, że różnice między platformami są normalne.

Czy integracja GA4 zastępuje piksel OpenAI?

Nie. Integracja jest w becie, nie mapuje jeszcze zdarzeń, a według OpenAI dane z GA4 nie są liczbą konwersji kampanii ani ROAS. Optymalizację zasila tylko piksel i Conversions API.

Podobne wpisy

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *