Tilbage til Insights

Sådan opsætter du ChatGPT Ads Manager: Trin-for-trin fra vores egen pilot

8. september 2026|19 min read|Kilian Dreher

Da vi udgav vores første blik på ChatGPT Ads i Europa, sluttede artiklen med et løfte: byg en rigtig konto, kør en rigtig pilot, og kom tilbage med tal i stedet for teorier. Den pilot er kørt. Mellem den 1. og 5. september 2026 byggede vi en ChatGPT Ads Manager-konto for zentric.digital fra et tomt login-skærmbillede, arbejdede os selv igennem hvert eneste opsætningstrin, kørte tre live kampagner for i alt 150 euro og trak de første performance-tal direkte fra OpenAIs egen reporting-API.

Det er den guide, vi lovede. Ikke en omskrivning af OpenAIs hjælpesider, men det, der rent faktisk sker på skærmen: hvilke indstillinger der stille blokerer dine kampagner, og hvad specifikationerne faktisk er, når du står inde i produktet i stedet for at læse om det andenhånds. Sætter du din egen konto op denne uge, så brug det her som den tjekliste, vi selv ville have ønsket os.

Én ting først: Nogle af de tegngrænser og pristal, der cirkulerede før EU-lanceringen, matcher ikke det, den live brugerflade rent faktisk viser. Vi markerer hvert sted, hvor det var tilfældet.

Indhold


Det, der sker, første gang du åbner ads.openai.com

Første overraskelse: Den offentlige marketingside på ads.openai.com viser "Log in / Sign up", selv når du allerede er logget ind i samme browser-session. Du skal klikke dig videre, "Start now" er knappen, før siden faktisk tjekker din login-status og enten sender dig ind i en eksisterende konto eller starter onboarding. Har du sat marketingsiden som bogmærke og bliver ved med at se en login-prompt, er det forventet. Klik igennem alligevel.

Første gangs kontoopsætning spørger om dit juridiske firmanavn, din website og en branche fra en dropdown. Listen, vi så: Retail & eCommerce, Consumer Goods, Software & Technology, Financial Services, Media & Entertainment, Professional Services, Local Services, Education & Careers, Automotive, Health, Travel & Hospitality og Other. Vælg det, der passer bedst, det fodrer targeting-kategoriseringen senere.

Så kommer land, valuta og tidszone, og den her skærm er eksplicit om det: "These settings can't be changed later, please configure carefully." Danmark er tilgængelig som et fuldt landevalg. Værd at bemærke, hvis du kører en pilot på tværs af flere markeder: geo-targeting går senere helt ned på delstats- og regionsniveau, selv inden for ét enkelt land, hver eneste tyske delstat kan vælges individuelt. Få valget af land, valuta og tidszone rigtigt første gang, der er ingen ny chance senere.

Så billing. Det er et sikkert Google Pay-lignende iframe til kortoplysninger, en fakturaemail der udfyldes automatisk fra din login-mail, og et valgfrit felt til CC-modtagere på fakturaen. Prøver du at springe det over, får du en rigtig bekræftelsesdialog, ikke en blid advarsel: "Ads cannot serve until you set up your billing profile." Du kan teknisk bygge kampagner uden billing tilkoblet, men intet går live, før det er på plads.

Når billing er godkendt, lander du i selve Ads Manager-dashboardet med en velkomstboks, der hedder "Ads Manager Beta". Det ord, beta, betyder noget for resten af den her guide.


De to indstillinger, der stille blokerer enhver kampagne

Det her afsnit er det, vi selv skulle have haft, for begge punkter kostede os reel tid, før vi fandt dem.

Feltet "Advertiser type" gemmes ikke, sådan som det ser ud til. Under Settings, under General, under Verification, er der en dropdown "Advertiser type". Den viser "Business" som forudfyldt. Det ser færdigt ud. Det er det ikke. Værdien gemmes først, når du åbner dropdownen, vælger en værdi igen, selv den samme, og klikker Save. Springer du det over, fejler hvert eneste Publish-forsøg stille, ingen fejlmeddelelse i brugerfladen. Det eneste spor er en fejl 409: advertiser_type_required, der kun dukker op i browserens konsol. Vil dine kampagner ikke publicere, og du ser ingen fejl, der forklarer hvorfor: Det er højst sandsynligt den her. Tjek Verification-indstillingerne først.

