Korzystaj z promocji, aby prezentować oferty specjalne dotyczące produktów, które sprzedajesz w Google. Promocje wyświetlają się w różnych usługach Google, w tym w wyszukiwarce Google, Zakupach i Chrome. Aby promocje zostały zatwierdzone, muszą spełniać określone kryteria. Więcej informacji znajdziesz w kryteriach promocji.
Gdy dodasz promocję do swoich produktów, kupujący zobaczą link do oferty specjalnej. Na przykład „15% zniżki” lub „Bezpłatna dostawa”. Linki do ofert mogą zwiększyć atrakcyjność Twoich produktów i zachęcić klientów do zakupu. Wszystkie promocje są uwzględniane w momencie płatności lub w punkcie sprzedaży.
Więcej informacji znajdziesz w artykule Podstawowe informacje o promocjach.
Wymagania wstępne
Zanim będziemy mogli wyświetlać Twoje promocje, musisz podać konkretne informacje na temat swojej firmy i produktów. Musisz mieć:
- Aktywny plik danych o produktach w Google Merchant Center.
- aktywny plik danych o promocjach w Google Merchant Center;
- konto Google Ads do kampanii produktowych;
Musisz też zarejestrować swoje konto Merchant Center w programie Promocje. Jeśli nie masz pewności, czy Twoja firma jest już zarejestrowana, sprawdź Merchant Center.
Jeśli nie masz zarejestrowanego konta, wypełnij formularz prośby. Zespół ds. promocji powiadomi Cię, kiedy będzie można rozpocząć korzystanie z tej funkcji.
Więcej informacji znajdziesz w kryteriach i zasadach uczestnictwa.
Tworzenie źródła danych
Aby utworzyć źródło danych o promocjach, możesz użyć metody accounts.dataSources.create. Jeśli dostępne jest istniejące źródło danych o promocjach, użyj metody
accounts.dataSources.list
do pobrania wszystkich źródeł danych. Następnie możesz użyć pola name
źródła danych o promocjach, aby utworzyć promocje.
To żądanie pokazuje, jak utworzyć źródło danych do dodawania promocji:
POST https://merchantapi.googleapis.com/datasources/v1/accounts/{ACCOUNT_ID}/dataSources
{
"displayName": "{DISPLAY_NAME}",
"promotionDataSource": {
"contentLanguage": "{CONTENT_LANGUAGE}",
"targetCountry": "{TARGET_COUNTRY}"
}
}
Zastąp następujące elementy:
- {ACCOUNT_ID}: unikalny identyfikator konta widoczny w interfejsie Merchant Center.
- {DISPLAY_NAME}: Wyświetlana nazwa źródła danych.
- {CONTENT_LANGUAGE}: dwuliterowy kod języka ISO 639-1 produktów w źródle danych.
- {TARGET_COUNTRY}: kod obszaru CLDR kraju docelowego, w którym mają być widoczne promocje.
Po pomyślnym wykonaniu żądania zobaczysz odpowiedź zawierającą szczegóły nowo utworzonego źródła danych o promocjach:
{
"name": "accounts/{ACCOUNT_ID}/dataSources/{DATASOURCE_ID}",
"dataSourceId": "{DATASOURCE_ID}",
"displayName": "{DISPLAY_NAME}",
"promotionDataSource": {
"targetCountry": "{TARGET_COUNTRY}",
"contentLanguage": "{CONTENT_LANGUAGE}"
},
"input": "API"
}
Zorganizuj promocję
Do tworzenia lub aktualizowania promocji możesz użyć metody
accounts.promotions.insert
. Metoda accounts.promotions.insert
przyjmuje jako dane wejściowe zasób promotions
i nazwę źródła danych. Jeśli operacja się uda, zwraca nową lub zaktualizowaną promocję.
Aby utworzyć promocję, musisz podać nazwę źródła danych. W żądaniu musisz też podać wartości tych pól:
contentLanguage
redemptionChannel
promotionId
targetCountry
attributes.offerType
attributes.genericRedemptionCode
attributes.couponValueType
attributes.productApplicability
attributes.promotionEffectiveTimePeriod.endTime
attributes.promotionEffectiveTimePeriod.startTime
attributes.longTitle
Google sprawdzi i zatwierdzi Twoje promocje, zanim zostaną rozpowszechnione. Więcej informacji znajdziesz w artykule Proces zatwierdzania promocji.
Zalecamy zapoznanie się z zasadami dotyczącymi promocji, aby mieć pewność, że tworzone przez Ciebie promocje są wartościowe i zgodne z zasadami dotyczącymi reklam produktowych.
To żądanie pokazuje, jak utworzyć promocję online:
HTTP
POST https://merchantapi.googleapis.com/promotions/v1/accounts/{ACCOUNT_ID}/promotions:insert
{
"promotion": {
"name": "{PROMOTION_NAME}",
"promotionId": "{PROMOTION_ID}",
"targetCountry": "{TARGET_COUNTRY}",
"redemptionChannel": [
"ONLINE"
],
"contentLanguage": "{CONTENT_LANGUAGE}",
"attributes": {
"promotionDisplayTimePeriod": {
"endTime": "{PROMOTION_END_TIME}",
"startTime": "{PROMOTION_START_TIME}"
},
"offerType": "{OFFER_TYPE}",
"longTitle": "{LONG_TITLE}"
}
},
"dataSource": "accounts/{ACCOUNT_ID}/dataSources/{DATASOURCE_ID}"
}
cURL
curl --request POST \
'https://merchantapi.googleapis.com/promotions/v1/accounts/{ACCOUNT_ID}/promotions:insert?key=[YOUR_API_KEY]' \
--header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"dataSource":"{DATASOURCE_ID}","promotion":{"name":"accounts/{ACCOUNT_ID}/promotions/{PROMOTION_ID}y","promotionId":"abc","contentLanguage":"en","targetCountry":"US","redemptionChannel":["ONLINE"]}}' \
--compressed
Informacje o regułach dotyczących ustawiania identyfikatora promocji znajdziesz w artykule Minimalne wymagania dotyczące atrybutu identyfikator promocji.
Prawidłowe wartości obowiązkowego pola offerType
to NO_CODE
i GENERIC_CODE
. Jeśli nie podasz jednej z tych wartości, żądanie interfejsu API zakończy się niepowodzeniem i zostanie zwrócona odpowiedź HTTP 400 [offer_type] validation/missing_required: Invalid or
missing required attribute: offer_type
. Podobny komunikat o błędzie pojawi się, jeśli nie podasz żadnego z obowiązkowych pól.
Jeśli nie podasz wartości w polu attributes.genericRedemptionCode
, żądanie zakończy się niepowodzeniem i zostanie zwrócona odpowiedź HTTP 400 [genericRedemptionCode] No
redemption code provided
.
Wartości pól promotion.attributes.promotionDisplayTimePeriod.startTime
i promotion.attributes.promotionDisplayTimePeriod.endTime
muszą być w formacie yyyy-mm-ddThh:mm:ssZ
. Zastąp wartości w tych polach datami z przyszłości.
Więcej informacji znajdziesz w specyfikacji danych o promocjach.
Sprawdzone metody tworzenia promocji znajdziesz w artykule Sprawdzone metody dotyczące promocji.
Listę atrybutów związanych z promocjami znajdziesz w artykule Dodawanie atrybutów danych strukturalnych.
Po pomyślnym uruchomieniu żądania utworzenia promocji może minąć kilka minut, zanim będzie można ją pobrać za pomocą interfejsu API lub zanim pojawi się w Merchant Center.
Oto przykład, którego możesz użyć do asynchronicznego wstawiania wielu promocji:
Java
import com.google.api.core.ApiFuture;
import com.google.api.core.ApiFutureCallback;
import com.google.api.core.ApiFutures;
import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.common.util.concurrent.MoreExecutors;
import com.google.protobuf.Timestamp;
import com.google.shopping.merchant.promotions.v1.Attributes;
import com.google.shopping.merchant.promotions.v1.CouponValueType;
import com.google.shopping.merchant.promotions.v1.InsertPromotionRequest;
import com.google.shopping.merchant.promotions.v1.OfferType;
import com.google.shopping.merchant.promotions.v1.ProductApplicability;
import com.google.shopping.merchant.promotions.v1.Promotion;
import com.google.shopping.merchant.promotions.v1.PromotionsServiceClient;
import com.google.shopping.merchant.promotions.v1.PromotionsServiceSettings;
import com.google.shopping.merchant.promotions.v1.RedemptionChannel;
import com.google.shopping.type.CustomAttribute;
import com.google.shopping.type.Destination.DestinationEnum;
import com.google.type.Interval;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.stream.Collectors;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;
/** This class demonstrates how to insert multiple promotions asynchronously. */
public class InsertPromotionsAsyncSample {
private static String generateRandomString() {
String characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
Random random = new Random();
StringBuilder sb = new StringBuilder(8);
for (int i = 0; i < 8; i++) {
sb.append(characters.charAt(random.nextInt(characters.length())));
}
return sb.toString();
}
private static Promotion createPromotion(String accountId) {
String merchantPromotionId = generateRandomString();
Attributes attributes =
Attributes.newBuilder()
.setProductApplicability(ProductApplicability.ALL_PRODUCTS)
.setOfferType(OfferType.GENERIC_CODE)
.setGenericRedemptionCode("ABCD1234")
.setLongTitle("My promotion")
.setCouponValueType(CouponValueType.PERCENT_OFF)
.addPromotionDestinations(DestinationEnum.SHOPPING_ADS)
.setPercentOff(10)
// Note that promotions have a 6-month limit.
// For more information, read here: https://support.google.com/merchants/answer/2906014
// Also note that only promotions valid within the past 365 days are shown in the UI.
.setPromotionEffectiveTimePeriod(
Interval.newBuilder()
.setStartTime(Timestamp.newBuilder().setSeconds(1726842472))
.setEndTime(Timestamp.newBuilder().setSeconds(1726842473))
.build())
.build();
return Promotion.newBuilder()
.setName(String.format("accounts/%s/merchantPromotions/%s", accountId, merchantPromotionId))
.setPromotionId(merchantPromotionId)
.setContentLanguage("fr")
.setTargetCountry("CH")
.addRedemptionChannel(RedemptionChannel.ONLINE)
.setAttributes(attributes)
// Custom attributes allow you to add additional information which is not available in
// Attributes. For example, you might want to pilot experimental functionality.
.addCustomAttributes(
CustomAttribute.newBuilder()
.setName("another example name")
.setValue("another example value")
.build())
.build();
}
public static void asyncInsertPromotions(String accountId, String dataSourceId) throws Exception {
GoogleCredentials credential = new Authenticator().authenticate();
PromotionsServiceSettings merchantPromotionsServiceSettings =
PromotionsServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credential))
.build();
try (PromotionsServiceClient merchantPromotionsServiceClient =
PromotionsServiceClient.create(merchantPromotionsServiceSettings)) {
// Arbitrarily creates five merchant promotions with random IDs.
List<InsertPromotionRequest> requests = new ArrayList<>();
for (int i = 0; i < 5; i++) {
InsertPromotionRequest request =
InsertPromotionRequest.newBuilder()
.setParent(String.format("accounts/%s", accountId))
.setPromotion(createPromotion(accountId))
.setDataSource(String.format("accounts/%s/dataSources/%s", accountId, dataSourceId))
.build();
requests.add(request);
}
// Inserts the merchant promotions.
List<ApiFuture<Promotion>> futures =
requests.stream()
.map(
request ->
merchantPromotionsServiceClient.insertPromotionCallable().futureCall(request))
.collect(Collectors.toList());
// Creates callback to handle the responses when all are ready.
ApiFuture<List<Promotion>> responses = ApiFutures.allAsList(futures);
ApiFutures.addCallback(
responses,
new ApiFutureCallback<List<Promotion>>() {
@Override
public void onSuccess(List<Promotion> results) {
System.out.println("Inserted merchant promotions below:");
System.out.println(results);
}
@Override
public void onFailure(Throwable throwable) {
System.out.println(throwable);
}
},
MoreExecutors.directExecutor());
} catch (Exception e) {
System.out.println(e);
}
}
public static void main(String[] args) throws Exception {
Config config = Config.load();
asyncInsertPromotions(config.getAccountId().toString(), "<YOUR_DATA_SOURCE_ID>");
}
}
Oto kilka przykładowych promocji, które możesz wykorzystać na początek.
Promocja lokalna obejmująca wszystkie produkty i wszystkie sklepy
Przykładowa prośba poniżej pokazuje, jak utworzyć promocję produktów dostępnych lokalnie, która ma zastosowanie do wszystkich produktów na koncie Merchant Center i wszystkich sklepów dodanych na połączonym koncie Profil Firmy.
POST https://merchantapi.googleapis.com/promotions/v1/accounts/{ACCOUNT_ID}/promotions:insert
{
"promotion": {
"promotionId": "buy_2_get_10_off",
"contentLanguage": "en",
"targetCountry": "US",
"redemptionChannel": [
"IN_STORE"
],
"attributes": {
"longTitle": "Buy 2 and get 10$ OFF purchase",
"productApplicability": "ALL_PRODUCTS",
"offerType": "NO_CODE",
"couponValueType": "BUY_M_GET_MONEY_OFF",
"promotionDisplayTimePeriod": {
"startTime": "2024-2-06T00:47:44Z",
"endTime": "2024-5-06T00:47:44Z"
},
"promotionEffectiveTimePeriod": {
"startTime": "2024-2-06T00:47:44Z",
"endTime": "2024-5-06T00:47:44Z"
},
"moneyOffAmount": {
"amountMicros": "1000000",
"currencyCode": "USD"
},
"minimumPurchaseQuantity": 2,
"storeApplicability": "ALL_STORES",
"promotionUrl": "http://promotionnew4url.com/",
"promotionDestinations": [
"LOCAL_INVENTORY_ADS"
],
}
},
"dataSource": "accounts/{ACCOUNT_ID}/dataSources/{DATASOURCE_ID}"
}
Pole productApplicability
jest wymagane. Wskazuje, czy promocja dotyczy wszystkich czy tylko konkretnych produktów. Obsługiwane wartości to ALL_PRODUCTS
i SPECIFIC_PRODUCTS
. Więcej informacji znajdziesz w artykule Wybieranie produktów do promocji.
Pole couponValueType
jest wymagane. Sygnalizuje typ promocji, którą prowadzisz. Listę obsługiwanych wartości znajdziesz w sekcji Typ wartości kuponu. W zależności od wybranego typu wartości kuponu niektóre atrybuty są wymagane.
Pole minimumPurchaseQuantity
umożliwia ustawienie wartości minimalnej wielkości zakupu wymaganej do skorzystania z oferty promocyjnej. Więcej informacji znajdziesz w artykule Minimalna wielkość zakupu dla promocji.
Podobnie możesz użyć pola minimumPurchaseAmount
, aby ustawić minimalną kwotę zakupu wymaganą do skorzystania z promocji. Więcej informacji znajdziesz w artykule Minimalna kwota zakupu.
Więcej informacji o wartościach, które musisz podać, aby utworzyć promocję produktów dostępnych lokalnie, znajdziesz w artykule Specyfikacja źródeł danych w przypadku promocji produktów dostępnych lokalnie.
Promocja online obejmująca wybrane produkty z kodem promocyjnym
Poniższe przykładowe żądanie pokazuje, jak utworzyć promocję online, która dotyczy wybranych produktów z kodem rabatowym.
POST https://merchantapi.googleapis.com/promotions/v1/accounts/{ACCOUNT_ID}/promotions:insert
{
"promotion": {
"promotionId": "25_pct_off",
"contentLanguage": "en",
"targetCountry": "US",
"redemptionChannel": [
"ONLINE"
],
"attributes": {
"longTitle": "10% off on selected items",
"productApplicability": "SPECIFIC_PRODUCTS",
"offerType": "GENERIC_CODE",
"genericRedemptionCode": "SPRINGSALE",
"couponValueType": "PERCENT_OFF",
"promotionDisplayTimePeriod": {
"startTime": "2024-2-06T00:47:44Z",
"endTime": "2024-5-06T00:47:44Z"
},
"promotionEffectiveTimePeriod": {
"startTime": "2024-2-06T00:47:44Z",
"endTime": "2024-5-06T00:47:44Z"
},
"percentOff": 25,
"promotionDestinations": [
"FREE_LISTINGS"
],
"itemIdInclusion": [
"1499860100",
"1499860101",
"1499860102",
"1499860103",
"1499860104"
],
}
},
"dataSource": "accounts/{ACCOUNT_ID}/dataSources/1000000573361824"
}
Wyświetl promocje
Aby wyświetlić promocję, użyj właściwości accounts.promotions.get
.
To żądanie GET
jest tylko do odczytu. Wymaga on podania merchantId
i identyfikatora promocji. Metoda GET
zwraca odpowiedni zasób promocji.
Na przykład:
HTTP
GET https://merchantapi.googleapis.com/promotions/v1/accounts/{ACCOUNT_ID}/promotions/{PROMOTION_ID}
cURL
curl \
'https://merchantapi.googleapis.com/promotions/v1/accounts/{ACCOUNT_ID}/promotions/{PROMOTION_ID}?key=[YOUR_API_KEY]' \
--header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \
--header 'Accept: application/json' \
--compressed
Zastąp następujące elementy:
- {ACCOUNT_ID}: unikalny identyfikator konta Merchant Center.
- {PROMOTION_ID}: unikalny identyfikator promocji, którą chcesz pobrać. Format to {CHANNEL} ~{CONTENT_LANGUAGE}~ {TARGET_COUNTRY}~{PROMOTION_ID} .
Pamiętaj, że pobranie nowo utworzonej promocji za pomocą interfejsu API może potrwać kilka minut.
Wyświetlanie promocji lokalnej
Poniższe przykładowe żądanie pobiera promocję lokalną, której identyfikator to in_store~en~US~buy_2_get_10_off
.
GET https://merchantapi.googleapis.com/promotions/v1/accounts/{ACCOUNT_ID}/promotions/in_store~en~US~buy_2_get_10_off
Po pomyślnym przetworzeniu żądania zobaczysz tę odpowiedź:
{
"name": "accounts/{ACCOUNT_ID}/promotions/in_store~en~US~buy_2_get_10_off",
"promotionId": "buy_2_get_10_off",
"contentLanguage": "en",
"targetCountry": "US",
"redemptionChannel": [
"IN_STORE"
],
"attributes": {
"longTitle": "Buy 2 and get 10$ OFF purchase",
"productApplicability": "ALL_PRODUCTS",
"offerType": "NO_CODE",
"couponValueType": "BUY_M_GET_MONEY_OFF",
"promotionDisplayTimePeriod": {
"startTime": "2024-2-06T00:47:44Z",
"endTime": "2024-5-06T00:47:44Z"
},
"promotionEffectiveTimePeriod": {
"startTime": "2024-2-06T00:47:44Z",
"endTime": "2024-5-06T00:47:44Z"
},
"moneyOffAmount": {
"amountMicros": "1000000",
"currencyCode": "USD"
},
"minimumPurchaseQuantity": 2,
"storeApplicability": "ALL_STORES",
"promotionUrl": "http://promotionnew4url.com/",
"promotionDestinations": [
"LOCAL_INVENTORY_ADS"
],
}
"dataSource": "accounts/{ACCOUNT_ID}/dataSources/1000000573361824"
}
Pole moneyOffAmount
w tym przykładzie zawiera rabat oferowany w ramach promocji. Więcej informacji znajdziesz w artykule Kwota rabatu pieniężnego w promocji.
Pole promotionUrl
w tym przykładzie zawiera link do witryny sklepu, w której kupujący mogą znaleźć więcej informacji o promocji. Promocje w reklamach lokalnego asortymentu produktów zwracają błąd, jeśli nie uwzględnisz pola promotionUrl
.
Wyświetlanie promocji online
Ten przykładowy kod żądania pobiera promocję online, której identyfikator to online~en~US~25_pct_off
.
GET https://merchantapi.googleapis.com/promotions/v1/accounts/{ACCOUNT_ID}/promotions/online~en~US~25_pct_off
{
"name": "accounts/{ACCOUNT_ID}/promotions/online~en~US~25_pct_off",
"promotionId": "25_pct_off",
"contentLanguage": "en",
"targetCountry": "US",
"redemptionChannel": [
"ONLINE"
],
"attributes": {
"longTitle": "10% off on selected items",
"productApplicability": "SPECIFIC_PRODUCTS",
"offerType": "GENERIC_CODE",
"genericRedemptionCode": "WINTERGIFT",
"couponValueType": "PERCENT_OFF",
"promotionDisplayTimePeriod": {
"startTime": "2024-2-06T00:47:44Z",
"endTime": "2024-5-06T00:47:44Z"
},
"promotionEffectiveTimePeriod": {
"startTime": "2024-2-06T00:47:44Z",
"endTime": "2024-5-06T00:47:44Z"
},
"percentOff": 25,
"promotionDestinations": [
"FREE_LISTINGS"
],
"itemIdInclusion": [
"1499860100",
"1499860101",
"1499860102",
"1499860103",
"1499860104"
],
}
"dataSource": "accounts/{ACCOUNT_ID}/dataSources/{dataSource}"
}
Pole itemIdInclusion
użyte w tym przykładzie zawiera informacje o produktach, które kwalifikują się do promocji. Więcej informacji znajdziesz w artykule Identyfikator produktu w promocji.
Wyświetlanie listy promocji
Aby wyświetlić wszystkie utworzone promocje, możesz użyć metody
promotions.list
.
Przykładowe żądanie:
HTTP
GET https://merchantapi.googleapis.com/promotions/v1/{ACCOUNT_ID}/promotions
cURL
curl \
'https://merchantapi.googleapis.com/promotions/v1/accounts/{ACCOUNT_ID}/promotions?key=[YOUR_API_KEY]' \
--header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \
--header 'Accept: application/json' \
--compressed
Odpowiedź zawiera listę wszystkich promocji na Twoim koncie. W przypadku każdej promocji możesz zobaczyć szczegóły, takie jak promotionId
, redemptionChannel
, dataSource
, promotionStatus
i inne.
Wyświetlanie stanu promocji
Aby sprawdzić stan promocji, zapoznaj się z atrybutem promotionStatus
zwracanym przez metodę
promotions.get
lub
promotions.list
.
Pole promotionStatus
może mieć te wartości:
IN_REVIEW
: promocja jest nadal sprawdzana.REJECTED
: promocja została odrzucona.LIVE
: promocja jest zatwierdzona i aktywna.STOPPED
: promocja została zatrzymana przez konto.EXPIRED
: promocja nie jest już aktywna.PENDING
: promocja nie jest wstrzymana, a wszystkie weryfikacje są zatwierdzone, ale data rozpoczęcia jest w przyszłości.STATE_UNSPECIFIED
: Nieznany stan promocji.
Aby dowiedzieć się więcej o procesie zatwierdzania utworzonej przez Ciebie promocji, zapoznaj się z artykułem Proces zatwierdzania promocji.
Przykładowy stan promocji
Poniższe przykłady pokazują różnicę między udanymi i nieudanymi żądaniami.
Brak mapowania produktu
Poniższy tekst odpowiedzi pokazuje promocję online, która została odrzucona z powodu braku mapowania produktów.
"promotionStatus": {
"destinationStatuses": [
{
"reportingContext": "FREE_LISTINGS",
"status": "REJECTED"
}
],
"itemLevelIssues": [
{
"code": "promotion_sku_unmapped",
"severity": "DISAPPROVED",
"resolution": "merchant_action",
"reportingContext": "FREE_LISTINGS",
"description": "Unmapped",
"detail": "This promotion couldn't be tested during review because it doesn't apply to any products that are currently in your Products feed",
"documentation": "https://support.google.com/merchants/answer/2906014",
"applicableCountries": [
"US"
]
},
{
"code": "promotion_sku_additional_requirements",
"severity": "DISAPPROVED",
"resolution": "merchant_action",
"reportingContext": "FREE_LISTINGS",
"description": "Promotion conditions not allowed",
"detail": "This promotion has additional requirements that are not allowed such as requiring customers to verify additional details like phone number or ID before showing the promotion details",
"documentation": "https://support.google.com/merchants/answer/2906014",
"applicableCountries": [
"US"
]
}
]
}
Aby rozwiązać problemy z odrzuconymi promocjami i dowiedzieć się, jak uniknąć odrzucenia w przyszłości, zapoznaj się z artykułem Rozwiązywanie problemów z odrzuconymi promocjami.
Jeśli utworzona przez Ciebie promocja nie zostanie zatwierdzona, otrzymasz e-maila z powodem odrzucenia i instrukcjami dotyczącymi rozwiązania problemów.
Promocja jest w trakcie sprawdzania
Poniższa treść odpowiedzi pokazuje promocję, która jest nadal oceniana.
"promotionStatus": {
"destinationStatuses": [
{
"reportingContext": "FREE_LISTINGS",
"status": "PENDING"
},
{
"destination": "SHOPPING_ADS",
"status": "PENDING"
}
],
"itemLevelIssues": []
}
zatwierdzona i aktywna promocja;
Poniższa treść odpowiedzi pokazuje promocję widoczną dla kupujących.
"promotionStatus": {
"destinationStatuses": [
{
"reportingContext": "FREE_LISTINGS",
"status": "LIVE"
},
{
"destination": "SHOPPING_ADS",
"status": "LIVE"
} ],
"itemLevelIssues": []
}
Więcej informacji znajdziesz w artykule Najczęstsze pytania dotyczące stanu promocji.
Usuwanie promocji
Nie można usunąć promocji za pomocą interfejsu API. Aby usunąć promocję, musisz otworzyć interfejs Merchant Center. Więcej informacji znajdziesz w artykule Edytowanie promocji lub zmiana jej stanu.
Aby zakończyć istniejącą promocję, możesz użyć metody accounts.promotions.insert, aby zaktualizować pole attributes.promotionEffectiveTimePeriod.endTime
na czas w przeszłości.
Więcej informacji
- Więcej informacji znajdziesz w Centrum pomocy dotyczącym promocji.
- Rozwiązania typowych problemów znajdziesz w artykule Rozwiązywanie problemów związanych z interfejsem Promotions API.
- Więcej informacji o migracji z Content API for Shopping znajdziesz w artykule Migracja zarządzania promocjami.