Een productfeed-campagne in ChatGPT Ads werkt wezenlijk anders dan een standaardcampagne. Bij een standaardcampagne schrijf je zelf advertentieteksten en context hints die het systeem helpen begrijpen wanneer je advertentie relevant is. Bij een productfeed-campagne bepaalt de productcatalogus zelf grotendeels de advertenties: titel, beschrijving, prijs en afbeelding komen automatisch uit de feed, en het systeem selecteert per gesprek een passend product.
In dit stappenplan gebruiken we een geanonimiseerde praktijkcase van een webshop met een groot productassortiment (duizenden producten, georganiseerd in categorieën). Het doel is een eerste, kleine categorie via een productfeed-campagne te adverteren, met een dagbudget van €25. Onderweg kwamen een aantal praktische knelpunten naar voren die de moeite waard zijn om vast te leggen, vooral omdat de documentatie van dit platform op onderdelen achterloopt op de praktijk. De schermafbeeldingen laten de interface zien zoals die op 14 september 2026 beschikbaar was. Voor de achtergrond van het platform, zie adverteren in ChatGPT en het algemene stappenplan voor het opzetten van een campagne; verkoop je diensten in plaats van producten, bekijk dan onze praktijkcase voor leadgeneratie.
Startpunt: vanuit het lege Campagnes-overzicht wordt een nieuwe campagne aangemaakt.
1. Kies eerst het juiste campagnetype
Ads Manager kent twee campagnetypen: “Standaard” en “Productfeed”. Bij het aanmaken van een eerste campagne staat “Standaard” vaak al voorgeselecteerd. Voor een webshop met een groot assortiment is dat niet de juiste keuze: een standaardcampagne verwacht dat je zelf per advertentie een titel, beschrijving en afbeelding aanlevert – niet praktisch bij duizenden producten, en niet nodig wanneer een productfeed dat werk kan overnemen.
De keuze tussen campagnetype Standaard en Productfeed, bij het aanmaken van een nieuwe campagne.Wat er gebeurt als je per ongeluk Standaard kiest en toch doorgaat: Ads Manager biedt dan een handmatige advertentie met velden voor titel, beschrijving en afbeelding – niet wat je wilt bij een feed-gebaseerde aanpak.
Belangrijk om te weten: het type campagne wordt pas “Productfeed” als bruikbare optie zodra er al minstens één productfeed succesvol is geüpload. Zonder gekoppelde feed krijg je dus al snel een standaardcampagne, ook als dat niet de bedoeling is.
2. Upload eerst je productfeed, vóórdat je een campagne aanmaakt
De juiste volgorde is dus: eerst de feed, dan de campagne. Dit gebeurt via Tools > Feeds, los van de campagnestructuur zelf.
Onder Tools > Feeds registreer je de productcatalogus als apart onderdeel, voordat er ooit een campagne aan gekoppeld wordt.Bij het aanmaken van een feed kies je hoe de producten worden aangeleverd: CSV/TXT-upload (handmatig), een gehoste URL (automatisch ververst) of een SFTP-verbinding (voor technische teams).
3. Waarom de eerste upload werd geweigerd
Een eerste testupload met honderd producten werd geweigerd met de melding “Kon dit bestand niet valideren” – zonder verdere toelichting welk veld of welke waarde het probleem veroorzaakte.
Een eerste testupload werd afgewezen. De foutmelding gaf geen concrete aanwijzing welk onderdeel van het bestand niet klopte.
Uitgezocht in de actuele developer-documentatie van OpenAI bleek de oorzaak niet in de productdata te zitten, maar in het bestandsformaat zelf. OpenAI ondersteunt twee feedformaten naast elkaar:
Het eigen (native) OpenAI-format, met veldnamen zoals item_id, url, image_url en seller_name.
Een “Google-compatible” format met vertrouwde veldnamen zoals id, link en image_link – dit format wordt echter alleen gebruikt nadat OpenAI dat specifiek voor een geregistreerde feed heeft bevestigd.
Bij een nieuwe, nog niet bevestigde feed wordt een upload dus uitsluitend tegen het native format getoetst. Een bestand met Google-compatible veldnamen (zoals veel webshops die al voor Google Merchant Center gebruiken, vergelijkbaar met de feed achter een Google Shopping-campagne) wordt dan afgekeurd – niet omdat de productdata slecht is, maar omdat de kolomnamen niet worden herkend.
Een tweede, makkelijk over het hoofd te ziene eis: het prijsveld moet een bedrag mét valutacode bevatten (bijvoorbeeld “9.95 EUR”), niet alleen een kaal getal.
4. De juiste bestandsindeling toepassen
Na het ombouwen van de feed naar het native format – met onder meer item_id, title, description, url, brand, seller_name, image_url, availability en price (inclusief valutacode) – werd het bestand wel herkend en gevalideerd.
Na aanpassing naar het native OpenAI-format herkent Ads Manager het bestand meteen, inclusief de correcte kolomnamen.De uploadgeschiedenis bevestigt de succesvolle verwerking van de honderd producten.
5. Maak de campagne aan en koppel de feed
Met een succesvol gevalideerde feed verschijnt “Productfeed” nu als bruikbare keuzeoptie bij het aanmaken van een nieuwe campagne. De gekoppelde feed bepaalt vanaf dit moment welke producten in aanmerking komen voor advertenties.
Bij Type campagne wordt “Productfeed” gekozen, met de zojuist geüploade feed als bron.
6. Kies eerst Klikken als doel, niet Conversies
Ads Manager biedt bij Doel de keuzes Bereik, Klikken en Conversies. Voor een net gestarte campagne zonder conversiehistorie is Conversies nog geen goede keuze: het biedalgoritme optimaliseert dan op basis van een conversiekans die het nog niet kan inschatten, wat in de eerste weken tot inficiënte besteding kan leiden.
Doel: gekozen voor Klikken, om eerst verkeer en leerdata op te bouwen vóórdat er op conversies wordt geoptimaliseerd.
Zodra er na een paar weken voldoende conversiedata binnenkomt, is dit het moment om terug te komen op deze instelling en alsnog over te schakelen naar Conversies.
7. Locaties en platforms: waarom apps aan laten staan
Bij Google Ads is het gebruikelijk om vertoning in apps uit te sluiten, omdat dat daar vaak duidt op banners in het Display-netwerk met een verhoogd risico op per ongeluk geklikte advertenties. Die vergelijking gaat hier niet zonder meer op – zie ook ChatGPT Ads vs. Google Ads.
“Android app” en “iOS app” betekenen bij ChatGPT Ads dat de advertentie wordt getoond aan iemand die de ChatGPT-app zelf gebruikt, niet dat de advertentie in een willekeurige derde-partij-app verschijnt zoals bij een Display-netwerk. Er is bovendien nog geen platformspecifieke prestatiedata beschikbaar om apps op voorhand uit te sluiten.
Alle vijf platforms (Android app, Android web, Desktop web, iOS app, iOS web) blijven aanvankelijk aanstaan, om het beperkte klikvolume niet onnodig te verkleinen.
8. Voeg UTM-parameters toe op campagneniveau
Naast de native OpenAI-parameters (campaign_id, ad_group_id, ad_id) is het nuttig om ook UTM-parameters toe te voegen, zodat het verkeer in GA4 herkenbaar en leesbaar is. Dit veld bestaat op meerdere niveaus: campagne, advertentiegroep en individuele advertentie.
Queryparameters van de landingspagina op campagneniveau, met ondersteunde sjabloonwaarden zoals {campaign_id}, {ad_group_id} en {ad_id}.
Let op: curly braces werken alleen voor deze vaste systeemwaarden. Voor een leesbare, vaste campagnenaam of advertentiegroepnaam in GA4 gebruik je gewone platte tekst zonder accolades, bijvoorbeeld utm_campaign=webshop-productfeed.
9. Kies één conversiegebeurtenis, niet meerdere
Bij het campagnedoel kan optioneel een conversiegebeurtenis worden gekoppeld voor meting – ook als het doel nog op Klikken staat. Ads Manager laat toe om meerdere gebeurtenissen tegelijk te koppelen, maar dat is voor de rapportage geen goed idee.
Eén heldere hoofdconversie (bijvoorbeeld ‘bestelling voltooid’) blijft het uitgangspunt.
Tussenstappen (bijvoorbeeld toevoegen aan winkelwagen, checkout gestart) blijven apart meetbaar via de Pixel of Conversions API, ook zonder ze hier te koppelen.
Één conversie houdt de rapportage overzichtelijk en bereidt de latere omschakeling naar het doel Conversies goed voor.
10. Bouw de advertentiegroep: biedstrategie en productfilters
Bij een productfeed-advertentiegroep verschijnen twee onderdelen die niet bij een standaardcampagne voorkomen: Productfilters (om te bepalen welke producten uit de feed in deze groep mogen meedraaien) en een direct zichtbare telling van het aantal overeenkomende producten.
Handmatige max. CPC-biedstrategie: de interface geeft direct een indicatie (“Sterke levering”) bij het ingevulde bod. Zie wat kost adverteren in ChatGPT? voor een rekenvoorbeeld.
Voor deze eerste, kleine testfeed kwamen alle honderd producten al overeen zonder dat er een filter nodig was. Bij een volledige catalogus met meerdere productcategorieën is een filter op bijvoorbeeld productcategorie of merk wel nodig om te voorkomen dat alle categorieën door elkaar in dezelfde advertentiegroep terechtkomen.
11. De advertentie zelf: dynamische titel en afbeeldingsveld
Dit is het meest zichtbare verschil met een standaardcampagne: bij een productfeed-advertentie hoeft er geen titel, beschrijving of afbeelding te worden getypt. In plaats daarvan wordt een dynamisch veld gekoppeld dat automatisch wordt gevuld vanuit de feed, per geselecteerd product.
De titel gebruikt de placeholder {{product.title}}; het afbeeldingsveld verwijst naar de kolom image_url uit de feed. Het advertentievoorbeeld toont meteen een echt, willekeurig product uit de feed.
12. Geen context hints bij een productfeed-advertentiegroep
Een belangrijk verschil met een standaardcampagne: nergens in het aanmaakproces van een productfeed-advertentiegroep wordt om context hints gevraagd. Dat is geen omissie, maar een gevolg van hoe de matching hier werkt.
Bij een standaardcampagne beschrijf je zelf, in context hints, in welke gesprekssituaties een advertentie relevant is (zie onze leadgeneratiecase). Bij een productfeed-campagne bepaalt de inhoud van de feed zelf (titel, beschrijving, productcategorie, merk) wanneer een product gekozen wordt. De kwaliteit van de feeddata vervult dus feitelijk de rol die context hints bij een standaardcampagne hebben.
13. Controleer het campagneoverzicht vóór publicatie
Voordat de campagne wordt gepubliceerd, toont Ads Manager een volledig overzicht van alle gemaakte keuzes: campagnenaam, type, gekoppelde feed, doel, locaties, platforms, queryparameters, budget, conversiegebeurtenis, biedstrategie en productfilters.
Campagneoverzicht, eerste deel.Campagneoverzicht, tweede deel, met de advertentiegroep-instellingen.
Net als bij een standaardcampagne geldt: publiceren betekent niet automatisch dat de advertenties ook meteen kunnen leveren. Facturering en een accountlogo moeten doorgaans eerst zijn afgerond voordat Ads Manager advertenties daadwerkelijk gaat weergeven – zie de accountstap in onze leadgeneratiecase voor een concreet voorbeeld hiervan.
Praktische checklist vóór livegang
Productfeed is geüpload en gevalideerd (controleer het native vs. Google-compatible format).
Prijsveld bevat een bedrag mét valutacode.
Campagnetype staat op Productfeed, niet op Standaard.
Doel staat op Klikken, tenzij er al voldoende conversiedata is.
Alleen één conversiegebeurtenis is gekoppeld voor meting.
Locaties en platforms sluiten aan bij de doelgroep; apps zijn niet zonder reden uitgesloten.
UTM-parameters zijn toegevoegd naast de native campaign_id/ad_id.
Productfilters zijn ingesteld zodra de feed meerdere categorieën bevat.
Titel- en afbeeldingsvelden verwijzen naar de juiste feedkolommen.
Facturering en accountlogo zijn afgerond voordat levering wordt verwacht.
Veelgestelde vragen over een ChatGPT Ads-productfeed-campagne
Wat is het verschil tussen een Standaard- en een Productfeed-campagne?
Bij een Standaardcampagne schrijf je zelf advertentieteksten en context hints per advertentiegroep, met een vaste landingspagina. Bij een Productfeed-campagne levert een gekoppelde productcatalogus de titel, beschrijving, prijs, afbeelding en bestemmings-URL automatisch aan, per individueel product. Productfeed-campagnes zijn bedoeld voor adverteerders met een brede of vaak wisselende catalogus; Standaardcampagnes passen beter bij een klein aantal duidelijk verschillende diensten of thema’s.
Waarom moet de productfeed eerst worden geüpload, vóórdat een campagne kan worden aangemaakt?
Het campagnetype “Productfeed” wordt in Ads Manager pas als bruikbare optie zichtbaar zodra er al minstens één feed succesvol is gevalideerd. Zonder gekoppelde feed valt het systeem terug op een Standaardcampagne, ook wanneer dat niet de bedoeling is. Feeds worden apart beheerd onder Tools > Feeds, los van de campagnestructuur.
Welk bestandsformaat moet een productfeed hebben?
OpenAI ondersteunt twee formaten: het eigen native format (met velden als item_id, url, image_url en seller_name) en een Google-compatible format (met velden als id, link en image_link). Dat laatste format wordt echter alleen toegepast nadat OpenAI dat specifiek voor de geregistreerde feed heeft bevestigd. Een nieuwe feed wordt dus in de praktijk eerst tegen het native format getoetst – een veelvoorkomende reden waarom een op het oog correcte, Google Merchant Center-achtige feed alsnog wordt afgewezen.
Waarom kan er bij een productfeed-advertentiegroep geen context hints worden ingesteld?
Bij een productfeed-advertentiegroep bepaalt de inhoud van de feed zelf (titel, beschrijving, productcategorie, merk) wanneer een product relevant is voor een gesprek. Die rol vervullen context hints bij een Standaardcampagne. De kwaliteit en volledigheid van de feeddata is daarom bij een productfeed-campagne minstens zo belangrijk als context hints dat zijn bij een Standaardcampagne.
Dat hangt af van waar daadwerkelijk prestatiedata op wijst, niet van een reflex uit Google Ads. Bij Google Ads wordt app-verkeer vaak uitgesloten omdat dat verwijst naar het Display-netwerk, met een verhoogd risico op per ongeluk geklikte banners. Bij ChatGPT Ads betekent “app” dat iemand de ChatGPT-app zelf gebruikt in plaats van de website in een browser – conceptueel dus geen vergelijkbaar risico. Zolang er nog geen eigen platformdata is, is het raadzaam om alle platforms aan te laten staan en na een paar weken op basis van de eigen cijfers te beoordelen of uitsluiten zinvol is.
Waarom eerst optimaliseren op Klikken in plaats van Conversies?
Een biedalgoritme dat optimaliseert op conversies heeft voldoende historische conversiedata nodig om goed te kunnen inschatten welke klikken waarschijnlijk tot een conversie leiden. Zonder die data optimaliseert het algoritme in feite blind, wat budget kan verspillen. Door eerst op Klikken te optimaliseren, bouw je verkeer en conversiedata op. Zodra er voldoende conversies binnenkomen, is dat het moment om over te schakelen naar het doel Conversies.