Et virksomhedslogo er det andet hårde krav, ved siden af billing. Platformens egen formulering: "Set up billing and upload an account logo to start serving ads." Vi fandt ud af, at brugerfladens visning af, om et logo findes, var inkonsistent, den skiftede mellem "fundet" og "mangler" på forskellige skærmbilleder i samme session. Stol ikke på én enkelt aflæsning, uanset hvor i brugerfladen du befinder dig. Gå direkte ind under Settings, så General, og bekræft, at logoet faktisk ligger der, før du antager, det er grunden til, at en kampagne ikke leverer.

Derudover et par ting, du bør kende, før du er dybt inde i opsætningen:

  • En helt ny konto får et separat review-gate, selv med både billing og logo på plads. Klik på statussen "Not serving" på en kampagne, og du ser en paginerede liste af grunde. Vores viste: "Getting your account ready. No further action is expected from you at this time. This may take between 5-7 days." Et konkret, citerbart tal for, hvor lang tid en helt ny konto tager, før den rent faktisk leverer.
  • Custom audiences virker ikke til targeting inden for EEA eller Schweiz. Platformen siger det direkte: "Custom audiences are not supported for campaigns that target locations within EEA or Switzerland, where personalized ads are not yet available." Kører du for et europæisk marked, så planlæg din targeting-strategi som udelukkende kontekstuel fra start, byg ikke en strategi op om en audience-funktion, der alligevel ikke gælder.
  • Platformen kan gå ned, og gør det. Vi ramte en fejl, der fyldte hele skærmen, "SERVICE TEMPORARILY UNAVAILABLE", med tilhørende 503-fejl i browserens konsol, midt i opsætningen. Der var intet galt i vores ende. Det er et beta-produkt, og det opfører sig sådan en gang imellem.
  • Et statustoggle kan lyve for dig. Vi satte en kampagne på pause, fik en bekræftelse "Status updated successfully" og så den stå som pauset. Efter en frisk genindlæsning af siden var den aktiv igen. Det er ikke unikt for ChatGPT Ads, det er den samme disciplin, vi har beskrevet i forhold til at vurdere browserautomatiseringsværktøjer, der kører mod annonceplatforme generelt: stol ikke på en brugerfaldes øjeblikkelige tilbagemelding som bevis for, at en ændring rent faktisk slog igennem. Verificér altid med en hård genindlæsning, før du går videre.

Formatspecifikationer: Hvad brugerfladen faktisk tillader

I dækningen før EU-lanceringen cirkulerede der strammere tegngrænser, end produktet faktisk håndhæver. Her er det, vi verificerede direkte i annonceopbygningen:

FeltVerificeret live
TitelOp til 50 tegn
BeskrivelseOp til 100 tegn
Billede1:1 kvadratisk, minimum 256x256px, med indbygget kvadratisk beskæringsværktøj
Foreslået startbud (CPC)En fast baseline på 2,60 euro under "Strong Delivery", identisk vist for både Tyskland og Danmark, ingen synlig markedsafhængig forskel

Skriver du stadig dine tekster op mod de gamle, strammere grænser, så skriv dem om. Du har markant mere plads, end de tidligere offentlige tal antydede, og at presse en titel ned på 24 tegn, når feltet faktisk tillader 50, koster klarhed uden nogen grund.


To måder at bygge en kampagne på (og hvilken vi anbefaler)

Ads Manager giver dig to grundlæggende forskellige veje ind i en kampagne.

