Den 14. oktober 2026 skrev Barry Schwartz i Search Engine Roundtable at OpenAI nå setter inn mennesker, ikke bare et dashbord, for annonsørene på annonseplattformen sin. Slik oppsummerte han det: “OpenAI har folk som tar kontakt med annonsører for å hjelpe dem med å styre annonsene sine i ChatGPT Ads.” (egen oversettelse). Grunnlaget var en e-post som Anthony Higman la ut på X, med emnet Introducing your ChatGPT Ads Account Manager. Den oppgir en kontaktperson, inviterer til spørsmål, foreslår et innledende møte og legger opp til en gjennomgang annenhver uke for å se på resultatene og finne muligheter for optimalisering.
Dette er ikke lanseringen av annonser i ChatGPT. OpenAI publiserte annonseprinsippene sine tidligere i 2026, og utviklerportalen dokumenterer allerede en komplett verktøykasse for annonsører: kampanjer, produktfeeder, en Measurement Pixel og et Conversions API på serversiden. E-posten om kundeansvarlig er salgslaget som kommer på plass oppå en plattform som allerede fungerer.
For WooCommerce-butikker er det nyttige spørsmålet ikke om samtalebaserte annonser vil få betydning generelt. Det er hva plattformen faktisk forventer av en butikk: hvilke produktdata, i hvilket format, og hvordan et kjøp rapporteres tilbake. Denne veiledningen holder seg til det OpenAI dokumenterer, og knytter hvert krav til kode for WordPress og WooCommerce.
hva e-posten om kundeansvarlig i chatgpt ads tilbyr annonsører
E-posten i saken fra Search Engine Roundtable handler om kundeoppfølging, ikke kald kontakt med merkevarer som aldri har annonsert. Den presenterer en navngitt kundeansvarlig, tilbyr en første samtale og foreslår faste gjennomganger av kampanjeresultatene annenhver uke. Schwartz tolker det som folk som kan hjelpe byråer med å drive annonser for kundene sine, og han kaller selv den tolkningen en gjetning.
To detaljer fra OpenAIs egen dokumentasjon forklarer hvorfor en menneskelig kontakt betyr noe, også på en selvbetjent plattform:
- Enkelte funksjoner låses opp per konto. Veiledningen for produktfeeder oppgir tilgang til produktfeed-API-et for kontoen som en forutsetning, og sier at annonsøren skal kontakte kontoteamet hos OpenAI dersom tilgang til feed ikke er tilgjengelig.
- Flere innstillinger er permanente. Veiledningen for konverteringssporing sier at kampanjemålet ikke kan endres etter at kampanjen er opprettet, og at den valgte konverteringshendelsen heller ikke kan endres i en kampanje som optimaliserer for konverteringer. Feil i oppsettet koster en kampanje som må bygges på nytt, så en gjennomgang før lansering har reell verdi.
Reaksjonene på X var blandede. Higman spøkte med endeløse samtaler med representanter fra Google, Meta og ChatGPT Ads, og en annen bruker bemerket at OpenAI bruker KI til kundestøtte, men mennesker til salg. For en butikkeier er poenget enklere: får du denne e-posten, er den første samtalen rett anledning til å spørre om tilgang til feed og optimalisering for konverteringer er aktivert for kontoen din.
hvordan annonser vises i chatgpt ifølge openai
OpenAIs innlegg om selskapets tilnærming til annonsering og bredere tilgang til ChatGPT fastsetter reglene som hver plassering følger. Annonser vises nederst i et svar når det finnes et relevant sponset produkt eller en sponset tjeneste basert på den pågående samtalen. De er merket og visuelt atskilt fra det organiske svaret.
Det samme innlegget lister opp forpliktelsene som avgjør hva annonsører kan og ikke kan kjøpe:
- Uavhengige svar. Annonser påvirker ikke svarene ChatGPT gir. En butikk kan ikke betale for å bli nevnt i selve svarteksten.
- Personvern i samtalen. Samtaler holdes skjult for annonsører, og OpenAI opplyser at selskapet ikke selger brukerdata til dem.
- Brukerkontroll. Brukere kan slå av personlig tilpassede annonser og slette dataene som brukes til annonser.
- Utelukkede målgrupper og temaer. Annonser vises ikke for kontoer tilhørende brukere under 18 år, og de vises ikke i nærheten av sensitive temaer som helse, psykisk helse eller politikk.
- Betalte abonnementer. De dyrere betalte abonnementene forblir annonsefrie; annonsene retter seg mot gratisnivået og de billigere nivåene.
Dette rydder bort en vanlig misforståelse. Påstander om at sponsede produkter veves inn i modellens resonnement, strider mot det OpenAI beskriver: to separate systemer, et organisk svar og en merket annonseenhet under det. Organisk synlighet og betalt synlighet er to separate problemer, og det ene kjøper ikke det andre.
hvordan målretting i chatgpt ads fungerer uten søkeord
Referansen for kampanjemålretting lister opp fire virkemidler, og ingen av dem er en søkeordliste:
| Virkemiddel | Hva det styrer | Merknader fra dokumentasjonen |
|---|---|---|
| Geografisk målretting | Land eller steds-ID-er, med unntak | Kampanjer med produktfeed støtter bare målretting på landnivå |
| Plattformmålretting | ios_app, android_app, web | web omfatter mobilnettlesere, ikke bare datamaskiner |
| Egendefinerte målgrupper | Hashede kundelister for inkludering, ekskludering eller budmultiplikatorer | Ekskludering vinner når en bruker står på begge listene |
| Kontekstuelle hint | Beskrivelser av produkter, bruksområder eller behov for en annonsegruppe | Ikke søkeord med eksakt samsvar |
Kontekstuelle hint er det nærmeste man kommer søkeordanalyse, og dokumentasjonen sier tydelig at de ikke er søkeord. De beskriver hva en annonsegruppe selger og til hvem, så de fungerer best når de skrives som en kort produktbeskrivelse heller enn som en liste med søkefraser.
Forskjellen mellom å inkludere en målgruppe og å bruke en budmultiplikator betyr noe for butikker med en kundeliste. Å inkludere en målgruppe begrenser visningen til brukere som samsvarer. En budmultiplikator øker budet for brukere som samsvarer, mens alle andre fortsatt kan nås. En butikk som laster opp tidligere kunder som en inkluderende målgruppe, slutter helt å nå nye kunder; laster den opp den samme listen som multiplikator, skjer ikke det.
budalternativer og kampanjemål i chatgpt ads
Veiledningen for budgivning og budsjetter skiller mellom tre innstillinger som brukere av Google Ads gjerne behandler som én: kampanjemålet (hva det optimaliseres for), faktureringshendelsen (hva du betaler for) og budstrategien (hvem som setter budet).
| Kampanjemål | Faktureringshendelse | Budstrategi |
|---|---|---|
| Visninger | Visning | Fast bud |
| Klikk | Klikk | Fast bud eller maksimer klikk |
| Konverteringer | Klikk | Fast bud eller maksimer konverteringer |
Konverteringskampanjer optimaliserer for et kjøp eller en henvendelse, men faktureres fortsatt for gyldige klikk. De to “maksimer”-strategiene krever et dagsbudsjett og ingen maksimalt bud. Budmultiplikatorer for målgrupper fungerer bare med faste bud.
Pengebeløp uttrykkes i tre ulike enheter på tvers av plattformen, og å blande dem er den mest sannsynlige integrasjonsfeilen:
- Budsjetter og bud bruker mikroenheter: én million mikroenheter tilsvarer én enhet i kontovalutaen. Et bud på 2,50 sendes som 2500000.
- Bud på visninger gjelder per visning, så et CPM-tall deles på 1 000 før det regnes om til mikroenheter.
- Beløp i konverteringshendelser og priser i Delta API bruker heltall i minste valutaenhet: 8900 betyr 89,00 i en valuta med øre eller cent.
- Priser i CSV-feeden bruker hovedenheter med valutakode, for eksempel
79.99 EUR.
Optimalisering for konverteringer krever nøyaktig én aktiv standard konverteringshendelse, for eksempel order_created. Egendefinerte hendelser kan måles, men kan ikke være et optimaliseringsmål. Siden målet og den valgte hendelsen låses når kampanjen opprettes, må arbeidet med konverteringssporing som beskrives nedenfor, være ferdig før den første konverteringskampanjen opprettes.
hvordan bygge en produktfeed for chatgpt ads fra woocommerce
Shoppingannonser i ChatGPT bygges ut fra en produktfeed. Veiledningen for produktfeeder beskriver flyten: opprett en feed via Advertiser API, sett opp SFTP-tilgang med passord eller SSH-nøkkel, og last deretter opp en UTF-8-kodet CSV-fil med én rad per produkt eller variant. Filene legges direkte i SFTP-roten, uten undermapper, og hvert produkt skal bare forekomme én gang på tvers av alle filene.
Feltdefinisjonene står i OpenAIs skjema for produktfiler, som deles med organisk produktoppdagelse i ChatGPT. Ni grunnfelt er obligatoriske, og hvert av dem lar seg knytte rett til data i WooCommerce:
| Feedfelt | Kilde i WooCommerce | Merknader fra skjemaet |
|---|---|---|
item_id | SKU for produktet eller varianten, eller ID-en | Stabil, brukes aldri om igjen for en annen vare |
title | Produktnavn, inkludert varianten | Sikt mot høyst 150 tegn |
description | Kort eller lang beskrivelse, uten tagger | Ren tekst, opptil rundt 5 000 tegn |
url | Permalenke, med varianten valgt når det er mulig | Offentlig HTTPS, holdes stabil |
brand | Merkeattributt eller taksonomi | Et ekte merke, ikke en plassholder |
seller_name | Butikknavn | Selgeren av dette tilbudet |
image_url | Hovedbildet for denne varianten | Direkte URL til JPEG eller PNG |
price | Ordinær pris | Hovedenheter pluss valuta, for eksempel 79.99 EUR |
availability | Lagerstatus | in_stock, out_of_stock, pre_order, backorder eller unknown |
Variable produkter trenger tre ekstra felt på hver variantrad: en felles group_id (ID-en til hovedproduktet fungerer), listing_has_variations satt til true, og en variant_dict som {"color":"Black","size":"10"}, bygget fra variantattributtene. Gruppe-ID-en må være forskjellig fra hver vare-ID.
Identifikatorer fortjener oppmerksomhet. Fra og med WooCommerce 9.1 eksponerer produkter get_global_unique_id(), feltet som vises i administrasjonspanelet som GTIN, UPC, EAN eller ISBN. Skjemaet godtar én GTIN på nøyaktig 8, 12, 13 eller 14 sifre med gyldig kontrollsiffer, og ber butikker utelate feltet heller enn å finne på en verdi. Et produsentens delenummer (mpn) sammen med merke er reserveløsningen.
To flagg avgjør hvor et produkt kan vises. is_ads_eligible må være true for produkter annonsesystemet skal behandle; utelates feltet, er annonsebehandling slått av med mindre det finnes en standardverdi på feednivå. is_eligible_search styrer organisk oppdagelse og er uavhengig av om produktet kan brukes i annonser.
En utbredt antakelse i WordPress-miljøet er at en eksisterende XML-feed for Google Shopping fra en utvidelse kan brukes om igjen. Skjemaets Google-kompatible spor godtar tekstfiler atskilt med tabulator eller komma og med Googles kolonnenavn, og bare etter at OpenAI har bekreftet det formatet for den registrerte feeden. JSON, regneark, XML, RSS og Atom støttes ikke i det sporet. De fleste butikker vil trenge en egen CSV-eksport.
/**
* Skriver en CSV-produktfil for ChatGPT Ads for enkle produkter og varianter.
* Feltnavnene følger developers.openai.com/commerce/specs/file-upload/products.
*/
function wppoland_write_chatgpt_feed( string $path ): void {
$fh = fopen( $path, 'w' );
fputcsv( $fh, [ 'item_id', 'group_id', 'listing_has_variations', 'variant_dict',
'title', 'description', 'url', 'brand', 'seller_name', 'image_url',
'price', 'availability', 'gtin', 'is_ads_eligible' ] );
$map = [ 'instock' => 'in_stock', 'outofstock' => 'out_of_stock', 'onbackorder' => 'backorder' ];
$ids = wc_get_products( [ 'status' => 'publish', 'limit' => -1, 'return' => 'ids',
'type' => [ 'simple', 'variation' ] ] );
foreach ( $ids as $id ) {
$p = wc_get_product( $id );
$parent = $p->get_parent_id() ? wc_get_product( $p->get_parent_id() ) : null;
$image = wp_get_attachment_image_url( $p->get_image_id() ?: ( $parent ? $parent->get_image_id() : 0 ), 'full' );
if ( ! $image || '' === $p->get_regular_price() ) {
continue; // Obligatoriske felt mangler: hopp over i stedet for å sende plassholdere.
}
$variant = $parent ? wp_json_encode( array_map( 'strval', $p->get_attributes() ) ) : '';
fputcsv( $fh, [
$p->get_sku() ?: (string) $id,
$parent ? 'group-' . $parent->get_id() : '',
$parent ? 'true' : '',
$variant,
$p->get_name(),
wp_strip_all_tags( $p->get_description() ?: ( $parent ? $parent->get_description() : '' ) ),
$p->get_permalink(),
get_bloginfo( 'name' ), // Bytt ut med et ekte merkeattributt der produktene har det.
get_bloginfo( 'name' ),
$image,
wc_format_decimal( $p->get_regular_price(), 2 ) . ' ' . get_woocommerce_currency(),
$map[ $p->get_stock_status() ] ?? 'unknown',
$p->get_global_unique_id(),
'true',
] );
}
fclose( $fh );
}Selve opplastingen går over SFTP, så en cron-jobb eller en WP-CLI-kommando som skriver filen og sender den med serverens SFTP-klient, er nok. Etter hver opplasting rapporterer endepunktet for opplastingshistorikk en status (completed, completed_with_errors, failed med flere) pluss antall godkjente og avviste rader med diagnosekoder som missing_required_column eller invalid_value. OpenAI påpeker at en fullført opplasting ikke betyr at alle produktene kan vises.
hvordan holde priser og lager oppdatert med delta api
Veiledningen for feeder deler oppdateringer etter type. Endringer i tittel, pris eller tilgjengelighet for en eksisterende vare går gjennom Delta API, en PATCH-forespørsel som bare sender feltene som er endret. Nye produkter og endringer i andre felt, som bilder eller beskrivelser, krever en ny katalogopplasting via SFTP.
Regelen for lager er rett frem: en vare merket out_of_stock slutter å kvalifisere for visning når endringen har slått igjennom, og blir aktuell igjen når den settes tilbake til in_stock. Dokumentasjonen advarer også om at datoer for salg og tilgjengelighet i feeden ikke planlegger noe, så en prisendring må sendes idet den skjer.
I WooCommerce er de naturlige utløserne lagerhookene for produkter og varianter. Forespørselen trenger nøkkelen til Advertiser API, og den må bli på serveren, sammen med de andre hemmelighetene som gjennomgås i en sikkerhetsrevisjon av WordPress. I butikker der et ERP-system eier lager og priser, hører det samme kallet hjemme i laget for WooCommerce ERP-integrasjon, ikke i et tema.
/**
* Sender en lagerendring til Delta API i ChatGPT Ads.
* Endepunkt og struktur på dataene: developers.openai.com/ads/product-feeds
*/
function wppoland_push_chatgpt_stock( WC_Product $product ): void {
if ( ! defined( 'OPENAI_ADS_API_KEY' ) || ! defined( 'OPENAI_ADS_FEED_ID' ) ) {
return;
}
$item_id = $product->get_sku() ?: (string) $product->get_id();
$group_id = $product->get_parent_id() ? 'group-' . $product->get_parent_id() : $item_id;
wp_remote_request( 'https://api.ads.openai.com/v1/feeds/' . OPENAI_ADS_FEED_ID . '/products', [
'method' => 'PATCH',
'timeout' => 10,
'headers' => [
'Authorization' => 'Bearer ' . OPENAI_ADS_API_KEY,
'Content-Type' => 'application/json',
],
'body' => wp_json_encode( [ 'products' => [ [
'id' => $group_id,
'variants' => [ [
'id' => $item_id,
'availability' => [ 'status' => $product->is_in_stock() ? 'in_stock' : 'out_of_stock' ],
] ],
] ] ] ),
] );
}
add_action( 'woocommerce_product_set_stock', 'wppoland_push_chatgpt_stock' );
add_action( 'woocommerce_variation_set_stock', 'wppoland_push_chatgpt_stock' );Produkt-ID-en i Delta-forespørselen er katalogens group_id når variantene er gruppert, ellers item_id. En prisoppdatering bruker samme struktur, med price som et objekt med heltall i minste valutaenhet og valuta, for eksempel {"amount": 7999, "currency": "EUR"}. Et svar med accepted: true bekrefter bare at forespørselen er mottatt; endringen tas i bruk asynkront. Hold CSV-eksporten i samsvar med endringene i Delta, ellers overskriver neste fullstendige opplasting dem med utdaterte verdier.
hvordan installere measurement pixel for chatgpt ads i wordpress
Veiledningen for Measurement Pixel ber om et lite lasteskript nær toppen av <head> på hver side som skal registrere konverteringer, initialisert med en Pixel ID som opprettes under konverteringsfanen i Ads Manager. Ingen API-nøkkel havner i nettleseren. I WordPress betyr det en wp_head-handling med tidlig prioritet, eller head-plassen i et eksisterende oppsett med tag manager.
Tre deler av veiledningen krever beslutninger før utrulling:
- Samtykke. Pikselen går som standard ut fra at samtykke er gitt, med mindre den får beskjed om noe annet. For trafikk fra EU kaller du
oaiq("consent", false)før initialisering, og bytter til true når besøkende godtar måling i samtykkebanneret. Blokkerte hendelser spilles ikke av senere, og når samtykke settes til false, fjernes pikselens cookies. - Content Security Policy. Nettsteder med CSP må tillate
https://bzrcdn.openai.comiscript-srcogconnect-src, oghttps://bzr.openai.comiconnect-srcogimg-src. Veiledningen sier at du ikke skal legge til'unsafe-inline'bare for pikselens skyld; bruk nettstedets eksisterende nonce- eller hash-mekanisme. - Cookies. Med samtykke setter pikselen
__oppref, som holder på klikk-ID-en i 30 dager, og__obref, en tilfeldig nettleserreferanse som varer i 365 dager. Begge hører hjemme i cookieerklæringen.
For en butikk er den viktigste hendelsen order_created på bekreftelsessiden for ordren, med ordresummen i minste valutaenhet og ordrenummeret som event_id.
add_action( 'woocommerce_thankyou', function ( $order_id ) {
$order = wc_get_order( $order_id );
if ( ! $order || $order->get_meta( '_oaiq_sent' ) ) {
return; // Unngå en ny hendelse når siden lastes inn på nytt.
}
$order->update_meta_data( '_oaiq_sent', 1 );
$order->save();
$payload = [
'type' => 'contents',
'amount' => (int) round( $order->get_total() * 100 ), // Minste valutaenhet for valutaer med to desimaler.
'currency' => $order->get_currency(),
];
printf(
'<script>window.oaiq && oaiq("measure","order_created",%s,{event_id:%s});</script>',
wp_json_encode( $payload ),
wp_json_encode( 'order_' . $order->get_order_number() )
);
} );Multiplikasjonen med 100 passer for valutaer med to desimaler, som EUR, PLN eller NOK. Dokumentasjonen bruker JPY som eksempel, der 8900 betyr 8 900, så butikker som selger i valutaer uten desimaler, må droppe den.
hvordan sende woocommerce-ordrer gjennom conversions api
Pikselen er avhengig av nettleseren: annonseblokkere, avslått samtykke eller en fane som lukkes etter betaling kan alle føre til at hendelsen går tapt. Conversions API tetter det hullet ved å sende bekreftede ordrer fra serveren til https://bzr.openai.com/v1/events, autentisert med en egen nøkkel for Conversions API.
De dokumenterte reglene blir til en kort sjekkliste for en WooCommerce-integrasjon:
- Deduplisering. Bruk samme Pixel ID, samme hendelsesnavn og samme hendelses-ID som pikselen. OpenAI beholder den første hendelsen som kommer inn med en samsvarende nøkkel, og ignorerer senere duplikater.
- Klikk-ID-en. I motsetning til pikselen fanger ikke API-et opp
oppref. Les den fra cookien__opprefi kassen, lagre den på ordren og send den opprinnelige strengen uendret. - Tidsstempler.
timestamp_mser tidspunktet for kjøpet i Unix-millisekunder, og det må ligge innenfor de siste 7 dagene og ikke mer enn 10 minutter frem i tid. En kø som prøver mislykkede ordrer på nytt flere dager senere, vil miste dem. - Batcher. Opptil 1 000 hendelser per forespørsel, og én ugyldig hendelse får hele batchen til å feile.
validate_only: truesjekker en forespørsel uten å lagre den. - Kundedata. Valgfrie hashede identifikatorer gir bedre samsvar. E-postadresser trimmes og gjøres om til små bokstaver før SHA-256-hashing; telefonnumre beholder landskoden og mister symboler og innledende nuller.
- Alle ordrer, ikke bare de merkede. OpenAI anbefaler å sende hver konvertering, ikke bare dem med
oppref, slik at konverteringer etter visning kan telles.
// Lagre klikk-ID-en på ordren mens cookien fortsatt er tilgjengelig.
add_action( 'woocommerce_checkout_create_order', function ( $order ) {
if ( ! empty( $_COOKIE['__oppref'] ) ) {
$order->update_meta_data( '_oppref', sanitize_text_field( wp_unslash( $_COOKIE['__oppref'] ) ) );
}
} );
add_action( 'woocommerce_payment_complete', function ( $order_id ) {
$order = wc_get_order( $order_id );
if ( ! $order || ! defined( 'OPENAI_CONVERSIONS_API_KEY' ) || ! defined( 'OPENAI_PIXEL_ID' ) ) {
return;
}
$event = [
'id' => 'order_' . $order->get_order_number(), // Samme verdi som event_id i pikselen.
'type' => 'order_created',
'timestamp_ms' => $order->get_date_paid()->getTimestamp() * 1000,
'action_source' => 'web',
'source_url' => $order->get_checkout_order_received_url(),
'user' => [ 'emails_sha256' => [ hash( 'sha256', strtolower( trim( $order->get_billing_email() ) ) ) ] ],
'data' => [
'type' => 'contents',
'amount' => (int) round( $order->get_total() * 100 ),
'currency' => $order->get_currency(),
],
];
if ( $order->get_meta( '_oppref' ) ) {
$event['oppref'] = $order->get_meta( '_oppref' );
}
wp_remote_post( 'https://bzr.openai.com/v1/events?pid=' . rawurlencode( OPENAI_PIXEL_ID ), [
'timeout' => 10,
'headers' => [
'Authorization' => 'Bearer ' . OPENAI_CONVERSIONS_API_KEY,
'Content-Type' => 'application/json',
],
'body' => wp_json_encode( [ 'events' => [ $event ] ] ),
] );
} );Hashing av e-postadressen hører bare hjemme i butikker der personvernerklæringen og samtykkeoppsettet dekker deling av hashede identifikatorer med en annonseplattform. Uten et slikt rettslig grunnlag fjerner du user-blokken; hendelsen telles fortsatt, men med svakere samsvar.
Før du limer inn pikselen, sjekk også hva den sender fra din side. Buchodis analyse fra 20. september 2026 beskriver informasjonskapselen __obi, som ChatGPT setter på .openai.com i ett år, og som går tilbake til OpenAI fra annonsørenes nettsteder sammen med hendelsene fra oaiq.min.js. SDK-en kan selv hente data fra skjemafelt og fra datalaget i tag manageren, og automatisk matching var slått på i 638 av 881 piksler med kjent innstilling. Hvert dekodede token hadde consent_decision: analytics_allowed, så OpenAI behandler informasjonskapselen som analyse. I en WooCommerce-butikk bør pikselen lastes først etter markedsføringssamtykke i ditt eget banner, og automatisk matching bør slås av hvis du ikke vil at skriptet skal lese feltene i kassen.
hvordan attribusjon i chatgpt ads skiller seg fra utm-sporing
Analyseverktøy som er avhengige av UTM-parametere, ser klikk på ChatGPT-annonser bare så godt som landingsadressene er merket. Attribusjon i ChatGPT Ads er ikke avhengig av UTM-er. Den bruker sin egen klikkreferanse, oppref, som sendes med i adressen til landingssiden og lagres i førstepartscookien beskrevet ovenfor.
Den dokumenterte attribusjonsmodellen har tre deler:
- Konverteringer etter klikk krediteres innenfor klikkvinduet som er satt opp i innstillingen for konverteringshendelsen. Oppsettsveiledningen bruker et vindu på 30 dager.
- Konverteringer etter visning, der det er tilgjengelig for en konto, bruker et fast vindu på én dag etter en kvalifisert visning. Ads Manager rapporterer dem som et eget kampanjetall; de inngår ikke i totalen for Conversions, og CPA, budgivning og fakturering er fortsatt basert på klikk.
- Når begge gjelder, går klikket foran.
For testing returnerer overvåkingsendepunktet et utvalg hendelser fra omtrent de siste 15 minuttene og viser om hver av dem kom inn via pixel_sdk eller server_to_server. Et testkjøp skal dukke opp i begge kanaler med samme hendelses-ID, og bare én gang i rapporterte konverteringer.
Den praktiske konsekvensen for rapportering er at tallene i ChatGPT Ads og i GA4 ikke vil stemme overens, og det er tilsiktet. GA4 ser økter og de UTM-ene du legger til; Ads Manager ser samsvar på oppref og kreditering etter visning som GA4 ikke har noen mulighet til å observere. Sammenlign trender, ikke totaler.
product schema på woocommerce-sider ved siden av annonsefeeden
OpenAIs dokumentasjon for feeder nevner ikke strukturerte data på produktsiden, så det finnes ingen dokumentert regel om at schema-oppmerking påvirker visningen av annonser i ChatGPT. Det betyr likevel noe på den organiske siden: Google bruker strukturerte data for Product til produktoppføringer fra forhandlere, og én felles kilde for pris, tilgjengelighet og GTIN hindrer at feeden, siden og oppmerkingen sier forskjellige ting.
WooCommerce sender allerede ut Product-oppmerking. Filteret nedenfor legger til GTIN fra det innebygde feltet og gjør tilgjengeligheten eksplisitt, uten å erstatte tilbudsdataene WooCommerce genererer:
add_filter( 'woocommerce_structured_data_product', function ( $markup, $product ) {
$gtin = $product->get_global_unique_id();
if ( $gtin && preg_match( '/^\d{8}$|^\d{12,14}$/', $gtin ) ) {
$markup[ 'gtin' . strlen( $gtin ) ] = $gtin;
}
if ( isset( $markup['offers'][0] ) ) {
$markup['offers'][0]['availability'] = $product->is_in_stock()
? 'https://schema.org/InStock'
: 'https://schema.org/OutOfStock';
}
return $markup;
}, 10, 2 );Den samme valideringsregelen for GTIN gjelder begge steder: 8, 12, 13 eller 14 sifre, aldri en oppdiktet verdi.
hvordan kombinere organisk synlighet i chatgpt med chatgpt ads
Fordi OpenAI holder annonser atskilt fra svarene, krever organisk tilstedeværelse og betalt plassering hvert sitt arbeid, og hver av dem dekker et hull den andre ikke kan dekke.
- Organiske svar. Å bli sitert i svaret avhenger av innhold og produktdata som ChatGPT kan finne og stole på: tydelige veiledninger, sammenligninger, presise produktsider og, for produkter,
is_eligible_searchi feeden. Å betale for annonser endrer ikke dette. - Betalt plassering. Annonsen under svaret er stedet der en butikk kan vises i kommersielle samtaler selv uten en organisk omtale. Den bygger på feeden, budene og konverteringsdataene beskrevet ovenfor.
En butikk som bare kjøper annonser, er avhengig av annonsekroner for hvert eneste besøk. En butikk som bare jobber med organisk synlighet, har ingen mulighet til å vises når en samtale nærmer seg et kjøp og svaret siterer noen andre. Med begge deler, og én pipeline for produktdata som mater både søkekvalifisering og annonsekvalifisering, slipper man å vedlikeholde to kataloger.
sjekkliste for implementering i wordpress og woocommerce
- Ryddige identifikatorer. Gi hvert produkt og hver variant en stabil SKU, fyll ut GTIN-feltet der en slik finnes, og fyll det aldri med plassholdere.
- Bygg CSV-eksporten. Koble de ni obligatoriske feltene, legg til
group_id,listing_has_variationsogvariant_dictfor varianter, og settis_ads_eligibleper produkt. - Automatiser opplastingen. Skriv filen etter en fast plan, send den til SFTP-roten og sjekk opplastingshistorikken for avviste rader.
- Koble til Delta API. Send lager- og prisendringer fra WooCommerce eller ERP-systemet idet de skjer, i minste valutaenhet.
- Installer pikselen med samtykke. Last den tidlig i head, gjør den avhengig av samtykkebanneret, og oppdater CSP og cookieerklæringen.
- Legg til Conversions API. Fang opp
opprefi kassen, send bekreftede ordrer med samme hendelses-ID som pikselen, og hold begge API-nøklene på serveren. - Opprett konverteringsinnstillingene før kampanjene. Velg standardhendelsen, sjekk hendelsene i overvåkingsendepunktet, og opprett først deretter en kampanje som optimaliserer for konverteringer, siden målet ikke kan endres senere.







