Je hebt sale_price aan de feed toegevoegd, het product is goedgekeurd, en toch ziet de shopper nog steeds één gewone prijs, zonder doorhaling en zonder sale-badge. Google's eigen documentatie legt uit waarom dit vaker gebeurt dan feedteams verwachten: voor een actieprijsannotatie is een korting nodig van meer dan 5% en minder dan 90%, een basisprijs die lang genoeg is gehanteerd (in de meeste Shopping-advertentielanden 30 dagen binnen de afgelopen 200) en een landingspagina die beide prijzen toont. Voldoe je niet aan één van die voorwaarden, dan blijft het product live zonder de annotatie. Deze gids is bedoeld voor feedmanagers en paid-mediateams die acties draaien in Google Shopping. Aan het eind kun je acht checks in volgorde doorlopen, vaststellen welke faalt en dat oplossen in de feed in plaats van in de winkel.
Wat "niet zichtbaar" eigenlijk betekent
Er zijn drie verschillende problemen die gemeld worden als "de actieprijs wordt niet getoond", en ze vragen om verschillende oplossingen.
- Het product is afgekeurd. Merchant Center stuurt je een melding. De actieprijs voldeed niet aan een gegevensvereiste, bijvoorbeeld omdat hij niet lager was dan
priceof niet overeenkwam met de landingspagina. - Het product is goedgekeurd, maar de shopper ziet de actieprijs zonder doorhaling of badge. De gegevens zijn geldig, maar er wordt niet voldaan aan de geschiktheidsregels voor de annotatie.
- Het product toont de oude prijs. De actie is nooit bij Google aangekomen, is verlopen of is nooit correct ingepland.
Google stelt duidelijk dat actieprijsannotaties niet altijd gegarandeerd worden getoond, ook als je in aanmerking komt. Het doel van deze gids is dan ook om elke oorzaak weg te nemen die je zelf in de hand hebt, en eerlijk te zijn over de onzekerheid die overblijft.
De diagnose in acht checks
Doorloop deze in volgorde. De eerste vier zijn gegevenschecks die je alleen vanuit de feed kunt uitvoeren. Voor de laatste vier heb je prijshistorie, de landingspagina of accountinstellingen nodig.
| # | Check | Voorwaarde om te slagen | Bron |
|---|---|---|---|
| 1 | Actieprijs is lager dan price | sale_price < price, en price bevat de volledige reguliere prijs | Google: sale_price |
| 2 | Korting valt binnen het bereik | Meer dan 5% en minder dan 90% | Google: actieprijsannotaties |
| 3 | Datums zijn geldig en liggen in de toekomst of lopen nu | ISO 8601-bereik, start vóór einde, echte kalenderdatums | Google: sale_price_effective_date |
| 4 | Actie-attributen worden samen verstuurd | Zowel sale_price als sale_price_effective_date in inventory-updatefeeds | Google: beide actie-attributen indienen |
| 5 | Prijshistorie van de basisprijs is lang genoeg | Afhankelijk van land en weergavelocatie, zie de tabel hieronder | Google: actieprijsannotaties |
| 6 | Landingspagina toont beide prijzen | Originele prijs en actieprijs zichtbaar, in overeenstemming met de feed en de checkout | Google: actieprijsannotaties |
| 7 | De korting is geen promotie of loyaliteitsprijs | Promotiecodes, lidmaatschaps- en loyaliteitsprijzen staan niet in sale_price | Google: sale_price |
| 8 | Google heeft de feed opnieuw ingelezen | Ophalen of API-update heeft na de wijziging plaatsgevonden | De feedstatus in je Merchant Center |
Check 1: price en sale_price staan de juiste kant op
De regel van Google is eenvoudig: sale_price moet lager zijn dan price, en dat verschil moet zichtbaar zijn in je productgegevens. Een typische fout is een winkelplatform dat het al verlaagde bedrag in price exporteert en sale_price leeg of identiek laat. Google vraagt handelaren om de volledige prijs zonder korting in price aan te leveren, en de actieprijs alleen in price te zetten als je sale_price helemaal niet gebruikt.
Een correct paar ziet er zo uit:
price: 1000.00 TRYsale_price: 799.00 TRY
Rond in de feed af op twee decimalen, omdat Google extra cijfers zelf afrondt en het resultaat dan kan afwijken van de pagina.
Check 2: het kortingspercentage
Bereken het percentage voor elke actieregel voordat je publiceert: (price - sale_price) / price. Google eist dat het groter is dan 5% en kleiner dan 90%. In het voorbeeld hierboven is het 20,1%, dat slaagt dus. Een korting van 3% krijgt nooit een annotatie, en een regel met 92% ook niet; dat laatste is meestal sowieso een gegevensfout.
Check 3: het formaat van sale_price_effective_date
Het attribuut is een datumbereik in ISO 8601 met een start en een einde, gescheiden door een schuine streep. Het door Google gedocumenteerde patroon is YYYY-MM-DDThh:mm[±hhmm] of YYYY-MM-DDThh:mmZ, met een limiet van 51 tekens. Een Black Friday-periode voor een winkel in Istanbul ziet er zo uit:
sale_price_effective_date: 2026-11-20T00:00+0300/2026-11-30T23:59+0300
Twee standaardwaarden zijn belangrijk. Laat je de tijd weg, dan begint de actie om middernacht op de startdatum en eindigt hij om 23:59 uur op de einddatum. Laat je de tijdzone weg, dan gebruikt Google UTC. Een Turkse winkel die 2026-11-20T00:00 zonder offset schrijft, laat de actie voor shoppers in Turkije drie uur te laat beginnen, en een MENA-winkel in Dubai (UTC+4) verliest vier uur. Schrijf de offset dus altijd op.
Valideer de datums ook: op Google's eigen helppagina staat een voorbeeld met 29 februari in een jaar dat geen schrikkeljaar is, dus test voorbeelden voordat je ze overneemt.
Check 4: stuur beide actie-attributen mee
Voor online inventory-updatefeeds zegt Google dat sale_price en sale_price_effective_date samen of helemaal niet moeten worden aangeleverd, en dat het item niet is geüpload als je alleen de prijs verstuurt. Voor gewone productgegevensfeeds is de datum optioneel, maar wij sturen hem mee bij elke geplande actie zodat het einde expliciet is.
Check 5: prijshistorie van de basisprijs
Deze check wordt makkelijk gemist, en door deze check kan een geldige actieregel toch zonder annotatie blijven. Google eist dat de basisprijs gedurende een minimale tijd is gehanteerd. De onderstaande cijfers staan op het moment van schrijven op de pagina van Google.
| Weergavelocatie en land | Basisprijs moet geldig zijn geweest |
|---|---|
| Shopping-advertenties, VS | 5 dagen binnen de afgelopen 30, of 15 dagen binnen de afgelopen 200, afhankelijk van wat het eerst wordt gehaald |
| Shopping-advertenties, VK, Duitsland, Frankrijk, Italië, Spanje, Nederland, Brazilië, India, Japan, Korea, Australië, Canada | 30 dagen binnen de afgelopen 200 |
| Gratis vermeldingen, Brazilië, Frankrijk, Duitsland, India, Italië, Korea, Nederland, Spanje, VK | 30 dagen binnen de afgelopen 200 |
| Gratis vermeldingen, VS, Canada, Australië, Japan | Geen vereiste vermeld |
| Advertenties voor lokale voorraad (local inventory ads) | 60 dagen binnen de afgelopen 200, of 60 opeenvolgende dagen voor producten die minder dan 200 dagen actief zijn |
Turkije komt in deze lijsten niet voor. Uit de pagina kunnen we niet opmaken wat voor een Turks account geldt, dus controleer de status van je eigen producten in Merchant Center in plaats van aan te nemen dat de 30 dagen wel of niet gelden.
Het praktische gevolg zit in de volgorde van plannen. Een nieuw product dat op 1 november voor 1.000 TRY is gelanceerd, kan op 10 november in een 30-in-200-land geen actieannotatie krijgen. Een product waarvan de prijs een week vlak voor een campagne is verhoogd, kan dezelfde test niet halen, omdat de basisprijs niet lang genoeg is gehanteerd. Als je actiekalender afhankelijk is van annotaties, bescherm dan de basisprijs in de weken ervoor.
Check 6: de landingspagina
Google eist dat de originele prijs en de actieprijs op de landingspagina worden getoond, en dat de waarde van sale_price overeenkomt met de prijs op de pagina en in de checkout. Als de productpagina alleen het verlaagde bedrag toont en de doorhaling later wordt toegevoegd door een script dat niet wordt uitgevoerd voor Googlebot, komen feed en pagina niet overeen. Controleer in de gerenderde HTML of beide prijzen aanwezig zijn. Onze eerdere gids over voorkomen dat Google de prijsgegevens in je feed overschrijft behandelt wat er gebeurt als pagina en feed uit elkaar lopen.
Check 7: wat niet in sale_price thuishoort
Google sluit drie zaken uit. Kortingen via promotiecodes horen thuis in de kortingsinstellingen van de winkel, niet in sale_price. Loyaliteits- en lidmaatschapsprijzen horen in loyalty_program. En actieprijzen die als Merchant Center-promoties zijn ingediend, tellen niet als actieprijzen voor annotaties. Is je campagne "extra 10% in de winkelmand", dan is dat een promotie en blijft de feedprijs ongewijzigd.
Check 8: heeft Google de wijziging ingelezen?
Een geplande fetch kan een vertraging veroorzaken. Op de eigen integratiepagina voor Google Merchant Center van Feedance staat dat Merchant Center een gehoste feed elk uur, dagelijks, wekelijks of maandelijks opnieuw kan inlezen, en dat catalogi met snelle prijswijzigingen mogelijk beter API-pushes kunnen gebruiken. Open na elke actiewijziging het product in Merchant Center, controleer of de getoonde prijs de nieuwe is, en beoordeel pas daarna of de annotatie ontbreekt.
Een uitgewerkt voorbeeld met prijshistorie
Dit is een hypothetische regel, geen klantdata. Een jas staat voor 1.000,00 TRY in de feed. Op 10 november gaat de prijs een week lang naar 800,00 TRY, op 17 november gaat hij terug naar 1.000,00 TRY, en op 27 november wordt hij voor Black Friday aangeboden voor 700,00 TRY.
price: 1000.00 TRYsale_price: 700.00 TRYsale_price_effective_date: 2026-11-27T00:00+0300/2026-11-30T23:59+0300
De feed slaagt voor check 1 tot en met 4: de korting is 30%, de datums zijn geldig en de offset is aanwezig. Voor de basisprijstest van Google is het product gedurende het grootste deel van de terugblikperiode tegen 1.000 TRY verkocht, dus check 5 slaagt waarschijnlijk in een 30-in-200-land. De Turkse regel is een andere test, en die vangt deze regel op. Sinds de wijziging die op 18 februari 2022 in het Resmi Gazete is gepubliceerd (nummer 31754) en op 1 maart 2022 in werking is getreden, is de prijs vóór korting bij een afgeprijsde verkoop de laagste prijs die in de 30 dagen vóór de korting is gehanteerd, volgens de samenvatting van de wijziging door KPMG. Hier is de laagste prijs in de voorgaande 30 dagen 800 TRY, dus de eerlijke korting ten opzichte van die referentie is 12,5% en niet 30%. De bewijslast voor de feiten over de korting ligt bij de verkoper. Een feed die op de landingspagina 1.000 TRY doorstreept terwijl de week met 800 TRY in de prijshistorie staat, is een regelgevingsprobleem, ook als Google de annotatie wel toont.
Voor elke markt geldt dat een dagelijks overzicht van de prijs die je daadwerkelijk per SKU hebt gehanteerd bij beide tests helpt.
Preflightchecklist voor een actiefeed
- Exporteer
price,sale_priceensale_price_effective_datevoor elke SKU in de actie. - Bereken het kortingspercentage en markeer alles op of onder 5%, of op of boven 90%.
- Markeer regels zonder tijdzone-offset.
- Koppel aan je prijshistorie en markeer SKU's waarvan de basisprijs de afgelopen 30 dagen is gewijzigd.
- Render tien voorbeeldproductpagina's en controleer dat beide prijzen zichtbaar zijn zonder interactie van de gebruiker.
- Controleer dat er geen promotiecode- of loyaliteitsprijs in
sale_priceis geschreven.
Meten of de annotatie heeft geholpen
Ga er niet van uit dat een doorhaling de resultaten verbetert. Vergelijk overeenkomende productgroepen over dezelfde datums, volgens de aanpak in onze gids over het meten van de ROAS-impact van een feedwijziging. Als de opmaak van TRY, AED of SAR niet consistent is, los dat dan eerst op; zie onze gids over btw-, valuta- en decimaalfouten.
Waar deze gids tekortschiet
We hebben gewerkt met de helppagina's van Google zoals ze luidden toen we ze controleerden, en Google wijzigt deze vereisten. We konden niet bevestigen wat voor Turkse accounts geldt, omdat Turkije ontbreekt in de landenlijsten op de annotatiepagina. We kunnen niet in je Merchant Center-account kijken, dus de geschiktheid kan afwijken van wat de regels suggereren, en Google zelf zegt dat annotaties niet gegarandeerd zijn. We hebben ook Meta en andere kanalen niet behandeld; hun actieprijsvelden volgen aparte regels. Het gedeelte over de Turkse regelgeving is gebaseerd op een secundaire samenvatting en niet op de tekst van het Resmi Gazete, en is geen juridisch advies; overleg met een jurist. Channable publiceert een eigen uitleg over actieprijsannotaties, die de moeite waard is om naast deze gids te lezen.
Veelgestelde vragen
Waarom is mijn sale_price goedgekeurd, maar zie ik geen doorhaling?
Goedkeuring controleert alleen of de gegevens geldig zijn. Voor de annotatie gelden extra voorwaarden: een korting van meer dan 5% en minder dan 90%, een basisprijs die voor jouw land lang genoeg geldig is geweest, en beide prijzen zichtbaar op de landingspagina. Begin met check 2, 5 en 6.
Heb ik sale_price_effective_date nodig?
Voor gewone productgegevensfeeds is het optioneel. In online inventory-updatefeeds zegt Google dat beide actie-attributen samen moeten worden verstuurd. Wij raden aan het mee te sturen bij elke geplande actie, zodat het einde van de actie expliciet is.
Kan ik een korting met een promotiecode in sale_price zetten?
Nee. Google vraagt je kortingen met promotiecodes te beheren in de kortingsinstellingen van de winkel. Loyaliteits- en lidmaatschapsprijzen horen in plaats daarvan in het attribuut loyalty_program.
Levert een Merchant Center-promotie een actieannotatie op?
Nee. Google stelt dat actieprijzen die als promoties zijn ingediend, niet meetellen. Gebruik het attribuut sale_price voor actieannotaties en promoties voor aanbiedingen zoals kortingen in de winkelmand.
Hoe lang moet de originele prijs live zijn geweest?
In de meeste Shopping-advertentielanden noemt Google 30 dagen binnen de afgelopen 200. In de VS is het voor Shopping-advertenties 5 dagen binnen de afgelopen 30 of 15 dagen binnen de afgelopen 200. Voor advertenties voor lokale voorraad zijn 60 dagen nodig.
Waarom wijkt de korting die ik toon af van die in de Turkse wet?
Google test de basisprijs die je hebt gehanteerd. De Turkse regels, zoals samengevat door KPMG, stellen als referentie de laagste prijs in de 30 dagen vóór de korting. Een tijdelijke prijsverlaging kan de referentieprijs verlagen waartegen je wettelijk mag adverteren.
Controleer je eigen feed
Wil je een tweede paar ogen op de prijsattributen in je feed, laat je feed dan door de gratis Feedance-tool voor productfeed-audits lopen.

Kardelen Yılmaz werkt aan groei bij Feedance, waar ze e-commercemerken en bureaus helpt meer rendement te halen uit elk product dat ze adverteren. Ze schrijft over de kwaliteit van productfeeds, Shopping- en Performance Max-campagnes, creatieve automatisering en hoe AI-gedreven shopping de zichtbaarheid van producten verandert.
LinkedIn