Den første er AI-assisteret: du peger på din website, systemet scraper siden og smider dig næsten direkte ind på en gennemgangsskærm, hvor de fleste beslutninger allerede er taget for dig. Standardindstillinger ud af boksen: Daily budget (ikke Campaign total, mere om det nedenfor), bidding sat til "Maximize results", og AI-tekstgenerering slået til. Det sidste punkt vejer tungere, end det lyder. Platformens egen formulering advarer om, at auto-genereret tekst "may be shown without your individual review or approval". Vi slog det fra i hver eneste kampagne, for at lade en algoritme skrive og publicere tekst på dine vegne uden et review-trin er ikke en tidsbesparelse, der er risikoen værd.

Den anden vej er "Create from scratch", et manuelt flow med reel kontrol: en Objective-dropdown (Reach, Clicks eller Conversions), detaljeret lokationsmålretning, custom audiences hvor de er tilgængelige, start- og slutdato, samt query-parameter-templating til landingssiden, så du kan sende campaign_id, ad_group_id, ad_id, ad_account_id og oppref direkte ind i din URL uden at bygge UTM-logik i hånden.

Vores anbefaling: brug det manuelle flow. Går du op i præcis tekst, nøjagtige tegngrænser og at vide præcis, hvilken bidding-strategi du kører, tager det AI-assisterede flow beslutninger fra dig, som du faktisk vil tage selv, især i en lille, loftbelagt pilot, hvor hver eneste euro skal gøre gavn.


Budgettyper: Dagligt budget vs. samlet kampagnebudget

Det er den vigtigste indstilling at få styr på, hvis du kører med et strikt loft.

Daily budget fungerer som på Meta: et gennemsnitligt dagligt forbrug, hvor platformen tillader op til cirka det dobbelte på en enkelt dag og op til cirka syv gange på ugebasis, så længe det jævner sig ud. Det er fint til en løbende kampagne. Det er ikke et hårdt loft.

Campaign total budget er et reelt loft for hele levetiden. Er det brugt op, stopper kampagnen. Ingen gennemsnitsberegning, ingen fleksibilitet på ugebasis.

Kører du en pilot med et fast beløb, som vi gjorde, brug Campaign total budget, ikke Daily budget. Vælger du Daily budget som standard til en test med et strikt loft, risikerer du at sprænge budgettet, uden at opdage det, før du tjekker kontoen dage senere.


Sådan strukturerede vi vores egen pilot: én variabel ad gangen

Vi planlagde oprindeligt det her som én enkelt kampagne. Vi lavede det i stedet om til en lille lokaliseringstest, for med kun 150 euro i alt vinder én test, der er skarpt designet, over en vag én.

KampagneLokationAnnoncesprogDestinationBudget
DE PilotTysklandTyskzentric.digital/de50 euro (Campaign total budget)
DK PilotDanmarkDanskzentric.digital/da50 euro (Campaign total budget)
DE+DK PilotTyskland + DanmarkEngelskzentric.digital/50 euro (Campaign total budget)

To designvalg kræver en forklaring, ellers ligner de fejl.

For det første: den tyske og danske kampagne samt den engelske kampagne målretter bevidst de samme to lande. Det er ikke en targeting-fejl, det er hele pointen. Spørgsmålet, vi ville have svar på, var, om lokaliseret creative faktisk performer bedre end engelsk creative i det samme marked, og det kan man ikke svare på, hvis kampagnerne ikke konkurrerer om den samme målgruppe.

For det andet: hver kampagne kørte med præcis én annonce, én USP-vinkel ("ingen binding, betaling for performance"), identisk på tværs af alle tre sprog. Vi testede ikke flere vinkler pr. kampagne. Med 150 euro delt på tre ville det at teste to variabler samtidig, sprog og vinkel, have udvandet begge signaler til det ulæselige. Kører du selv en lille pilot med et begrænset budget, er det den egentlige lektie: vælg den ene variabel, du vil have signal på, og hold alt andet konstant. At teste alt samtidig med for lidt budget fortæller dig i sidste ende ingenting.

