De fleste feedproblemer ser ikke ut som feedproblemer. De ser ut som en Google Merchant Center-avvisning du ikke kan forklare, en Advantage+-kampanje som bruker budsjettet sitt på én svart t-skjorte, eller en Shopping-annonse som sender en kunde som leter etter en sko i størrelse 42 til en side der bare størrelse 38 er igjen.
Under nesten alle disse ligger det samme: varianter.
En variant er enhver versjon av et produkt som er forskjellig på én synlig, kjøpbar måte – størrelse, farge, materiale, kapasitet, finish. De er vanlige i detaljhandelen og uvanlig vanskelige i feeder, fordi hver kanal modellerer dem forskjellig, og fordi det å gjøre feil mislykkes i det stille. Ingenting går i stykker. Annonsene dine yter bare stille dårligere, og diagnosen lever fire lag lenger nede i en datafil som ingen åpner.
Denne veiledningen dekker hele emnet: hva som faktisk teller som en variant, hvordan item_group_id fungerer og hvor folk misbruker det, hvert variantdefinerende attributt med dets reelle begrensninger, eksempler på fungerende feeder i XML, CSV og JSON, hvordan Google, Meta, TikTok, Pinterest, Amazon og regionale markedsplasser forventer at varianter skal være strukturert, og en diagnostisk tabell for feilene som dukker opp oftest.
Den er lang fordi emnet er det. Bruk innholdsfortegnelsen for å hoppe.
1. Hva en variant egentlig er
En variant er en kjøpbar versjon av et produkt som skiller seg fra sine søsken i minst én egenskap en kunde ville valgt mellom, samtidig som det forblir det samme produktet.
Den siste setningen gjør mye arbeid. En blå medium t-skjorte og en svart large t-skjorte er det samme produktet. En blå t-skjorte og en blå hettegenser er ikke det, selv fra samme merke i samme stoff.
Standardmodellen på tvers av de fleste kanaler er overordnet/underordnet :
- Ocuco forelder er det konseptuelle produktet – «Merino Crew Neck Genser». Den kan vanligvis ikke kjøpes alene.
- Ocuco barn er variantene – hver med sin egen SKU, sitt eget lagernivå, noen ganger sin egen pris og sitt eget image.
I en produktfeed uttrykkes dette nesten alltid flatt : hver variant er sin egen rad eller <vare>, og en delt grupperingsnøkkel binder dem sammen. Det er ingen nesting. En genser i 4 farger og 5 størrelser er 20 rader, som alle har samme gruppe-ID.
Hva er ikke en variant
Det er her feeder går galt før en eneste linje med XML er skrevet.
| Ikke en variant | Hvorfor | Hva du skal bruke i stedet |
|---|---|---|
| multi~~POS=TRUNC — en sixpack vs. en single | Ulik mengde av samme enhet, ikke en valgt egenskap | multipakkeattributt (Google) |
| Pakker — kamera + objektiv + veske | En distinkt salgbar kompositt | is_bundle-attributtet; separat produkt |
| Relaterte produkter — matchende topp og skjørt | Ulike produkter som passer godt sammen | Skill elementer; bruk anbefalinger |
| Renovert kontra ny | Tilstand, ikke variasjon | tilstandsattributt |
| Ulike forhandleres oppføringer | Samme produkt, annen selger | Separate kontoer/feeder |
| Tilpasning — gravert navn | Bestillingsvare, ikke et lagerført alternativ | Vanligvis én vare; merk av i beskrivelsen |
Hvis noen av disse grupperes under en delt item_group_id, produseres en gruppe der medlemmene ikke er utskiftbare – noe som forvirrer variantvelgeren på destinasjonssiden og, på noen kanaler, utløser en avvisning på grunn av manglende samsvar.
2. Avgjørelsen som avgjør alt
Før du skriver noen form for feedlogikk, svar på ett spørsmål for hver produkttype du selger:
Når en kunde velger et annet alternativ, lander de på en annen side – eller den samme siden i en annen tilstand?
Dette er den praktiske testen, og den viser direkte hvordan du bør strukturere feeden.
Tilfelle A – separate nettadresser per variant. Hver farge har sin egen produktside (/merino-genser-marineblå, /merino-genser-kull). Send hver variant som sin egen rad med sin egen lenke. Dette er det reneste oppsettet, gir best annonserelevans og er det kanalene foretrekker.
Tilfelle B – én URL, variant valgt på siden. Alt ligger på /merino-genser, og kunden velger farge og størrelse med en velger. Du kan fortsatt sende alle variantene, men du bør legge til en dyplenkeparameter slik at annonsen lander på riktig forhåndsvalgt tilstand:
https://example.com/merino-sweater?colour=navy&size=mUten denne parameteren kommer en kunde som klikker på en annonse for en marineblå medium til en standardtilstand som viser «charcoal small». Denne avvikelsen er en av de største årsakene til stille konverteringer i variantannonsering, og på Google kan den også utløse en avvisning av typen «Feil samsvarende verdi (sidegjennomsøking)» , fordi søkeroboten ser en side der den synlige fargen ikke samsvarer med den innsendte fargen.
Tilfelle C – varianter som ikke er verdt å dele opp. Noen varianter påvirker ikke kjøpsbeslutningen nok til å rettferdiggjøre separate annonser – for eksempel kabellengde på en lader. Her kan du bevisst sende én representativ variant. Del 7 dekker når dette er riktig valg.
Variantdefinerende vs. beskrivende attributter
Alle attributter i feeden din faller inn under én av to kategorier, og det å blande dem sammen er en hyppig årsak til feilformede grupper.
Variantdefinerende attributter må variere mellom medlemmene i gruppen. Dette er tingene kunden velger: farge, størrelse, materiale, mønster, pluss produktspesifikke dimensjoner som kapasitet eller finish.
Gruppekonstantattributter må være identiske på tvers av alle medlemmer: brand, gender, age_group, item_group_title, google_product_category. Hvis to rader deler en item_group_id, men har forskjellige gender-verdier, har du enten gruppert produktene feil eller merket dem feil.
Radspesifikke, men ikke variantdefinerende attributter varierer per rad uten å definere varianten: id, pris, tilgjengelighet, gtin, bildelenke, lenke. To varianter kan legitimt ha forskjellige priser – en størrelse 3XL koster ofte mer – uten at prisen er det som skiller dem.
3. varegruppe-ID: stiftelsen
item_group_id er den delte nøkkelen som forteller en kanal at «disse radene er det samme produktet». Alt annet ved varianthåndtering avhenger av at den er riktig.
Spesifikasjonen
| Eiendom | Meta | TikTok | |
|---|---|---|---|
| Feltnavn | varegruppe-ID | varegruppe-ID | varegruppe-ID |
| maks lengde | 50 tegn | 100 tegn | 150 tegn |
| Tillatte tegn | Unicode; ASCII anbefales – alfanumerisk, understrek, bindestreker | String | String |
| Tilfellefølsomhet | Uavhengig av store og små bokstaver (ABC123 = abc123) | Skift mellom store og små bokstaver | Skift mellom store og små bokstaver |
| Nødvendig? | Obligatorisk for gratis oppføringer og for Shopping-annonser i Brasil, Frankrike, Tyskland, Japan, Storbritannia og USA – når varianter sendes inn | Nødvendig for variantgruppering | Nødvendig for variantgruppering |
| Gjentatt felt | Nei – én verdi per vare | Nei | Nei |
Fordi Google ikke tar hensyn til store og små bokstaver, men ikke Meta og TikTok, standardiser bruk av små bokstaver (eller store bokstaver) overalt. En katalog der både SWTR-001 og swtr-001 vises, vil grupperes riktig på Google og deles inn i to produkter på Meta.
Valg av verdi
Den beste varegruppe-ID-en er den overordnede varenummeret du allerede har i ERP-en eller PIM-en din. Den finnes, er stabil og unik.
Good:
SWTR-MERINO-CREW
12345
parent-8891Dårlig, og hvorfor:
| Verdi | Problem |
|---|---|
| Merinoullgenser med rund hals | Mellomrom og store og små bokstaver; overskrider grensene når titler er lange; endres når markedsføringen gir produktet nytt navn |
| genser | Ikke unik – samler hele genserutvalget ditt i én gruppe |
| SWTR-MERINO-CREW-MALENY-M | Inkluderer variantdimensjonene, slik at hver rad får en unik verdi og ingenting grupperes |
| Et radnummer eller en hash regenereres ved hver eksport | Endringer mellom eksporter; kanaler mister gruppekontinuitet og lærer på nytt fra null |
Det siste fortjener vekt. item_group_id må være stabil over tid. Kanaler akkumulerer ytelseshistorikk mot gruppen. Hvis eksporten din genererer ID-er, tilbakestiller du denne historikken ved hver synkronisering, og ingen mengde budoptimalisering vil kompensere.
De tre reglene
- Alle medlemmer av en gruppe deler samme item_group_id.
- Hvert medlem har en unik ID. En duplikat-ID hvor som helst i feeden fører til at den senere raden slettes stille.
- Hvert medlem er forskjellig i minst ett variantdefinerende attributt. To rader med samme gruppe-ID og samme farge og størrelse er duplikater, ikke varianter.
En konvensjon som tilfredsstiller alle tre:
item_group_id: SWTR-MERINO-CREW
id: SWTR-MERINO-CREW-NAV-M
id: SWTR-MERINO-CREW-NAV-L
id: SWTR-MERINO-CREW-CHR-MLesbar, feilsøkbar, utledet fra data du allerede har.
varegruppetittel
Et nyere Google-attributt, valgfritt, men anbefalt når du sender inn item_group_id. Det inneholder navnet på det overordnede produktet – maks 150 tegn – og må være identisk på tvers av alle variantene i gruppen.
xml
<g:item_group_id>SWTR-MERINO-CREW</g:item_group_id>
<g:item_group_title>Merino Crew Neck Sweater</g:item_group_title>
<title>Merino Crew Neck Sweater — Navy, Medium</title>Legg merke til mønsteret: tittelen er variantspesifikk, mens item_group_title ikke er det. Å sende den samme strengen i begge sløser bort signalet.
variant_alternativ
Også nyere på Googles side: en strukturert måte å deklarere hvilke egenskaper som definerer variasjonen, i stedet for å la kanalen utlede den. Den godtar opptil 30 navn/verdi-par (hvert underattributt opptil 250 tegn, totalt 5,000 tegn).
xml
<g:variant_option>
<g:name>Colour</g:name>
<g:value>Navy</g:value>
</g:variant_option>
<g:variant_option>
<g:name>Size</g:name>
<g:value>M</g:value>
</g:variant_option>Dette er spesielt nyttig for produkter der variasjonsaksene ikke dekkes av standard klesattributter – lagringskapasitet, prosessornivå, effekt, antall seter. I stedet for å tvinge «256 GB» inn i størrelsen, deklarerer du den riktig.
4. Variantdefinerende attributter, i detalj
farge
Det mest regelbundne attributtet i spesifikasjonen, og det som oftest avvises.
| Eiendom | Verdi |
|---|---|
| Maksimal lengde (Google) | 100 tegn totalt, 40 per individuell farge |
| Maks lengde (Meta / TikTok) | 200 tegn |
| Flere farger | Skill med /, primærfargen først |
| Påkrevd | For klær i landene som er oppført ovenfor; for alle gratis oppføringer for klær og tilbehør |
Ikke akseptert:
- Tall — Farge 42, RAL 5013
- Heksadesimale koder — #001F5B
- Enkeltbokstaver — N for marineblå
- Referanser til et bilde – se bilde
- Alfanumeriske eller sammenføyd ord – Marineblå1, Marineblå (skriv Marineblå)
Håndtering av markedsføringsfargenavn. Motemerker kaller sjelden farger «marineblå». De kaller dem «Midnight Regatta». Kanalen trenger en farge en kunde ville søke etter; merkevaren din trenger sitt eget navn på siden.
Det gjennomførbare kompromisset:
color: Navy
description: ...available in Midnight Regatta (navy)...Tilpass markedsføringsnavn til standardnavn i feeden, og hold merkenavnet synlig på landingssiden og i beskrivelsen. Ikke bruk markedsføringsnavnet i farge og håp – det forringer samsvar for fargekvalifiserte søk, som er blant søkene med høyest intensjon innen klær.
Flerfargede produkter:
color: Navy/White/GreyPrimær først. Google leser den første verdien som den dominerende fargen.
størrelse
| Eiendom | Verdi |
|---|---|
| Maksimal lengde (Google) | 100 tegn |
| Maks lengde (Meta / TikTok) | 200 tegn |
| Påkrevd | For klær og sko i de oppførte landene; for gratis oppføringer |
| Produkter i én størrelse | en størrelse, OS eller OSFA |
Regelen som betyr noe: vær spesifikk nok til å være entydig og konsistent på tvers av katalogen. M er greit hvis alle produkter bruker M. En fôrblanding av M, Medium, Med og M/L for samme konsept fragmenterer variantgruppene dine og gjør størrelsesbasert segmentering umulig.
For produkter der én enkelt dimensjon ikke er tilstrekkelig, inkluder de identifiserende dimensjonene i verdien:
size: 32/34 (waist/inseam)
size: 15.5/34 (neck/sleeve)
size: 9.5 Wide (shoe width)
size: 200x140cm (rugs, bedding)størrelsestype og størrelsessystem
Valgfritt, kun klær og underbrukt – begge forbedrer matchingen betraktelig for kunder som søker med disse kvalifikatorene.
size_type — opptil 2 verdier fra: vanlig, petite, gravid, stor, høy, pluss.
size_system — ett av: US, UK, EU, DE, FR, JP, CN, IT, BR, MEX, AU. Hvis utelatt, antar kanalen mållandets system, som er kilden til en spesifikk og kostbar feil: en tyrkisk forhandler som selger til Tyskland med EU-størrelser, men ikke noe deklarert size_system, kan ha størrelser tolket mot feil skala.
xml
<g:size>10</g:size>
<g:size_system>UK</g:size_system>
<g:size_type>regular</g:size_type>materiale
Maks 200 tegn på Google. Primærmateriale først, deretter opptil to sekundærmaterialer atskilt med /.
material: Cotton
material: Leather/Suede
material: Merino Wool/Nylon/ElastaneKun obligatorisk hvis det skiller variantene dine fra hverandre – en veske solgt i skinn og lerret. Ellers valgfritt, men verdt å sende inn; materiale er en vanlig søkekvalifikator.
mønster
Maks 100 tegn. Fritekst som beskriver trykket eller grafikken: Stripete, Prikkete, Paisley, Blomstermønster, Fiskebensmønster. Samme regel – kreves hvis det er det som varierer.
aldersgruppe og kjønn
Begge er gruppekonstanter . Hver variant i en gruppe må ha samme verdi.
aldersgruppe: nyfødt, spedbarn, småbarn, barn, voksen – én verdi per produkt.
kjønn: mann, kvinne, unisex.
Hvis et plagg virkelig tilbys i herre- og damesnitt, er det to separate varegrupper , ikke én gruppe med blandede kjønn. Snittene er forskjellige, størrelsene er forskjellige, og kunden velger mellom produkter i stedet for mellom alternativer.
Referansetabell
| Egenskap | Google-grense | Må være annerledes | Må samsvare på tvers av gruppen |
|---|---|---|---|
| varegruppe-ID | 50 tegn | - | ✅ |
| varegruppetittel | 150 tegn | - | ✅ |
| id | 50 tegn | ✅ (alltid unik) | - |
| tittel | 150 tegn | anbefalt | - |
| farge | 100 tegn (40/farge) | Hvis variasjonsaksen | - |
| størrelse | 100 tegn | Hvis variasjonsaksen | - |
| størrelsestype | 2 XNUMX verdier | Valgfritt | - |
| størrelsessystem | enum | - | Vanligvis ✅ |
| materiale | 200 tegn | Hvis variasjonsaksen | - |
| mønster | 100 tegn | Hvis variasjonsaksen | - |
| kjønn | enum | - | ✅ |
| aldersgruppe | enum | - | ✅ |
| merke | 70 tegn | - | ✅ |
| google_product_category | - | - | ✅ |
| pris | - | Kan avvike | - |
| tilgjengelighet | enum | Kan avvike | - |
5. Eksempler på ekte fôr
XML (Google RSS 2.0)
To varianter av en gruppe med seks varianter. Legg merke til hva som endres og hva som ikke gjør det.
xml
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:g="http://base.google.com/ns/1.0">
<channel>
<title>Example Store — Product Feed</title>
<link>https://example.com</link>
<item>
<g:id>SWTR-MERINO-CREW-NAV-M</g:id>
<g:item_group_id>SWTR-MERINO-CREW</g:item_group_id>
<g:item_group_title>Merino Crew Neck Sweater</g:item_group_title>
<title>Merino Crew Neck Sweater — Navy, Medium</title>
<description>Fine-gauge 100% merino wool crew neck. Ribbed cuffs and hem, regular fit. Machine washable on wool cycle.</description>
<link>https://example.com/merino-crew-sweater?colour=navy&size=m</link>
<g:image_link>https://cdn.example.com/swtr-merino-navy-1.jpg</g:image_link>
<g:additional_image_link>https://cdn.example.com/swtr-merino-navy-2.jpg</g:additional_image_link>
<g:availability>in_stock</g:availability>
<g:price>89.00 EUR</g:price>
<g:brand>Example</g:brand>
<g:gtin>5012345678900</g:gtin>
<g:mpn>SW-MC-NAV-M</g:mpn>
<g:condition>new</g:condition>
<g:google_product_category>1604</g:google_product_category>
<g:color>Navy</g:color>
<g:size>M</g:size>
<g:size_system>EU</g:size_system>
<g:size_type>regular</g:size_type>
<g:material>Merino Wool</g:material>
<g:gender>male</g:gender>
<g:age_group>adult</g:age_group>
<g:custom_label_0>core</g:custom_label_0>
<g:custom_label_1>full-size-run</g:custom_label_1>
</item>
<item>
<g:id>SWTR-MERINO-CREW-CHR-L</g:id>
<g:item_group_id>SWTR-MERINO-CREW</g:item_group_id>
<g:item_group_title>Merino Crew Neck Sweater</g:item_group_title>
<title>Merino Crew Neck Sweater — Charcoal, Large</title>
<description>Fine-gauge 100% merino wool crew neck. Ribbed cuffs and hem, regular fit. Machine washable on wool cycle.</description>
<link>https://example.com/merino-crew-sweater?colour=charcoal&size=l</link>
<g:image_link>https://cdn.example.com/swtr-merino-charcoal-1.jpg</g:image_link>
<g:availability>out_of_stock</g:availability>
<g:price>89.00 EUR</g:price>
<g:brand>Example</g:brand>
<g:gtin>5012345678931</g:gtin>
<g:mpn>SW-MC-CHR-L</g:mpn>
<g:condition>new</g:condition>
<g:google_product_category>1604</g:google_product_category>
<g:color>Charcoal</g:color>
<g:size>L</g:size>
<g:size_system>EU</g:size_system>
<g:size_type>regular</g:size_type>
<g:material>Merino Wool</g:material>
<g:gender>male</g:gender>
<g:age_group>adult</g:age_group>
<g:custom_label_0>core</g:custom_label_0>
<g:custom_label_1>broken-size</g:custom_label_1>
</item>
</channel>
</rss>Fire ting som er verdt å påpeke:
- item_group_id og item_group_title er identiske; ID og tittel er ikke det.
- lenken inneholder parametere for dyplenker slik at annonsen lander på riktig forhåndsvalgt tilstand. &-tegnet escapes som & – som kreves i XML, og er en hyppig kilde til parsefeil.
- image_link er variantspesifikk. Begge radene i marineblå peker på marineblått fotografi. Å sende ett heltebilde for alle farger er den nest vanligste variantfeilen etter manglende gruppe-ID-er.
- Raden med utsolgt lager er merket med via custom_label_1, slik at den kan ekskluderes eller by ned uten å fjerne den fra feeden.
CSV / TSV
De samme dataene, flatet ut. Overskriftsrad pluss to varianter:
csv
id,item_group_id,item_group_title,title,description,link,image_link,availability,price,brand,gtin,condition,google_product_category,color,size,size_system,material,gender,age_group,custom_label_0
SWTR-MERINO-CREW-NAV-M,SWTR-MERINO-CREW,Merino Crew Neck Sweater,"Merino Crew Neck Sweater — Navy, Medium","Fine-gauge 100% merino wool crew neck.",https://example.com/merino-crew-sweater?colour=navy&size=m,https://cdn.example.com/swtr-merino-navy-1.jpg,in_stock,89.00 EUR,Example,5012345678900,new,1604,Navy,M,EU,Merino Wool,male,adult,core
SWTR-MERINO-CREW-CHR-L,SWTR-MERINO-CREW,Merino Crew Neck Sweater,"Merino Crew Neck Sweater — Charcoal, Large","Fine-gauge 100% merino wool crew neck.",https://example.com/merino-crew-sweater?colour=charcoal&size=l,https://cdn.example.com/swtr-merino-charcoal-1.jpg,out_of_stock,89.00 EUR,Example,5012345678931,new,1604,Charcoal,L,EU,Merino Wool,male,adult,coreDet er i CSV-formatet at de fleste databruddene skjer i den virkelige verden, fordi kommaer i titler og beskrivelser må være anført, og anførselstegn i anførte felt må være escapet. Hvis titlene dine inneholder kommaer – og produkttitler med farge og størrelse nesten alltid gjør det – bruk TSV i stedet. Tabulatorer vises så å si aldri i produktdata, og en hel klasse med parsefeil forsvinner.
JSON
For API-basert inntak:
JSON
{
"products": [
{
"id": "SWTR-MERINO-CREW-NAV-M",
"item_group_id": "SWTR-MERINO-CREW",
"item_group_title": "Merino Crew Neck Sweater",
"title": "Merino Crew Neck Sweater — Navy, Medium",
"link": "https://example.com/merino-crew-sweater?colour=navy&size=m",
"image_link": "https://cdn.example.com/swtr-merino-navy-1.jpg",
"availability": "in_stock",
"price": { "value": "89.00", "currency": "EUR" },
"brand": "Example",
"gtin": "5012345678900",
"condition": "new",
"google_product_category": "1604",
"variant_attributes": {
"color": "Navy",
"size": "M",
"size_system": "EU",
"material": "Merino Wool"
},
"gender": "male",
"age_group": "adult"
}
]
}En full størrelse løp
Seks varianter – to farger × tre størrelser – med ID-mønsteret synlig:
| id | varegruppe-ID | farge | størrelse | tilgjengelighet |
|---|---|---|---|---|
| SWTR-MC-NAV-S | SWTR-MERINO-CREW | Navy | S | på lager |
| SWTR-MC-NAV-M | SWTR-MERINO-CREW | Navy | M | på lager |
| SWTR-MC-NAV-L | SWTR-MERINO-CREW | Navy | L | på lager |
| SWTR-MC-CHR-S | SWTR-MERINO-CREW | Kull | S | utsolgt |
| SWTR-MC-CHR-M | SWTR-MERINO-CREW | Kull | M | på lager |
| SWTR-MC-CHR-L | SWTR-MERINO-CREW | Kull | L | utsolgt |
Kull har én størrelse igjen av tre. Del 9 dekker hva du kan gjøre med det.
6. Kanal for kanal
Konseptet er universelt. Implementeringen er det ikke. Her er hvordan hver større destinasjon forventer varianter, og hvor hver enkelt er forskjellig.
Google Shopping / Merchant Center
Den mest forskrivende, og referanseimplementeringen de fleste andre kanaler låner fra.
- varegruppe-ID er påkrevd for gratis oppføringer og for Shopping-annonser i Brasil, Frankrike, Tyskland, Japan, Storbritannia og USA, når varianter sendes inn.
- Variantdefinerende attributter må fylles ut: farge og størrelse er obligatorisk for klær i disse markedene.
- Kjønn og aldersgruppe er obligatorisk for klær og må være konsistente på tvers av gruppen.
- Landingssiden må tydelig samsvare med de innsendte variantverdiene, ellers risikerer du en Uoverensstemmelsesverdi (sidegjennomsøking) misbilligelse.
- Hver variant konkurrerer uavhengig i auksjonen. Google velger hvilket medlem av en gruppe som skal vises for et gitt søk, så en ufullstendig gruppe betyr en svakere kandidatgruppe.
- image_link må være minst 500 × 500 piksler for klær – et minimum håndheves fra 31 januar 2027, verdt å revidere nå heller enn i en hast.
Praktisk merknad: Merchant Center rapporterer på variantnivå (ID), ikke gruppenivå. For å evaluere et produkt riktig må du aggregere etter item_group_id selv – noe som er mye enklere hvis gruppe-ID-en er ren og stabil.
Meta (Facebook og Instagram)
Meta bruker samme feltnavn med forskjellige begrensninger og en vesentlig forskjellig visningsmodell.
- item_group_id tillater opptil 100 tegn og er store og små bokstaver.
- farge og størrelse tillater opptil 200 tegn.
- Bruk av tilgjengelighetsverdier mellomrom, ikke understrek: på lager, ikke på_lager. Denne ene forskjellen ødelegger flere meta-feeder enn noen annen, spesielt når en Google-feed brukes direkte på nytt.
- I butikker og på produktdetaljoverflater gjengis et korrekt gruppert sett som ett produkt med en variantvelger, snarere enn flere nesten identiske oppføringer.
- Advantage+ katalogannonser bruker gruppen for å unngå å vise en bruker seks versjoner av den samme genseren i én karusell – en ugruppert katalog produserer synlig repeterende annonser og bortkastede visninger.
- Variantnivårapportering i Commerce Manager avhenger av riktig gruppering.
Praktisk merknad: Ikke pek Meta mot Google-feeden din uten endringer. Som et minimum, sjekk tilgjengeligheten av transformasjoner og tegngrensene. De fleste feedplattformer – inkludert Feedance – håndterer dette som en transformasjon på kanalnivå, slik at kildedataene forblir urørt.
TikTok
- item_group_id tillater opptil 150 tegn.
- sku_id er den unike identifikatoren per variant – hver variantrad trenger en distinkt verdi.
- farge og størrelse tillater opptil 200 tegn.
- Tittelen tillater opptil 255 tegn; beskrivelsen opptil 10 000; google_product_category forventes.
- TikTok er den strengeste kanalen når det gjelder variantspesifikke bilderProduktkort viser en variantvelger, og varianter som deler et enkelt generisk bilde, presterer målbart dårligere. Hvis du kutter ut én hjørne i bildeprosessen din, ikke klipp den her.
- Følger Googles modell nøye; item_group_id grupperer varianter.
- Pinterest viser varianter i én produkt-Pin med valgbare alternativer.
- Bildekvalitet og vertikale sideforhold spiller uforholdsmessig stor rolle – Pinterest er en overflate for visuell oppdagelse, og variantbilder som ikke er distinkte blir rett og slett ikke lagret.
Amazon
Amazon bruker ikke item_group_id, og å anta noe annet fører til mye bortkastet arbeid.
Amazon bruker en eksplisitt foreldre/barn-relasjonsmodell :
- A overordnet ASIN er opprettet som en ikke-kjøpbar annonse.
- hver enkelt barn-ASIN refererer til den overordnede via feltene parent_sku / parent_child.
- A variasjonstema må deklareres — SizeColor, Size, Color, SizeName-ColorName og så videre, varierende etter kategori.
- Temaet må være gyldig for den spesifikke kategorien; det samme temanavnet er ikke tilgjengelig overalt.
Hvis du eksporterer til både Google og Amazon fra én kilde, bør du behandle dette som en ekte transformasjon, ikke et feltnavn. Feedlaget ditt må konstruere den overordnede oppføringen, tilordne temaet og tilordne underlag til det.
Regionale markedsplasser og sammenligningsmotorer
Tyrkiske og bredere MENA-kanaler har hver sine egne konvensjoner, og de er ofte forskjellen mellom en fungerende og en defekt katalog i disse markedene.
- Trendyol bruker sin egen foreldre-/barnmodell med et obligatorisk kategorispesifikt attributtsett. Farge og størrelse er separate strukturerte felt, og obligatoriske attributtlister varierer etter kategori.
- Akakçe og gnier er prissammenligningsmotorer. De forventer vanligvis én rad per kjøpbar SKU, og nesten identiske dupliserte rader blir ofte filtrert – så det å sende en full størrelseskjøring uten differensierte data kan redusere snarere enn å øke synligheten.
- Hepsiburada og N11 hver definerer sine egne variantgrupperingsnøkler og obligatoriske attributter.
Dette er området der generiske globale feedverktøy oftest kommer til kort, og der et feiltilordnet attributt i det stille fjerner en hel kategori fra en markedsplass.
Sammenligning
| Meta | TikTok | Amazon | |||
|---|---|---|---|---|---|
| Grupperingsnøkkel | varegruppe-ID | varegruppe-ID | varegruppe-ID | varegruppe-ID | Overordnet ASIN |
| maks lengde | 50 | 100 | 150 | 50 | n / a |
| Saksfølsom | Nei | Ja | Ja | Nei | n / a |
| Tilgjengelighetssyntaks | på lager | på lager | på lager | på lager | Antall |
| Variantbilder | anbefalt | anbefalt | Kritisk | Kritisk | Påkrevd |
| Eksplisitt tema nødvendig | Nei | Nei | Nei | Nei | Ja |
| Rapportering på variantnivå | Ja | Ja | Ja | Begrenset | Ja |
7. Splitte eller kollapse?
Standardanbefalingen er å sende alle varianter, men det er ikke universelt korrekt. Det virkelige spørsmålet er om varianten endrer hva kunden ønsker.
Send alle varianter når…
- Variasjonen er kjøpsbeslutningen. Klær, sko, alt der feil størrelse ikke er et salg.
- Lagerbeholdningen varierer betydelig etter variant. Å reklamere for et produkt der det eneste gjenværende alternativet er en størrelse 3XL er sløsing med penger.
- Prisen varierer etter variant. Å vise €89 når det valgte alternativet koster €119 gir en prisforskjell og en sint kunde.
- Søkeetterspørselen er variantkvalifisert. Folk søker etter «marineblå merinogenser medium». Du kan ikke rangere for det uten å sende det inn.
Skjul til én representativ variant når…
- Katalogen er svært stor og stort sett homogen. En jernvareforhandler med 200 000 SKU-er hvor 60 % er trivielle lengdevariasjoner, får lite ut av full ekspansjon og betaler for det i feedbehandling og kampanjekompleksitet.
- Kanalen straffer nesten duplikater. Flere sammenligningsmotorer filtrerer repeterende rader; en kjøring i full størrelse kan redusere synligheten.
- Variasjon påvirker ikke pris, bilde eller tilgjengelighet. Hvis alle tolv variantene er identiske på alle kommersielt relevante måter, skaper tolv rader støy snarere enn signal.
Når du skjuler, velg representanten med vilje: den bestselgende varianten på lager , ikke den første raden alfabetisk. Det er nettopp her ytelsesdata fortjener sin plass i feeden – GA4- eller plattformdata kan velge representanten automatisk i stedet for å la den sorteres.
En mellomvei
Splitt på aksen som driver beslutningen; kollaps på den som ikke gjør det.
For sko betyr det vanligvis én rad per farge, med størrelsene skjult – farge er oppdagelsesaksen, størrelse er passformsjekken som skjer på siden. For et produkt der kapasitet styrer pris, del på kapasitet og skjult på farge.
8. De 12 vanligste variantfeilene
| # | Symptom | Årsak | Fix |
|---|---|---|---|
| 1 | Varianter vises som separate, urelaterte produkter | item_group_id mangler eller er unik per rad | Fyll ut med den overordnede SKU-en; bekreft at den gjentas på tvers av gruppen |
| 2 | Noen varianter mangler helt fra kanalen | Dupliserte ID-verdier – senere rader fjernes stille | Håndhev unikhet ved eksport; legg til en duplikatkontroll |
| 3 | Avvisning av «Feil samsvarende verdi (sidegjennomsøking)» | Landingssiden viser en annen farge/størrelse/pris enn den som er sendt inn | Legg til parametere for dyplenker; sørg for at siden gjengir den valgte tilstanden på serversiden |
| 4 | Alle varianter viser det samme bildet | Enkelthelbildelenke gjenbrukt | Kartvariantspesifikke bilder; bruk hovedbildet bare når det ikke finnes noe variantbilde |
| 5 | Annonseklikk lander på utsolgte alternativer | tilgjengelighet ikke synkronisert per variant | Øk oppdateringsfrekvensen; ekskluder out_of_stock fra aktive kampanjer |
| 6 | farge avvist | Heksadesimal kode, tall, enkeltbokstav eller sammenkoblet ord | Tilordne til navn i ensfargede farger; separer multipler med / |
| 7 | Størrelsesfiltre fungerer ikke; størrelsessøk samsvarer ikke | Inkonsekvente størrelsesverdier på tvers av katalogen (M / Medium / med) | Normaliser med en kartleggingstabell brukt på feednivå |
| 8 | Gruppedeling på Meta, men ikke på Google | Saksinkonsekvens i varegruppe-ID | Tving frem en enkelt sak for hele feltet |
| 9 | Meta avviser hele feeden | in_stock brukes der Meta forventer på lager | Transformer tilgjengelighet per kanal |
| 10 | Gruppen ble avvist på grunn av inkonsistente attributter | kjønn eller aldersgruppe er forskjellig innenfor gruppen | Disse er gruppekonstante; separate menns og kvinners inndelinger i distinkte grupper |
| 11 | Ytelsesloggen tilbakestiller hver synkronisering | item_group_id regenerert per eksport | Utlede fra et stabilt kildefelt, aldri fra radrekkefølge eller en hash |
| 12 | XML-feeden klarer ikke å analysere | Uescapede og i dyplenke-URL-er | Escape som &; validerer XML før publisering |
Feil 1, 2, 4 og 11 står for det store flertallet av det vi ser i reelle revisjoner. Ingen av dem er vanskelige; alle er usynlige inntil noen ser etter dem.
9. Brutte størrelser og lagertilstand
En «bruddstørrelse» er et produkt hvis gruppe teknisk sett er levende, men praktisk talt uselgelig – en genser som kun er tilgjengelig i XS og 3XL, en sko med to størrelser igjen av ni.
Dette er viktigere enn det ser ut til. Når en kunde klikker på en annonse for et produkt og finner ut at størrelsen deres ikke er tilgjengelig, har du betalt for et klikk som ikke kunne konverteres, og du har brukt merkevaregoodwill på å gjøre det. I stor skala kan produkter i ødelagt størrelse forbruke en betydelig del av budsjettet, samtidig som de nesten ikke bidrar til inntektene.
Oppdager det
Beregn, per varegruppe-ID:
size_availability_ratio = in_stock_variants / total_variantsHandle deretter ut fra terskler. Et brukbart utgangspunkt:
| Forholdet | Tolkning | Handling |
|---|---|---|
| > 0.7 | Sunn | Annonser normalt |
| 0.4 - 0.7 | tynning | Reduser bud; følg med |
| 0.2 - 0.4 | Brutt | Ekskluder fra prospektering; kun retargeting |
| <0.2 | Praktisk utsolgt | Ekskluder fullstendig |
Vek dette etter behov , ikke bare telling. Å miste XXS og XXL betyr mye mindre enn å miste M og L, som vanligvis utgjør hoveddelen av volumet. Et forholdstall som behandler alle størrelser likt vil underreagere på tapet av kjernestørrelser.
Handler ut fra det
Den reneste implementeringen tagger tilstanden i feeden i stedet for å fjerne produktet:
xml
<g:custom_label_1>broken-size</g:custom_label_1>Tagging i stedet for sletting bevarer produktets historikk i kanalen og lar deg reaktivere det umiddelbart når varene kommer tilbake på lager. Fjerning og tilføying av varer tilbakestiller læringen.
To ytterligere forbedringer som er verdt å bygge på:
- Gi tilbakemelding til varehandelen. En gjentakende liste med ødelagt størrelse er et kjøpssignal, ikke bare et reklameproblem.
- Sjekk på nytt ved hver synkronisering. Lagerbeholdningen flyttes; taggen må flyttes med den. En statisk liste med ødelagt størrelse er verre enn ingen, fordi den undertrykker produkter som siden har blitt etterfylt.
10. Bruk av varianter for kampanjesegmentering
Når variantene er strukturert riktig, blir dataene et segmenteringslag – uten tvil den mest effektive måten å bruke en ren variantfeed på.
Google tilbyr fem custom_label-felt (0–4). De godtar vilkårlige verdier og eksisterer utelukkende for din egen kampanjelogikk. Variantdata er ideell input.
En gjennomførbar ordning
| Etiketten | Dimensjon | Eksempelverdier |
|---|---|---|
| tilpasset_etikett_0 | Marginnivå | høymargin, standard, klaring |
| tilpasset_etikett_1 | Aksjehelse | full størrelse løp, tynning, ødelagt størrelse |
| tilpasset_etikett_2 | Ytelsesnivå | bestselger, stødig, lang hale |
| tilpasset_etikett_3 | sesong~~POS=TRUNC | ss26, aw25, kjerne, overføring |
| tilpasset_etikett_4 | Prisbånd | under 50, 50–100, 100–200, over 200 |
Med disse på plass blir kampanjelogikken enkel:
- Bud opp bestselger + full størrelse + høy margin
- Ekskluder ødelagt størrelse fra prospektering
- Gi klarering en egen kampanje med en aggressiv mål-ROAS
- Isoler ss26 når sesongen starter
Ytelse Maks og Fordel+
Begge er i stor grad automatiserte, noe som gjør segmentering på feednivå viktigere snarere enn mindre. Du kontrollerer ikke lenger budgivning på søkeordnivå, så feeden blir din viktigste styringsmekanisme for forbruk.
I Performance Max styrer tilpassede etiketter strukturen for aktivagrupper og noteringsgrupper . Å dele en enkelt samleaktivagruppe inn i marginbaserte eller aksjebaserte grupper er en av de få gjenværende strukturelle grepene, og det avhenger helt av at etiketter fylles ut fra reelle data.
I Advantage+-katalogannonser hindrer riktig gruppering at karusellen fylles med seks nyanser av samme genser – og produktsettdefinisjoner som er bygget på variantattributter lar deg skille prospektering fra retargeting-beholdning.
Berik etiketter med ytelsesdata
Statiske etiketter forfaller. Bestselgeren som ble tildelt forrige sesong er feilinformasjon denne sesongen.
Den sterkere implementeringen beregner etiketter på nytt fra live ytelsesdata – GA4-inntekter, konverteringsfrekvens, antall visninger – ved hver feedsynkronisering. Et produkt som slutter å selge, forsvinner automatisk fra bestselgerlisten; et som begynner å selge, blir en del av den. Dette er en sentral del av hva feedberikelse betyr i praksis, og det er forskjellen mellom etiketter som styrer budsjettet og etiketter som bare beskriver forrige kvartal.
11. Måling av variantytelse
Det er data på variantnivå der mesteparten av rapporteringen stille faller fra hverandre.
Aggregeringsproblemet. Merchant Center og Ads-rapporter på ID-nivå. En genser i 20 varianter vises som 20 rader, hver med en brøkdel av volumet, ingen individuelt signifikante. Enhver konklusjon trukket fra en enkelt variantrad er sannsynligvis støy.
Analyser alltid på to nivåer:
- Gruppenivå (varegruppe-id) – gjør dette produkt arbeid? Samlet utgift, konverteringer og inntekter på tvers av alle medlemmer.
- Variantnivå (id) — som alternativer fungerer? Hvilke farger selger, hvilke størrelser blir utsolgt først, hvilke kombinasjoner endrer seg aldri.
Det andre er der de interessante funnene ligger. Det svarer på spørsmål som varehandelen bryr seg om: Selger marineblå tre ganger mer enn kullfarget? Konverterer størrelse L-varianter bedre fordi de alltid er på lager? Drar én farge ned gjennomsnittet for gruppen?
Målinger verdt å spore per gruppe:
| Metric | Hvorfor |
|---|---|
| Størrelsestilgjengelighetsforhold | Ledende indikator på bortkastede forbruk |
| Variantdekning i kanalen | Innsendt kontra faktisk godkjent – det er gapet som skjuler problemene |
| Visningsandel etter variant | Avslører hvilke alternativer kanalen faktisk favoriserer |
| Konverteringsfrekvens etter farge | Merchandising og kjøpssignal |
| Avvisningsrate etter gruppe | Fanger opp systemiske attributtfeil tidlig |
En merknad om attribusjon. En kunde ser ofte en annonse for én variant og kjøper en annen – klikker på den marineblå og kjøper den kullfargede. ROAS på variantnivå tatt bokstavelig vil derfor feilattribuere. Bedøm produkter på gruppenivå; bruk variantdata til å forstå atferd, ikke til å ta budgivningsbeslutninger på tynne prøver.
12. Sjekkliste før lansering
Kjør dette før du legger en variantfeed ut, og etter eventuelle strukturelle endringer.
Structure
- Hver variant har en unik ID
- Hvert medlem av en gruppe deler en identisk item_group_id
- item_group_id er avledet fra et stabilt kildefelt og endres ikke mellom eksporter
- item_group_id bruker konsistent store og små bokstaver i hele feeden
- Hvert medlem er forskjellig i minst ett variantdefinerende attributt
- item_group_title er til stede og identisk på tvers av gruppen
attributter
- farge bruker vanlige fargenavn – ingen heksadesimale, tall eller enkeltbokstaver
- Flere farger er atskilt med /, primærfargen først
- Størrelsesverdiene er normalisert på tvers av hele katalogen
- size_system er deklarert der du selger på tvers av størrelsesregioner
- kjønn og aldersgruppe er identiske innenfor hver gruppe
- materiale og mønster er utfylt der de definerer variasjonen
Lenker og bilder
- Hver variants lenke løses opp til riktig forhåndsvalgt tilstand
- & escapes som & i XML
- image_link er variantspesifikk, ikke et delt hovedbilde
- Bildene oppfyller minimumsmålene for hver kanal
Kanaltransformasjoner
- tilgjengelighetssyntaks justert per kanal (på lager vs. på lager)
- Tegngrenser overholdes per kanal
- Amazon-eksport bygger overordnede oppføringer og deklarerer et gyldig varianttema
- Regionale markedsplassattributtsett kartlagt per kategori
Drift
- Oppdateringsfrekvensen samsvarer med hvor raskt aksjen faktisk beveger seg
- Deteksjon av ødelagt størrelse kjører ved hver synkronisering
- Duplikat-ID-sjekk kjøres før eksport
- Feeden validerer som korrekt utformet XML/CSV før publisering
- Varsling er konfigurert for plutselige fall i produktantall
13. FAQ
Må jeg sende inn hver eneste variant? Ikke alltid, men vanligvis ja for klær og sko, der størrelse og farge er kjøpsbeslutningen. For veldig store homogene kataloger, eller kanaler som filtrerer nesten duplikater, kan det gi bedre resultater å sende inn én velvalgt representativ variant per gruppe. Velg representanten etter salgsytelse og lagerbeholdning, ikke alfabetisk.
Hva skjer hvis jeg utelater item_group_id? Hver variant behandles som et urelatert produkt. Du mister variantvelgeren på destinasjonssiden, annonsene blir repeterende, rapporteringen på variantnivå brytes, og på Google kan du mislykkes i et krav – item_group_id er obligatorisk for gratis oppføringer og for Shopping-annonser i flere store markeder når varianter sendes inn.
Kan varianter ha forskjellige priser? Ja. Pris er ikke et variantdefinerende attributt, men det kan legitimt variere per variant – større størrelser koster ofte mer. Den innsendte prisen må samsvare med det landingssiden viser for den spesifikke varianten.
Bør varianter som ikke er på lager, forbli i feeden? Vanligvis ja. Behold dem med tilgjengelighet: out_of_stock i stedet for å slette dem. Fjerning og tilføying på nytt tilbakestiller varens historikk i kanalen. Ekskluder dem fra aktive kampanjer ved å bruke en regel eller en tilpasset etikett i stedet.
Kan ett produkt tilhøre to grupper? Nei. item_group_id godtar én verdi per vare. Hvis et produkt faktisk tilhører to konseptuelle grupper, har du et taksonomiproblem for merchandising som må løses oppstrøms.
Trenger jeg separate item_group_id-verdier per kanal? Nei – og det bør du ikke. Bruk den samme logiske grupperingen overalt. Det som er forskjellig per kanal er transformasjonen som brukes på den: tegnbegrensninger, store og små bokstaver, syntaks. Behold én sannhetskilde og tilpass ved eksport.
Hvordan håndterer jeg produkter som virkelig er i én størrelse? Send inn størrelse som én størrelse, OS eller OSFA. Ikke la det stå tomt for klær i markeder der størrelse er påkrevd.
Herre- og dameversjoner av samme design – én gruppe eller to? To. Kjønn må være identisk på tvers av en gruppe. Ulike snitt og forskjellige størrelser gjør dem til forskjellige produkter fra kundens perspektiv.
Hva går oftest galt i praksis? I våre revisjoner: delte hovedbilder på tvers av fargevarianter, regenererte item_group_id-verdier på hver eksport, og tilgjengelighetssyntaks som overføres uendret fra en Google-feed til Meta. Alle tre er usynlige i grensesnittet og dukker bare opp som uforklarlig underytelse.
Hvor dette etterlater deg
Variantfeeder belønner presisjon på en måte som mesteparten av digital markedsføring ikke gjør. Det er ingen kreativ vurdering i item_group_id – enten er den stabil og delt, eller så er den det ikke. Fargeverdier følger enten spesifikasjonen, eller så blir de avvist. Bildene samsvarer enten med varianten, eller så var klikket bortkastet.
Det er den gode nyheten: dette er et løsbart problem med et definitivt svar. Arbeidet ligger i å vedlikeholde det – fordi kataloger endres daglig, varelageret flyttes hver time, og hver kanal justerer spesifikasjonene sine etter sin egen tidsplan.
Bedriftene som får dette til, behandler variantfeeden som infrastruktur snarere enn en fil. De utleder gruppe-ID-er fra stabile kildedata, normaliserer attributter når de er ved kilden, transformerer per kanal ved eksport, beregner lagertilstanden på nytt ved hver synkronisering og varsler når noe beveger seg uventet.
Det er nettopp det laget Feedance er bygget for – feedregler for normalisering av attributter ved kilden, deteksjon av ødelagt størrelse som beregner på nytt ved hver synkronisering, GA4-berikelse for å holde ytelsesetiketter oppdaterte og kanaleksporter som bruker riktig transformasjon for hver av over 200 destinasjoner uten å berøre kildedataene dine.
Hvis du vil vite hvor din egen variantstruktur står før du endrer noe, kan vårt gratis feedrevisjonsverktøy vurdere en eksisterende feed på fullstendighet, datakvalitet og teknisk tilstand – inkludert variantgruppering – helt kostnadsfritt.