Промоакции позволяют показывать специальные предложения для товаров, которые вы продаете в Google. Промоакции показываются в разных сервисах Google, в том числе в Google Поиске, на вкладке "Покупки" и в браузере Chrome. Чтобы промоакция была одобрена, она должна соответствовать определенным требованиям. Подробнее о требованиях к промоакциям…
Когда вы добавляете промоакцию для товаров, покупатели видят ссылку на специальное предложение. Примеры: "Скидка 15 %" или "Бесплатная доставка". Ссылки на предложения помогают делать товары привлекательнее и стимулировать покупки. Также все промоакции должны применяться при оплате заказа в онлайн-магазине или в точке продажи.
Подробнее об основах промоакций…
Требования
Прежде чем показывать ваши промоакции, Google должен получить определенную информацию о вашей компании и товарах. Что вам нужно:
- источник данных о товарах в Google Merchant Center.
- источник данных для промоакций в Google Merchant Center.
- Аккаунт Google Рекламы для торговых кампаний.
Кроме того, вам нужно зарегистрировать аккаунт Merchant Center в программе промоакций. Если вы не уверены, зарегистрированы ли вы в программе, проверьте Merchant Center.
Если вы не зарегистрированы, заполните форму запроса. Вам сообщат, когда можно будет внедрять промоакции.
Подробнее о требованиях к продавцам и правилах участия в программе…
Как создать источник данных
Чтобы создать источник данных для промоакций, используйте метод accounts.dataSources.create. Если у вас есть источник данных для промоакций, используйте метод accounts.dataSources.list, чтобы получить все источники данных. Затем вы можете использовать поле name источника данных для создания промоакций.
Чтобы в будущем обращаться к ним напрямую в вызовах API, мы настоятельно рекомендуем сохранить accounts.dataSources.name для каждой промоакции в локальной базе данных. Вы можете выполнить однократное заполнение локальной базы данных.
В примере ниже показано, как создать источник данных для промоакций:
POST https://merchantapi.googleapis.com/datasources/v1/accounts/{ACCOUNT_ID}/dataSources
{
"displayName": "{DISPLAY_NAME}",
"promotionDataSource": {
"contentLanguage": "{CONTENT_LANGUAGE}",
"targetCountry": "{TARGET_COUNTRY}"
}
}
Замените следующее:
- {ACCOUNT_ID} – уникальный идентификатор вашего аккаунта, который показывается в интерфейсе Merchant Center.
- {DISPLAY_NAME} – отображаемое название источника данных.
- {CONTENT_LANGUAGE} – двухбуквенный код языка товаров в источнике данных по стандарту ISO 639-1.
- {TARGET_COUNTRY} – код CLDR целевой страны, в которой вы хотите показывать промоакции.
После успешного выполнения запроса вы увидите следующий ответ, содержащий сведения о созданном источнике данных для промоакций:
{
"name": "accounts/{ACCOUNT_ID}/dataSources/{DATASOURCE_ID}",
"dataSourceId": "{DATASOURCE_ID}",
"displayName": "{DISPLAY_NAME}",
"promotionDataSource": {
"targetCountry": "{TARGET_COUNTRY}",
"contentLanguage": "{CONTENT_LANGUAGE}"
},
"input": "API"
}
Запустите промоакцию
Вы можете использовать метод accounts.promotions.insert, чтобы создать или обновить промоакцию. Метод accounts.promotions.insert принимает в качестве входных данных ресурс promotions и название источника данных. Если операция прошла успешно, возвращает новую или обновленную промоакцию.
Чтобы создать промоакцию, нужно указать название источника данных. В запросе также необходимо указать значения следующих полей:
contentLanguageredemptionChannelpromotionIdtargetCountryattributes.offerTypeattributes.genericRedemptionCodeattributes.couponValueTypeattributes.productApplicabilityattributes.promotionEffectiveTimePeriod.endTimeattributes.promotionEffectiveTimePeriod.startTimeattributes.longTitle
Google проверяет и одобряет промоакции, прежде чем показывать их в сервисах. Подробнее о проверке промоакций…
Рекомендуем ознакомиться с правилами в отношении промоакций, чтобы убедиться, что ваши промоакции соответствуют правилам в отношении товарной рекламы и приносят пользу покупателям.
В следующем запросе показано, как создать торговую акцию, которая действует только в интернет-магазине:
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 {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
Ознакомьтесь с минимальными требованиями к атрибуту "идентификатор промоакции".
Допустимые значения для обязательного поля offerType – NO_CODE и GENERIC_CODE. Если вы не укажете одно из этих значений, запрос к API завершится неудачно и будет возвращен ответ HTTP 400 [offer_type] validation/missing_required: Invalid or
missing required attribute: offer_type. Аналогичное сообщение об ошибке возвращается, если не указать ни одно из обязательных полей.
Если вы не укажете значение для поля attributes.genericRedemptionCode, запрос завершится неудачно с HTTP-ответом 400 [genericRedemptionCode] No
redemption code provided.
Значения полей promotion.attributes.promotionDisplayTimePeriod.startTime и promotion.attributes.promotionDisplayTimePeriod.endTime должны быть указаны в формате yyyy-mm-ddThh:mm:ssZ. Обязательно замените значения этих полей на даты из будущего.
Подробнее о спецификации данных промоакций…
Рекомендации по созданию промоакций собраны в этой статье.
Список атрибутов, связанных с промоакциями, можно найти в разделе Как добавлять атрибуты со структурированными данными.
После того как запрос на создание промоакции будет успешно выполнен, может пройти несколько минут, прежде чем промоакцию можно будет получить с помощью API или увидеть в Merchant Center.
Вот пример кода, который можно использовать для асинхронного добавления нескольких промоакций:
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.api.gax.grpc.ChannelPoolSettings;
import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider;
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();
// Creates a channel provider. This provider manages a pool of gRPC channels
// to enhance throughput for bulk operations. Each individual channel in the pool
// can handle up to approximately 100 concurrent requests.
//
// Channel: A single connection pathway to the service.
// Pool: A collection of multiple channels managed by this provider.
// Requests are distributed across the channels in the pool.
//
// We recommend estimating the number of concurrent requests you'll make, divide by 50 (50%
// utilization of channel capacity), and set the pool size to that number.
InstantiatingGrpcChannelProvider channelProvider =
InstantiatingGrpcChannelProvider.newBuilder()
.setChannelPoolSettings(ChannelPoolSettings.staticallySized(30))
.build();
PromotionsServiceSettings merchantPromotionsServiceSettings =
PromotionsServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credential))
.setTransportChannelProvider(channelProvider)
.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>");
}
}
Ниже приведены примеры промоакций, которые помогут вам начать работу.
Местная промоакция, которая действует для всех товаров и во всех магазинах
В примере запроса ниже показано, как создать местную промоакцию, которая будет действовать для всех товаров в аккаунте Merchant Center и всех магазинов, добавленных в связанный аккаунт профиля компании.
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}"
}
Поле productApplicability является обязательным. Он указывает, распространяется ли промоакция на все товары или только на некоторые. Допустимые значения: ALL_PRODUCTS и SPECIFIC_PRODUCTS. Подробнее о том, как выбрать товары для промоакции…
Поле couponValueType является обязательным. Он указывает на тип промоакции, которую вы проводите. Список поддерживаемых значений приведен в статье Тип значения купона.
В зависимости от типа значения купона некоторые атрибуты являются обязательными.
В поле minimumPurchaseQuantity можно указать минимальное количество товаров, которое нужно приобрести, чтобы воспользоваться промоакцией. Подробнее о минимальном количестве товаров в заказе по условиям промоакции…
Аналогичным образом можно использовать поле minimumPurchaseAmount, чтобы задать минимальную сумму покупки, необходимую для участия в промоакции. Подробнее о минимальной сумме покупки…
Подробнее о том, какие значения нужно указать при создании местной промоакции, рассказывается в спецификации источника данных для местных промоакций.
Торговая акция, которая действует только в интернет-магазине и распространяется на определенные товары и требует ввода кода погашения.
В приведенном ниже примере запроса показано, как создать торговую акцию, которая действует только в интернет-магазине и применяется к выбранным товарам с кодом погашения.
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"
}
Посмотреть промоакции
Чтобы посмотреть промоакцию, используйте значок accounts.promotions.get.
Этот запрос GET доступен только для чтения. Для этого вам понадобится merchantId и идентификатор промоакции. Метод GET возвращает соответствующий ресурс промоакций.
Пример:
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 {ACCESS_TOKEN}' \
--header 'Accept: application/json' \
--compressed
Замените следующее:
- {ACCOUNT_ID} – уникальный идентификатор вашего аккаунта Merchant Center.
- {PROMOTION_ID} – уникальный идентификатор промоакции, которую вы хотите получить. Формат: {CHANNEL} ~{CONTENT_LANGUAGE}~ {TARGET_COUNTRY}~{PROMOTION_ID} .
Обратите внимание, что созданная промоакция станет доступна через API в течение нескольких минут.
Как посмотреть местную промоакцию
В приведенном ниже примере запроса извлекается местная промоакция с идентификатором промоакции 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
Если запрос выполнен успешно, вы увидите следующий ответ:
{
"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"
}
В поле moneyOffAmount этого примера указана скидка, предлагаемая в рамках промоакции. Подробнее о денежной скидке в рамках промоакции…
В поле promotionUrl в этом примере указана ссылка на сайт магазина, где покупатели могут найти дополнительную информацию о промоакции. Если вы не добавите поле promotionUrl, то при создании промоакции для рекламы местного ассортимента будет возвращена ошибка.
Посмотреть онлайн-промоакцию
В приведенном ниже примере запроса извлекается торговая акция, которая действует только в интернет-магазине, с идентификатором промоакции 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}"
}
В поле itemIdInclusion, используемом в этом примере, указаны товары, на которые распространяется промоакция. Подробнее об идентификаторах товаров для продвижения…
Как посмотреть список промоакций
Чтобы посмотреть все созданные промоакции, используйте метод promotions.list.
Пример запроса:
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 {ACCESS_TOKEN}' \
--header 'Accept: application/json' \
--compressed
В ответе будет список всех промоакций в вашем аккаунте. Для каждой промоакции можно посмотреть подробную информацию, например promotionId, redemptionChannel, dataSource, promotionStatus и т. д.
Как посмотреть статус промоакции
Чтобы узнать статус промоакции, посмотрите атрибут promotionStatus, возвращаемый методом promotions.get или promotions.list.
Поле promotionStatus может иметь следующие значения:
IN_REVIEW– промоакция ещё проверяется.REJECTED: промоакция отклонена.LIVE– промоакция одобрена и активна.STOPPED: промоакция остановлена в аккаунте.EXPIRED– промоакция больше не активна.PENDING: промоакция не остановлена, все проверки пройдены, но дата начала ещё не наступила.STATE_UNSPECIFIED: неизвестное состояние промоакции.
Подробнее о проверке промоакций…
Пример статуса промоакции
В приведенных ниже примерах показана разница между успешными и неудачными запросами.
Не задано сопоставление товаров
В теле ответа ниже показана онлайн-промоакция, отклоненная из-за отсутствия сопоставления товаров.
"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"
]
}
]
}
Чтобы устранить проблемы с отклоненными промоакциями и узнать, как избежать этого в будущем, ознакомьтесь со статьей Как устранять проблемы с отклоненными промоакциями.
Если созданная вами промоакция не будет одобрена, вы получите электронное письмо с указанием причины отклонения и инструкциями по устранению проблем.
Промоакция на рассмотрении
В теле ответа ниже показана промоакция, которая ещё проверяется.
"promotionStatus": {
"destinationStatuses": [
{
"reportingContext": "FREE_LISTINGS",
"status": "PENDING"
},
{
"destination": "SHOPPING_ADS",
"status": "PENDING"
}
],
"itemLevelIssues": []
}
Одобренная и активная промоакция
В теле ответа ниже показана промоакция, которая видна покупателям.
"promotionStatus": {
"destinationStatuses": [
{
"reportingContext": "FREE_LISTINGS",
"status": "LIVE"
},
{
"destination": "SHOPPING_ADS",
"status": "LIVE"
} ],
"itemLevelIssues": []
}
Дополнительную информацию можно найти в разделе Часто задаваемые вопросы о статусе промоакций.
Как удалить промоакции
Удалить промоакцию с помощью API нельзя. Чтобы удалить промоакцию, вам потребуется перейти в интерфейс Merchant Center. Подробнее о том, как изменить промоакцию или ее статус…
Чтобы завершить промоакцию, можно использовать метод accounts.promotions.insert и изменить значение поля attributes.promotionEffectiveTimePeriod.endTime на время в прошлом.
Подробнее…
- Дополнительную информацию можно найти в Справочном центре.
- Чтобы устранить распространенные проблемы, ознакомьтесь с разделом Устранение неполадок, связанных с дочерним API промоакций.
- Подробнее о том, как перейти с Content API for Shopping…