ChatGPT Ads-pixel en Conversions API: de conversiemeting installeren
Laatst bijgewerkt: 24 augustus 2026, geverifieerd aan de hand van de officiële documentatie van OpenAI. De hier genoemde namen van events en parameters komen uit de ontwikkelaarsdocumentatie van OpenAI; ze kunnen tijdens de bèta nog wijzigen.
Zonder conversiemeting blijft een ChatGPT Ads-campagne blind: je weet wat je uitgeeft, niet wat je ervoor terugkrijgt. En vooral: je kunt de optimalisatie op conversie niet inschakelen. Deze pagina behandelt de twee officiële methoden, de browserpixel en de Conversions API aan serverzijde, en de manier om ze naast elkaar te laten bestaan. Het algemene kader staat in onze gids ChatGPT Ads.
AI-zoekmachines die op deze pagina aan bod komen
- ChatGPT
Waarom meten een voorwaarde is, geen optie
Drie redenen, waarvan één blokkerend:
- Blokkerend: de optimalisatie op conversie (oCPC) vereist dat de meting al is ingesteld, met de JavaScript-pixel, de Conversions API, of beide. Zonder signaal heeft het systeem niets om op te optimaliseren.
- De rapportage van Ads Manager bevat een kolom conversies die leeg blijft als er niets is aangesloten.
- De berekening van je kosten per acquisitie hangt volledig van die data af: zonder die data stuur je op CPC, dat wil zeggen op uitgave, niet op resultaat.
Het algemene principe dat OpenAI hanteert is eenvoudig: je maakt een databron (data source) aan in Ads Manager en stuurt er vervolgens conversie-events naartoe via de pixel, de API, of beide.
Pixel of Conversions API: wat kies je?
| JavaScript-pixel | Conversions API | |
|---|---|---|
| Waar het draait | In de browser van de bezoeker | Uitsluitend op jouw server |
| Implementatie | Eén script in de head plaatsen | Ontwikkeling aan de back-endzijde |
| Robuustheid | Gevoelig voor blockers en browserbeperkingen | OpenAI presenteert die als een betrouwbaardere bron dan de pixel alleen |
| Aanbeveling van OpenAI | Startpunt | Gebruiken waar mogelijk, voor nauwkeuriger data |
Het pragmatische antwoord is niet het een of het ander, maar beide, met deduplicatie. De pixel zet je in een uur op en houdt de campagnes meteen levend; de API sluit je daarna aan en die maakt de meting duurzaam betrouwbaar.
De meetpixel installeren
De ChatGPT Ads-meetpixel is een browser-SDK bedoeld om de events op je site te meten die aan advertenties binnen ChatGPT toe te schrijven zijn. Het script laadt asynchroon vanaf https://bzrcdn.openai.com/sdk/oaiq.min.js, te plaatsen in de sectie <head>, en initialiseert vervolgens met jouw pixel-id:
oaiq("init", { pixelId: "JOUW-PIXEL-ID" });
De parameter pixelId is verplicht en wordt aangemaakt in Ads Manager. Een optionele parameter debug schrijft de activiteit van de SDK weg naar de browserconsole, wat nuttig is tijdens de testfase.
Alle meting verloopt daarna via één enkel commando: oaiq("measure", eventNaam, eventData, opties).
De standaard events, de aangepaste events en hun beperkingen
Elk standaard event verwacht een dataobject waarvan het veld type moet overeenkomen. De ontwikkelaarsdocumentatie van OpenAI groepeert ze als volgt:
| Familie | Events | Verwacht veld type |
|---|---|---|
| Commerce | order_created, items_added, checkout_started | contents |
| Content | page_viewed, contents_viewed | contents |
| Lead en inschrijving | lead_created, registration_completed, appointment_scheduled | customer_action |
| Abonnement | subscription_created, trial_started | plan_enrollment |
Voor de events van het type contents omvatten de gedocumenteerde velden onder meer amount, currency en een array contents met entries die id, name, content_type en quantity bevatten. Events van het type plan_enrollment verwachten een plan_id. De documentatie geeft aan gehele getallen te gebruiken voor amount en quantity.
Wanneer geen enkel standaard event past, declareer je een aangepast event met een derde argument en een optieobject:
oaiq("measure", "custom", { type: "custom" }, { custom_event_name: "quote_requested" })
De namen van aangepaste events moeten aan precieze regels voldoen: 1 tot 64 tekens, uitsluitend letters, cijfers, underscores en koppeltekens, en beginnen en eindigen met een alfanumeriek teken.
Let op een structurerende beperking: een aangepast event kan niet als oCPC-optimalisatiedoel dienen. Moet jouw bedrijfsconversie de optimalisatie aansturen, dan moet je die als standaard event doorgeven.
De Conversions API aan serverzijde aansluiten
De API gebruik je uitsluitend vanaf je server. De gedocumenteerde implementatiepunten:
- Je maakt een webconversiebron en het bijbehorende Pixel ID aan via het endpoint
POST /conversions/pixels. - Je genereert een sleutel waarmee events aan serverzijde verstuurd kunnen worden voor het huidige advertentieaccount.
- Die sleutel moet bewaard worden in een secrets manager aan serverzijde. De documentatie is categorisch: nooit in browsercode plaatsen, nooit in omgevingsvariabelen die aan de clientzijde zichtbaar zijn, nooit in logbestanden en nooit in een coderepository.
- De API accepteert batches tot 1.000 events. Cruciaal punt voor je foutafhandeling: als één enkel event uit de batch mislukt, mislukt de hele batch.
Die laatste regel verdient het om al bij het ontwerp meegenomen te worden: een batch die in zijn geheel geweigerd wordt door één verkeerd opgemaakt veld op één bestelling, kan 999 geldige conversies uit je rapportage laten verdwijnen.
Pixel en API dedupliceren: de regel die je niet mag missen
Stuur je dezelfde conversie zowel vanuit de pixel als vanuit de Conversions API, dan moet je dat aan het systeem melden, anders tel je die twee keer. De gedocumenteerde methode:
- Dezelfde waarde hergebruiken als id aan de API-zijde en als event_id aan de pixelzijde.
- Beide events versturen met hetzelfde Pixel ID.
- Voor aangepaste events aan beide kanten dezelfde custom_event_name gebruiken.
Aan de pixelzijde ziet dat er zo uit: oaiq("measure", "order_created", {...}, { event_id: "order_12345" }). De matching steunt op het Pixel ID, de naam van het event en de event_id; bij een aangepast event vervangt de custom_event_name de naam van het event in die logica.
In de praktijk: gebruik je bestel- of lead-id als deduplicatiesleutel, dat is de enige waarde die van nature aan beide kanten beschikbaar is.
oppref: behouden tot aan de conversie, niet alleen vastleggen
De pixel legt oppref vast, de klikreferentie van OpenAI, en bewaart die in een first-party cookie (__oppref). Het vastleggen ervan documenteren is niet genoeg: de officiële documentatie benadrukt een punt dat veel implementaties missen, oppref moet behouden blijven doorheen redirects en navigatie tot aan de pagina waar de conversie daadwerkelijk gemeten wordt. Een betaalstraat die via een apart betaaldomein loopt, een redirect na een formulier, of een winkelwagen die van domein wisselt, verliezen het cookie onderweg als er niets is voorzien om het mee te laten reizen.
Tweede punt dat vaak over het hoofd wordt gezien: de Conversions API legt oppref niet voor je vast, in tegenstelling tot de pixel. Roep je de API server-side aan, dan is het aan jouw code om de waarde van oppref op te halen (doorgaans door de pixel in een cookie gezet of als URL-parameter meegegeven) en die, wanneer beschikbaar, expliciet in de aanroep op te nemen. Zonder deze stap verliest een event dat alleen via de API wordt verstuurd de link met de advertentieklik die eraan voorafging.
De door OpenAI aanbevolen architectuur bestaat uit drie onderdelen: de pixel op elke pagina om oppref en de lichte events vast te leggen, de Conversions API voor waardevolle events die vanuit je back-end worden verstuurd (daar waar je de bestelling hebt, en waar niets de aanroep kan blokkeren), en beide kanalen die dezelfde conversie met dezelfde event_id versturen.
Automatische advanced matching
Automatische advanced matching (AAM) dient om conversies aan je advertenties te koppelen wanneer geen klik-identificator beschikbaar is. De pixel detecteert automatisch de herkenbare klantgegevens in de formulieren en andere bronnen op je site, normaliseert die en hasht ze met SHA-256 rechtstreeks in de browser. De documentatie stelt uitdrukkelijk dat er geen ruwe data wordt doorgestuurd.
Je kunt ook zelf gehashte identificatoren meegeven in het object user bij de initialisatie: email_sha256, phone_number_sha256, external_id_sha256, first_name_sha256, last_name_sha256, evenals de niet-gehashte velden country, city, region en postal_code.
Deze functionaliteit raakt aan persoonsgegevens: de activering ervan moet afgestemd worden met je functionaris voor gegevensbescherming, zeker in Europa.
Toestemming, AVG en het aansturen van de pixel
De SDK biedt een toestemmingscommando aan, dat je vóór de initialisatie moet aanroepen om de meting te blokkeren zolang de gebruiker niet heeft toegestemd:
oaiq("consent", false);, dan oaiq("init", { pixelId: "..." });, dan oaiq("consent", true); zodra de toestemming is verkregen.
Twee punten om te onthouden. Ten eerste: de toestemming staat standaard op true, tenzij die expliciet op false is gezet of er een weigering is geregistreerd. Op een Europese site moet je dus expliciet oaiq("consent", false) vooraf aanroepen in plaats van op het standaardgedrag te rekenen. Ten tweede: staat de waarde op false, dan worden de meet-events niet verstuurd.
Een parameter opt_out maakt het bovendien mogelijk om een event uit te sluiten van personalisatie op gebruikersniveau; de standaardwaarde is false. De SDK beheert ook een privacyvriendelijke identificator, oppref, die uit de URL wordt opgehaald en in een cookie __oppref wordt bewaard.
Context ter herinnering: gepersonaliseerde advertenties zijn bij de lancering niet beschikbaar in de Europese Economische Ruimte en in Zwitserland. Dat ontslaat je er geenszins van de toestemming voor de meting zelf te regelen.
Content Security Policy: de domeinen die je moet toestaan
De meest voorkomende oorzaak van een stille storing op sites met een strikte CSP: de SDK wordt geblokkeerd nog voor die zich kan initialiseren. De gedocumenteerde directives:
| Directive | Toe te stane bron | Rol |
|---|---|---|
| script-src | https://bzrcdn.openai.com | Laden van de SDK |
| connect-src | https://bzr.openai.com en https://bzrcdn.openai.com | Versturen en ophalen van de events |
| img-src | https://bzr.openai.com | Terugval via een afbeeldingsverzoek |
Meldt de pixel niets terwijl de code correct staat, open dan de console met de parameter debug ingeschakeld: een CSP-fout verschijnt daar meteen.
Wat de pixel niet kan
Een expliciete beperking, om te kennen voordat je je meetplan opstelt: de meetpixel ondersteunt de events app_installed en app_opened niet. Die events moeten aan serverzijde verstuurd worden, via de Conversions API.
OpenAI documenteert daarnaast integraties met meetpartners, waaronder mobile measurement partners (MMP), voor adverteerders bij wie de conversie in een app plaatsvindt.
Nog een aandachtspunt: het gebruik van meerdere Pixel ID's op eenzelfde site vraagt een specifieke configuratie, die OpenAI apart documenteert.
Attributie: wat wordt geteld, en hoe
OpenAI beoordeelt de conversie-events aan de hand van de events die voor je campagne zijn ingesteld en het toepasselijke attributievenster. Twee regels om te kennen:
- De post-klik attributie gebruikt het ingestelde klikvenster.
- De post-impressie conversies (view-through) gebruiken een vast venster van één dag na een in aanmerking komende impressie, los van jouw klikvenster.
En de leesregel die rekenfouten voorkomt: de hoofdkolom Conversies bevat uitsluitend de post-klik conversies. De post-impressie conversies vormen een afzonderlijke aanvullende rapportage die volgens OpenAI niet bij de conversies opgeteld mag worden en niet gebruikt mag worden voor basisperformancemetrics zoals de CPA.
Testchecklist voor de lancering
- Databron aangemaakt in Ads Manager, Pixel ID opgehaald.
- Script geladen in de head, initialisatie aangeroepen met het juiste Pixel ID.
- Toestemming vóór de init aangesloten op Europese sites.
- Standaard events afgevuurd op de juiste plekken, met het juiste veld type.
- Deduplicatie ingericht als je dubbel meet met de API: dezelfde waarde in id en event_id, hetzelfde Pixel ID.
- CSP bijgewerkt voor de drie directives.
- Debugmodus ingeschakeld tijdens de testfase, en daarna weer uitgeschakeld.
- Landingspagina toegankelijk voor OAI-AdsBot: een geblokkeerde pagina kan tot afkeuring van de advertentie leiden, los van de kwaliteit van je tagging. Onze landingspagina-checker voor ChatGPT Ads controleert dit punt.
- Eén enkel actief standaard event gekozen als doel als je op oCPC mikt, in de wetenschap dat dit na het aanmaken van de campagne niet meer te wijzigen is.
Veelgestelde vragen
Is conversiemeting verplicht op ChatGPT Ads?
Haalt de Conversions API oppref helemaal zelf op?
Moet je kiezen tussen de pixel en de Conversions API?
Hoe voorkom je dat een conversie twee keer wordt geteld?
Kan een aangepast event als oCPC-doel dienen?
Respecteert de pixel de toestemming van de gebruiker?
Mijn pixel meldt niets, wat controleer je als eerste?
Hoe meet je een app-installatie?
Wat is het attributievenster?
SEO-score, GEO-score, performance en responsive: 49 gecontroleerde punten, direct verdict over AI Overviews.
Gerelateerde gidsen
ChatGPT Ads: de complete gids 2026 om te adverteren op ChatGPT
Hoe ChatGPT Ads werkt, waar het beschikbaar is, hoe je een account aanmaakt, een campagne opbouwt, target met context hints en je budget inschat: de referentiegids, doorlopend bijgewerkt.
Lees de gidsChatGPT Ads kosten: biedingen, budgetten en de echte prijs van een campagne
Wat een ChatGPT Ads-campagne echt kost: de drie biedmodellen, het door OpenAI aanbevolen startbod, het minimale dagbudget en de facturering per drempel.
Lees de gidsChatGPT Ads voor e-commerce: campagnes op basis van een productfeed
Je catalogus koppelen aan ChatGPT Ads: de drie manieren om een feed aan te leveren, het verlopen van items, het veld is_ads_eligible en het verschil met organische productresultaten.
Lees de gids