Bidding var manuel CPC, med et loft på 3,50 euro, mod en live foreslået baseline på 2,60 euro. Objective var sat til Clicks, hvilket matcher direkte til manuel CPC-bidding.


Sådan sætter du conversion tracking op: pixel, CAPI og hvad du bør tjekke

Ads Manager kommer med en reel målingsstack: en browserbaseret Measurement Pixel, en serverside Conversions API, standard- og custom conversion-events, kampagnekobling, en Event Stream, hashed brugermatching, deduplikering mellem pixel og CAPI, samt både click-through- og view-through-attribution. Det er ikke moden multi-touch-attribution, det skal du ikke oversælge til dig selv, men det er reel first-party conversion-måling, et markant andet udgangspunkt end "ingen pixel overhovedet".

Conversion-tjeklisten i Ads Manager linker direkte til OpenAIs officielle guide "OpenAI Ads Conversions", med dokumentation på developers.openai.com om Measurement Pixel, Conversions API og understøttede events. Vi koblede vores eksisterende datakilde "Ads OpenAI Pixel" på og mappede et conversion-event "Completed Lead" til OpenAIs dokumenterede standardevent lead_created. Formularen til custom conversions begrænser rapporteringsnavnet til 30 tegn og sætter som standard et 30-dages click-through-attributionsvindue, med alternative vinduer annonceret som "coming later".

Pixel og CAPI deler ét browsergenereret logisk event-ID til deduplikering, begge er koblet til websitets eksisterende samtykke til marketingcookies, og matchingen bruger en normaliseret SHA-256-hash af emailen plus gyldig IP og user agent, så der aldrig sendes en klar email til OpenAI Ads. Browserside kilde-URL'er reduceres til betroet origin plus sti, query-strings og fragmenter fjernes inden afsendelse.

Vi verificerede det på samme måde som Metas 1-klik Conversions API et par uger forinden: stol ikke på featurebeskrivelsen, test det live. Pixel-SDK'et loadede først, efter marketingsamtykke var givet, som tiltænkt. Et testevent uden attribution gav HTTP 202. Event Stream viste det. Et CAPI-kald med validate_only sat til true gav HTTP 200 med accepted_events lig 1. Efter en hård genindlæsning viste eventet "Completed Lead" "Used by: 3 campaigns", koblingen holdt på tværs af alle tre pilotkampagner. At koble et conversion-event til tilføjede conversion- og CPA-rapportering i dashboardet. Det skiftede ikke stille bidding til conversion-optimering, vores objective forblev Clicks hele vejen igennem, præcis som forventet.

Et par live-eigenheder i brugerfladen, du bør kende, hvis du selv sætter det op: Event Stream gør ingenting, før du klikker "Start polling", det streamer ikke som standard. "Set up"-kontrollen for conversions i Campaigns-tabellen kommer først frem ved hover, en overlappende wrapper opsnapper ellers klik. En conversion-liste kan se ud til stadig at være åben, efter du har gemt, selvom gemningen allerede er gennemført. Igen: verificér med en hård genindlæsning, ikke med brugerfladens øjeblikkelige tilstand.

Én ting mere om sikkerhed. Viser opsætningsflowet dig en engangshemmelighed, en CAPI-nøgle er det oplagte eksempel, så læs den aldrig via et sidesnapshot eller et konsollog. Kopiér den én gang, direkte til et privat sted, og behandl enhver dialog "won't be shown again" på den her platform som følsom som udgangspunkt.


Reporting-API'et, ingen fortalte os fandtes

Det her er det mest nyttige, vi fandt, og det er det modsatte af, hvad man ville forvente ud fra den offentlige dokumentation.

OpenAIs udviklerdokumentation på developers.openai.com/ads fremstiller adgang til campaign management- og insights-API'er som gated, noget OpenAI slår til pr. konto for godkendte partnere. Det matchede ikke, hvad vi fandt. På en helt almindelig self-service-konto, uden partnerstatus og uden indsendt godkendelsesanmodning, ligger der under Settings, så General, så API Keys, en fungerende knap "Create New Key", og den virkede med det samme. Nøglen, den udstedte, havde fuld læseadgang ved første kald. Både GET /campaigns og GET /ad_account/insights mod base-URL'en api.ads.openai.com/v1 med standard bearer-auth virkede i første forsøg. Ingen ventetid, ingen partnersamtale.

