Dodajesz sale_price do feedu, produkt jest zatwierdzony, a kupujący nadal widzi jedną zwykłą cenę, bez przekreślenia i bez plakietki promocji. Dokumentacja Google wyjaśnia, dlaczego zdarza się to częściej, niż spodziewają się zespoły feedowe: adnotacja ceny promocyjnej wymaga rabatu większego niż 5% i mniejszego niż 90%, ceny bazowej obowiązującej odpowiednio długo (w większości krajów, w których działają reklamy produktowe: 30 dni w ciągu ostatnich 200) oraz strony docelowej, która pokazuje obie ceny. Jeśli nie spełnisz któregokolwiek warunku, produkt pozostaje aktywny, ale bez adnotacji. Ten przewodnik jest dla osób zarządzających feedami i zespołów paid media, które prowadzą wyprzedaże w Google Shopping. Po jego lekturze przejdziesz po kolei osiem kontroli, znajdziesz tę, która zawodzi, i naprawisz problem w feedzie, a nie w sklepie.
Co naprawdę znaczy „nie wyświetla się”
Za hasłem „cena promocyjna się nie wyświetla” kryją się trzy różne problemy i każdy wymaga innej poprawki.
- Produkt jest odrzucony. Merchant Center wysyła powiadomienie. Cena promocyjna naruszyła wymóg dotyczący danych, na przykład nie była niższa niż
pricealbo nie zgadzała się ze stroną docelową. - Produkt jest zatwierdzony, ale kupujący widzi cenę promocyjną bez przekreślenia i plakietki. Dane są poprawne, ale nie są spełnione zasady kwalifikowania do adnotacji.
- Produkt pokazuje starą cenę. Promocja nie dotarła do Google, wygasła albo nigdy nie została poprawnie zaplanowana.
Google wprost zaznacza, że adnotacje cen promocyjnych nie zawsze są gwarantowane, nawet jeśli spełniasz warunki. Celem tego przewodnika jest więc usunięcie wszystkich przyczyn, na które masz wpływ, i uczciwe wskazanie pozostałej niepewności.
Diagnostyka w ośmiu kontrolach
Wykonuj je po kolei. Pierwsze cztery to kontrole danych, które możesz zrobić na samym feedzie. Ostatnie cztery wymagają historii cen, strony docelowej lub ustawień konta.
| # | Kontrola | Warunek zaliczenia | Źródło |
|---|---|---|---|
| 1 | Cena promocyjna jest niższa niż cena | sale_price < price, a price zawiera pełną cenę regularną | Google: sale_price |
| 2 | Rabat mieści się w zakresie | Więcej niż 5% i mniej niż 90% | Google: adnotacje cen promocyjnych |
| 3 | Daty są poprawne i przyszłe lub bieżące | Zakres w formacie ISO 8601, początek przed końcem, prawdziwe daty kalendarzowe | Google: sale_price_effective_date |
| 4 | Atrybuty promocji są wysyłane razem | Zarówno sale_price, jak i sale_price_effective_date w feedach aktualizacji asortymentu | Google: przesyłanie obu atrybutów promocji |
| 5 | Historia ceny bazowej jest wystarczająco długa | Zależy od kraju i powierzchni, zobacz tabelę poniżej | Google: adnotacje cen promocyjnych |
| 6 | Strona docelowa pokazuje obie ceny | Widoczna cena oryginalna i promocyjna, zgodne z feedem i kasą | Google: adnotacje cen promocyjnych |
| 7 | Rabat nie jest promocją ani ceną lojalnościową | Kody promocyjne oraz ceny dla członków i programu lojalnościowego nie trafiają do sale_price | Google: sale_price |
| 8 | Google ponownie odczytało feed | Pobranie lub aktualizacja przez API nastąpiły po zmianie | Status feedu w Merchant Center |
Kontrola 1: price i sale_price są we właściwej kolejności
Zasada Google jest prosta: sale_price musi być niższa niż price, a ta różnica musi być widoczna w danych produktu. Typowy błąd to platforma sklepowa, która eksportuje już obniżoną kwotę w price, a sale_price zostawia puste lub identyczne. Google zaleca przesyłanie w price pełnej ceny bez promocji, a cenę promocyjną wpisuj do price tylko wtedy, gdy w ogóle nie używasz sale_price.
Poprawna para wygląda tak:
price: 1000.00 TRYsale_price: 799.00 TRY
Zaokrąglaj w feedzie do dwóch miejsc po przecinku, ponieważ Google samo zaokrągla nadmiarowe cyfry, a wynik może odbiegać od ceny na stronie.
Kontrola 2: procent rabatu
Przed publikacją policz procent dla każdego wiersza z promocją: (price - sale_price) / price. Google wymaga, aby wynik był większy niż 5% i mniejszy niż 90%. W powyższym przykładzie to 20,1%, więc warunek jest spełniony. Obniżka o 3% nigdy nie dostanie adnotacji, podobnie jak wiersz z rabatem 92%, który zwykle i tak jest błędem w danych.
Kontrola 3: format sale_price_effective_date
Ten atrybut to zakres dat w formacie ISO 8601 z początkiem i końcem, rozdzielonymi ukośnikiem. Wzorzec opisany przez Google to YYYY-MM-DDThh:mm[±hhmm] lub YYYY-MM-DDThh:mmZ, z limitem 51 znaków. Okno Black Friday dla sklepu w Stambule wygląda tak:
sale_price_effective_date: 2026-11-20T00:00+0300/2026-11-30T23:59+0300
Znaczenie mają dwie wartości domyślne. Jeśli pominiesz godzinę, promocja zaczyna się o północy w dniu początkowym i kończy o 23:59 w dniu końcowym. Jeśli pominiesz strefę czasową, Google użyje UTC. Turecki sklep, który zapisze 2026-11-20T00:00 bez przesunięcia, rozpocznie promocję o trzy godziny za późno dla kupujących w Turcji, a sklep z regionu MENA w Dubaju (UTC+4) straci cztery godziny. Zawsze podawaj przesunięcie.
Waliduj też same daty: strona pomocy Google zawiera przykład z 29 lutego w roku nieprzestępnym, więc sprawdzaj przykłady, zanim je skopiujesz.
Kontrola 4: wysyłaj oba atrybuty promocji
W przypadku feedów aktualizacji asortymentu online Google wymaga, aby sale_price i sale_price_effective_date były podawane razem albo wcale, a wysłanie samej ceny oznacza, że produkt nie został przesłany. W zwykłych feedach danych produktowych data jest opcjonalna, ale my wysyłamy ją dla każdej zaplanowanej promocji, żeby jej koniec był jawny.
Kontrola 5: historia ceny bazowej
Tę kontrolę łatwo pominąć, a może sprawić, że poprawny wiersz promocji zostanie bez adnotacji. Google wymaga, aby cena bazowa obowiązywała przez minimalny czas. Poniższe wartości pochodzą ze strony Google w momencie pisania tekstu.
| Powierzchnia i kraj | Cena bazowa musiała obowiązywać |
|---|---|
| Reklamy produktowe, USA | 5 dni w ciągu ostatnich 30 lub 15 dni w ciągu ostatnich 200, w zależności od tego, co zostanie spełnione wcześniej |
| Reklamy produktowe, Wielka Brytania, Niemcy, Francja, Włochy, Hiszpania, Holandia, Brazylia, Indie, Japonia, Korea, Australia, Kanada | 30 dni w ciągu ostatnich 200 |
| Bezpłatne wyniki, Brazylia, Francja, Niemcy, Indie, Włochy, Korea, Holandia, Hiszpania, Wielka Brytania | 30 dni w ciągu ostatnich 200 |
| Bezpłatne wyniki, USA, Kanada, Australia, Japonia | Brak wymogu na liście |
| Lokalne reklamy asortymentu | 60 dni w ciągu ostatnich 200 lub 60 kolejnych dni dla produktów aktywnych krócej niż 200 dni |
Turcji nie ma na tych listach. Na podstawie tej strony nie jesteśmy w stanie ustalić, co dotyczy tureckiego konta, więc sprawdź status własnych produktów w Merchant Center, zamiast zakładać, że 30 dni obowiązuje lub nie obowiązuje.
Praktyczna konsekwencja dotyczy kolejności działań. Nowy produkt wprowadzony w cenie 1000 TRY 1 listopada nie dostanie adnotacji promocji 10 listopada w kraju z zasadą 30 z 200. Produkt, którego cenę podniesiono na tydzień tuż przed kampanią, może nie przejść tego samego testu, bo cena bazowa nie obowiązywała wystarczająco długo. Jeśli kalendarz promocji zależy od adnotacji, chroń cenę bazową przez kilka tygodni wcześniej.
Kontrola 6: strona docelowa
Google wymaga, aby na stronie docelowej były pokazane cena oryginalna i promocyjna, a wartość sale_price musi odpowiadać cenie widocznej na stronie i w kasie. Jeśli strona produktu pokazuje tylko obniżoną kwotę, a przekreślenie dodaje później skrypt, który nie uruchamia się dla Googlebota, feed i strona są ze sobą sprzeczne. Sprawdź wyrenderowany HTML pod kątem obu cen. Nasz wcześniejszy przewodnik o tym, jak powstrzymać Google przed nadpisywaniem danych o cenach w feedzie, opisuje, co się dzieje, gdy strona i feed się rozjeżdżają.
Kontrola 7: co nie należy do sale_price
Google wyklucza trzy rzeczy. Rabaty z kodów promocyjnych należą do ustawień rabatów w sklepie, a nie do sale_price. Ceny lojalnościowe i dla członków trafiają do loyalty_program. Z kolei ceny promocyjne przesłane jako promocje w Merchant Center nie są traktowane jako ceny promocyjne na potrzeby adnotacji. Jeśli Twoja kampania to „dodatkowe 10% w koszyku”, jest to promocja, a cena w feedzie pozostaje bez zmian.
Kontrola 8: czy Google odczytało zmianę?
Zaplanowane pobieranie może zostawić lukę. Strona integracji Feedance z Google Merchant Center zaznacza, że Merchant Center może ponownie odczytywać hostowany feed co godzinę, codziennie, co tydzień lub co miesiąc oraz że katalogi z szybkimi zmianami cen mogą wymagać przesyłania danych przez API. Po każdej zmianie promocji otwórz produkt w Merchant Center, potwierdź, że widoczna cena jest nową ceną, i dopiero wtedy oceniaj, czy adnotacji brakuje.
Przykład z historią cen
To hipotetyczny wiersz, a nie dane klienta. Kurtka jest wystawiona za 1000,00 TRY. 10 listopada jej cena spada do 800,00 TRY na tydzień, 17 listopada wraca do 1000,00 TRY, a następnie 27 listopada jest oferowana za 700,00 TRY w ramach Black Friday.
price: 1000.00 TRYsale_price: 700.00 TRYsale_price_effective_date: 2026-11-27T00:00+0300/2026-11-30T23:59+0300
Feed przechodzi kontrole od 1 do 4: rabat wynosi 30%, daty są poprawne, a przesunięcie strefy czasowej jest podane. W teście ceny bazowej Google produkt był sprzedawany po 1000 TRY przez większość okresu wstecznego, więc prawdopodobnie przejdzie kontrolę 5 w kraju z zasadą 30 z 200. Turecki przepis to inny test i to on wyłapie ten wiersz. Od wejścia w życie 1 marca 2022 r. nowelizacji opublikowanej w Resmi Gazete z 18 lutego 2022 r. (numer 31754) ceną sprzed obniżki w przypadku sprzedaży ze zniżką jest najniższa cena stosowana w ciągu 30 dni poprzedzających obniżkę, według podsumowania nowelizacji przygotowanego przez KPMG. Tutaj najniższa cena w poprzednich 30 dniach to 800 TRY, więc rzetelny rabat względem tej ceny referencyjnej wynosi 12,5%, a nie 30%. Ciężar udowodnienia faktów dotyczących rabatu spoczywa na sprzedawcy. Feed, który przekreśla 1000 TRY na stronie docelowej, podczas gdy tydzień z ceną 800 TRY widnieje w historii cen, jest problemem regulacyjnym, nawet jeśli Google pokaże adnotację.
Na każdym rynku pomocny w obu testach jest codzienny zapis ceny faktycznie stosowanej dla każdego SKU.
Lista kontrolna przed publikacją feedu z promocją
- Wyeksportuj
price,sale_priceisale_price_effective_datedla każdego SKU w promocji. - Oblicz procent rabatu i oznacz wszystko na poziomie 5% lub niższym albo 90% lub wyższym.
- Oznacz wiersze bez przesunięcia strefy czasowej.
- Połącz dane z historią cen i oznacz SKU, których cena bazowa zmieniła się w ostatnich 30 dniach.
- Wyrenderuj dziesięć przykładowych stron produktów i potwierdź, że obie ceny są widoczne bez żadnej interakcji użytkownika.
- Potwierdź, że do
sale_pricenie trafiła żadna cena z kodu promocyjnego ani cena lojalnościowa.
Jak zmierzyć, czy adnotacja pomogła
Nie zakładaj, że przekreślenie poprawia wyniki. Porównaj dopasowane grupy produktów w tych samych datach, korzystając z podejścia opisanego w naszym przewodniku o mierzeniu wpływu zmiany w feedzie na ROAS. Jeśli formatowanie TRY, AED lub SAR jest niespójne, napraw to najpierw; zobacz nasz przewodnik o błędach dotyczących VAT, waluty i miejsc dziesiętnych.
Ograniczenia tego przewodnika
Opieraliśmy się na stronach pomocy Google w brzmieniu z chwili ich sprawdzenia, a Google zmienia te wymagania. Nie udało nam się potwierdzić, co dotyczy tureckich kont, ponieważ Turcji nie ma na listach krajów na stronie o adnotacjach. Nie widzimy wnętrza Twojego konta Merchant Center, więc kwalifikowanie może różnić się od tego, co sugerują zasady, a sam Google twierdzi, że adnotacje nie są gwarantowane. Nie omawiamy też Mety ani innych kanałów, których pola cen promocyjnych podlegają osobnym regułom. Sekcja o tureckich przepisach opiera się na wtórnym podsumowaniu, a nie na tekście Resmi Gazete, i nie stanowi porady prawnej; skonsultuj się z prawnikiem. Channable publikuje własne wyjaśnienie adnotacji cen promocyjnych, które warto przeczytać razem z tym tekstem.
Najczęstsze pytania
Dlaczego moja cena sale_price jest zatwierdzona, ale nie ma przekreślenia?
Zatwierdzenie sprawdza tylko poprawność danych. Adnotacja ma dodatkowe warunki: rabat powyżej 5% i poniżej 90%, cenę bazową obowiązującą wystarczająco długo w Twoim kraju oraz widoczność obu cen na stronie docelowej. Zacznij od kontroli 2, 5 i 6.
Czy potrzebuję sale_price_effective_date?
W zwykłych feedach danych produktowych jest opcjonalny. W feedach aktualizacji asortymentu online Google wymaga wysyłania obu atrybutów promocji razem. Zalecamy wysyłanie go dla każdej zaplanowanej promocji, aby jej koniec był jawny.
Czy mogę wpisać rabat z kodu promocyjnego do sale_price?
Nie. Google prosi, aby rabatami z kodów promocyjnych zarządzać w ustawieniach rabatów w sklepie. Ceny lojalnościowe i dla członków trafiają natomiast do atrybutu loyalty_program.
Czy promocja w Merchant Center tworzy adnotację ceny promocyjnej?
Nie. Google zaznacza, że ceny promocyjne przesłane jako promocje się nie liczą. Używaj atrybutu sale_price do adnotacji cen promocyjnych, a promocji do ofert takich jak rabaty w koszyku.
Jak długo musiała obowiązywać cena oryginalna?
W większości krajów, w których działają reklamy produktowe, Google podaje 30 dni w ciągu ostatnich 200. W USA dla reklam produktowych jest to 5 dni w ciągu ostatnich 30 lub 15 dni w ciągu ostatnich 200. Lokalne reklamy asortymentu wymagają 60 dni.
Dlaczego rabat, który pokazuję, różni się od tego z tureckiego prawa?
Google testuje cenę bazową, którą faktycznie stosowałeś. Przepisy tureckie, w ujęciu KPMG, ustalają jako punkt odniesienia najniższą cenę z 30 dni przed obniżką. Tymczasowa obniżka może obniżyć cenę referencyjną, względem której możesz legalnie reklamować rabat.
Sprawdź własny feed
Jeśli chcesz, aby ktoś jeszcze spojrzał na atrybuty cen w Twoim feedzie, przepuść go przez bezpłatne narzędzie Feedance do audytu feedu produktowego.

Kardelen Yılmaz zajmuje się wzrostem w Feedance, gdzie pomaga markom e-commerce i agencjom uzyskiwać większy zwrot z każdego reklamowanego produktu. Pisze o jakości feedu produktowego, kampaniach Shopping i Performance Max, automatyzacji kreacji oraz o tym, jak zakupy oparte na AI zmieniają widoczność produktów.
LinkedIn