Antog du, at du skulle tale med en OpenAI-repræsentant for at få programmatisk rapportering på en lille self-service-pilot, er den antagelse forkert, i hvert fald i denne beta. Det er et lignende hul til det, vi har skrevet om før i forhold til hvor den officielle Meta Ads MCP kommer til kort i AI-agent-workflows: dokumentation og markedsføringens fremstilling matcher ikke altid det, der reelt er tilgængeligt, hvis man går efter det.

En skarp kant: et almindeligt Python urllib-request mod API'et bliver afvist med 403 fra et Cloudflare bot-tjek, fejl 1010, med sin standard user agent. curl virker uden problemer. Scripter du mod det API, sæt en eksplicit, curl-lignende user agent-header, ellers ligner det præcis en autentifikationsfejl, uden at være det.


Fire dage inde: vores første rigtige tal

Vi trak de her tal via API'et, ikke via dashboard-brugerfladen, for perioden 1. til 5. september, fire dages live levering.

KampagneVisningerKlikCTRCPCCPMForbrugConversions
DE Pilot (tysk)1.948301,54%1,72 euro25,72 euro50,00 euro (fuldt brugt)0
DK Pilot (dansk)1.733251,44%2,04 euro28,80 euro48,92 euro0
DE+DK Pilot (engelsk)1.927341,76%1,45 euro25,75 euro49,41 euro0

Læs det som fire dages data, ikke som en dom. På det egentlige spørgsmål, vi ville have svar på, om lokaliseret creative slår engelsk creative i det samme marked, siger det tidlige signal indtil videre: nej. Den engelske annonce har den bedste CTR og det billigste CPC af de tre, netop i de markeder, hvor de lokaliserede versioner burde have hjemmebanefordel. Det er reelt kontraintuitivt, og vi er ikke klar til at kalde det afgjort. En tommelfingerregel, vi bruger, før vi stoler på en sammenligning mellem varianter: stol ikke på den under omkring 100 klik pr. variant. Vi ligger på 25 til 34. Behandl det som et tidligt signal, man bør holde øje med, ikke en konklusion, man bør handle på.

Nul conversions på tværs af alle tre kampagner indtil videre. Med kun 89 klik i alt på tværs af hele piloten er det et artefakt af lavt volumen, ikke bevis for et trackingproblem, og vi spekulerer ikke videre end det ud fra fire dages data.

Én strukturel faktor, der tæller ud over volumen-spørgsmålet, og vores egen vurdering af hvorfor: ChatGPT Ads vises i øjeblikket kun til brugere på Free og Go, ikke Plus, Pro, Business, Enterprise eller Edu. Det er et reelt loft over den adresserbare målgruppe, og vi tror, det er en del af grunden til, at netop de her klik endnu ikke har konverteret, ikke bare det faktum, at der kun er 89 af dem. Free-tier-brug hælder mod lettere, mere afslappet ChatGPT-brug, hvilket ikke automatisk er den samme målgruppe, der aktivt sammenligner muligheder og er klar til at købe. Vi vil hellere flagge det som en åben hypotese end lade som om nul-conversion-tallet kun har én ren forklaring.

Én ting bekræfter tallene: alle tre kampagner brugte sig tæt op ad deres loft på 50 euro hver, en allerede fuldt brugt, i stedet for at overskride det. Det er den adfærd for Campaign total budget, vi beskrev ovenfor, der holder stik under reel levering.

Vi udgiver en resultatfokuseret opfølgning, når der er markant mere volumen at læse ud fra. Vi sætter ikke en dato på det, vi vil hellere vente på en rigtig stikprøve end at love en tidsplan og presse dataene til at nå den.


Ofte stillede spørgsmål

Hvordan opretter jeg en ChatGPT Ads Manager-konto?

Gå til ads.openai.com og klik på "Start now", selv hvis du allerede er logget ind, marketingsiden afspejler ikke din login-status. Du sætter juridisk firmanavn, website og branche, derefter land, valuta og tidszone (låst herefter), derefter billing. Først når billing er bekræftet, lander du i selve Ads Manager-dashboardet.

Hvilken billedstørrelse kræver ChatGPT Ads?

Et kvadratisk billede i 1:1, minimum 256x256px. Annonceopbygningen har et indbygget kvadratisk beskæringsværktøj, hvis dit kildebillede ikke allerede er kvadratisk.

Hvorfor bliver min ChatGPT Ads-kampagne ved med at stå på "Not serving"?

Klik på statussen "Not serving" for de konkrete årsager, det er som regel én af: billing ikke sat op, intet konto-logo uploadet, kontoen sidder stadig i sit indledende brand-review-vindue (som platformen selv angiver til 5-7 dage), eller feltet "Advertiser type" i Settings blev ikke rent faktisk gemt, hvilket får Publish til at fejle stille og kun viser en 409-fejl i browserens konsol.

Hvad koster ChatGPT Ads pr. klik?

I vores live test var Ads Managers eget foreslåede start-CPC en fast "Strong Delivery"-baseline på 2,60 euro, både i Tyskland og Danmark. Vi kørte manuel CPC-bidding med et loft på 3,50 euro og så faktiske CPC'er mellem 1,45 og 2,04 euro på tværs af tre kampagner.

Kan jeg sætte et hårdt udgiftsloft på ChatGPT Ads?

Ja, men kun hvis du vælger "Campaign total budget" frem for "Daily budget". Daily budget tillader op til cirka det dobbelte på en dag og cirka syv gange på ugebasis, ligesom Meta. Campaign total budget er et reelt loft for hele levetiden, der stopper leveringen, så snart det er brugt op.


De vigtigste pointer

  • Åbn ads.openai.com og klik igennem, selv når der vises en login-prompt, mens du allerede er logget ind, herefter følger firmaoplysninger, et låst valg af land, valuta og tidszone samt billing, før du når det egentlige dashboard.
  • To indstillinger blokerer stille enhver kampagne: dropdownen "Advertiser type" i Verification-indstillingerne, der først gemmes, når du vælger igen og gemmer, og et manglende konto-logo, hvis status brugerfladen viser inkonsistent.
  • Verificerede live specifikationer overgår de tal, der cirkulerede før EU-lanceringen: titler op til 50 tegn, beskrivelser op til 100, ét 1:1-billede fra minimum 256x256px.
  • Brug "Create from scratch" frem for det AI-assisterede flow, hvis du vil have kontrol over tekst og bidding, og slå AI-tekstgenerering fra, den kan publicere tekst uden dit review.
  • Brug Campaign total budget, ikke Daily budget, til alt med et strikt udgiftsloft.
  • Det programmatiske reporting-API virker på en helt almindelig self-service-konto uden partnergodkendelse, på trods af dokumentation der antyder det modsatte, sørg bare for en curl-lignende user agent i dine requests.
  • Vores første fire dages livedata viser engelsk creative en anelse foran lokaliseret tysk og dansk creative i de samme markeder, men ved 25 til 34 klik pr. kampagne er det et signal, man skal holde øje med, ikke en konklusion, man skal handle på.

Er testen din konto værd?

At bygge en rigtig pilot, før man stoler på en ny annonceplatforms egne påstande, og at vide, hvilke tal der allerede er handlingsrelevante, og hvilke der stadig mangler volumen: det er præcis den type arbejde, vi laver for webshops og DTC-brands hver eneste uge.

Book et gratis discovery call, hvis du vil vide, om en kanal som den her allerede hører hjemme i din medieplan.

Klar til at skalere profitabelt?

Book din gratis strategisamtale, så kortlægger vi de næste skaleringsmuligheder for dit e-commerce brand.