Используйте рекламные акции для демонстрации специальных предложений на продукты, которые вы продаете в Google. Рекламные акции отображаются в различных службах Google, включая Google Search, Shopping и Chrome. Рекламные акции должны соответствовать определенным критериям для одобрения. Для получения дополнительной информации см. Критерии рекламных акций .
Когда вы добавляете акцию к своим продуктам, покупатели видят ссылку на специальное предложение. Например, «15% скидки» или «Бесплатная доставка». Ссылки на предложения могут повысить привлекательность ваших продуктов и побудить покупателей совершить покупку. Все акции применяются при оформлении заказа или в точке продажи.
Более подробную информацию см. в разделе Основы продвижения .
Предпосылки
Google требует от вас предоставления конкретной информации о вашем бизнесе и продуктах перед показом ваших акций. У вас должно быть следующее:
- Активный фид товаров в Google Merchant Center .
- Активная лента акций в Google Merchant Center .
- Аккаунт Google Ads для торговых кампаний .
Кроме того, вы должны зарегистрировать свой аккаунт Merchant Center в программе Promotions. Если вы не уверены, зарегистрированы ли вы уже, проверьте Merchant Center .
Если вы не зарегистрированы, заполните форму запроса . Команда по продвижению сообщит вам, когда вы будете готовы начать внедрение.
Более подробную информацию см. в разделе Критерии и правила участия .
Создать источник данных
Вы можете использовать метод accounts.dataSources.create для создания источника данных по акциям. Если существующий источник данных по акциям доступен, используйте метод accounts.dataSources.list
для извлечения всех источников данных. Затем вы можете использовать поле name
источника данных по акциям для создания акций .
Следующий запрос показывает, как создать источник данных для добавления акций:
POST https://merchantapi.googleapis.com/datasources/v1beta/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
и имя источника данных в качестве входных данных. Он возвращает новую или обновленную акцию, если она выполнена успешно.
Создание акции требует имя источника данных . Вы также должны предоставить значения для следующих полей в вашем запросе:
-
contentLanguage
-
redemptionChannel
-
promotionId
-
targetCountry
-
attributes.offerType
-
attributes.genericRedemptionCode
-
attributes.couponValueType
-
attributes.productApplicability
-
attributes.promotionEffectiveTimePeriod.endTime
-
attributes.promotionEffectiveTimePeriod.startTime
-
attributes.longTitle
Google проверяет и одобряет ваши рекламные акции перед их распространением. Для получения дополнительной информации см. Процесс одобрения рекламных акций .
Мы рекомендуем вам ознакомиться с правилами проведения рекламных акций , чтобы убедиться, что создаваемые вами акции имеют ценность и соответствуют правилам в отношении товарных объявлений.
Следующий запрос демонстрирует, как создать онлайн-акцию:
HTTP
POST https://merchantapi.googleapis.com/promotions/v1beta/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/v1beta/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
Информацию о правилах, применяемых к настройке идентификатора рекламной акции, см. в разделе Минимальные требования к атрибуту идентификатора рекламной акции .
Допустимые значения для обязательного поля 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.
Вот пример, который можно использовать для асинхронной вставки нескольких рекламных акций:
Ява
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.v1beta.Attributes;
import com.google.shopping.merchant.promotions.v1beta.CouponValueType;
import com.google.shopping.merchant.promotions.v1beta.InsertPromotionRequest;
import com.google.shopping.merchant.promotions.v1beta.OfferType;
import com.google.shopping.merchant.promotions.v1beta.ProductApplicability;
import com.google.shopping.merchant.promotions.v1beta.Promotion;
import com.google.shopping.merchant.promotions.v1beta.PromotionsServiceClient;
import com.google.shopping.merchant.promotions.v1beta.PromotionsServiceSettings;
import com.google.shopping.merchant.promotions.v1beta.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>");
}
}
Ниже приведены некоторые примеры акций, которые вы можете использовать для начала.
Местная акция, действующая на все продукты и во всех магазинах.
В следующем примере запроса показано, как создать локальную акцию, которая будет применяться ко всем товарам в вашей учетной записи Merchant Center и ко всем магазинам, добавленным в связанную учетную запись вашего бизнес-профиля .
POST https://merchantapi.googleapis.com/promotions/v1beta/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/v1beta/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/v1beta/accounts/{ACCOUNT_ID}/promotions/{PROMOTION_ID}
cURL
curl \
'https://merchantapi.googleapis.com/promotions/v1beta/accounts/{ACCOUNT_ID}/promotions/{PROMOTION_ID}?key=[YOUR_API_KEY]' \
--header 'Authorization: Bearer [YOUR_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/v1beta/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/v1beta/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
, используемое в этом примере, упоминает продукты, которые имеют право на акцию. Для получения дополнительной информации см. Product ID для акции .
Список акций
Для просмотра всех созданных акций можно использовать метод promotions.list
.
Вот пример запроса:
HTTP
GET https://merchantapi.googleapis.com/promotions/v1beta/{ACCOUNT_ID}/promotions
cURL
curl \
'https://merchantapi.googleapis.com/promotions/v1beta/accounts/{ACCOUNT_ID}/promotions?key=[YOUR_API_KEY]' \
--header 'Authorization: Bearer [YOUR_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 Promotions .
- Информацию о переходе с Content API for Shopping см. в разделе Перенос управления акциями .
Используйте рекламные акции для демонстрации специальных предложений на продукты, которые вы продаете в Google. Рекламные акции отображаются в различных службах Google, включая Google Search, Shopping и Chrome. Рекламные акции должны соответствовать определенным критериям для одобрения. Для получения дополнительной информации см. Критерии рекламных акций .
Когда вы добавляете акцию к своим продуктам, покупатели видят ссылку на специальное предложение. Например, «15% скидки» или «Бесплатная доставка». Ссылки на предложения могут повысить привлекательность ваших продуктов и побудить покупателей совершить покупку. Все акции применяются при оформлении заказа или в точке продажи.
Более подробную информацию см. в разделе Основы продвижения .
Предпосылки
Google требует от вас предоставления конкретной информации о вашем бизнесе и продуктах перед показом ваших акций. У вас должно быть следующее:
- Активный фид товаров в Google Merchant Center .
- Активная лента акций в Google Merchant Center .
- Аккаунт Google Ads для торговых кампаний .
Кроме того, вы должны зарегистрировать свой аккаунт Merchant Center в программе Promotions. Если вы не уверены, зарегистрированы ли вы уже, проверьте Merchant Center .
Если вы не зарегистрированы, заполните форму запроса . Команда по продвижению сообщит вам, когда вы будете готовы начать внедрение.
Более подробную информацию см. в разделе Критерии и правила участия .
Создать источник данных
Вы можете использовать метод accounts.dataSources.create для создания источника данных по акциям. Если существующий источник данных по акциям доступен, используйте метод accounts.dataSources.list
для извлечения всех источников данных. Затем вы можете использовать поле name
источника данных по акциям для создания акций .
Следующий запрос показывает, как создать источник данных для добавления акций:
POST https://merchantapi.googleapis.com/datasources/v1beta/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
и имя источника данных в качестве входных данных. Он возвращает новую или обновленную акцию, если она выполнена успешно.
Создание акции требует имя источника данных . Вы также должны предоставить значения для следующих полей в вашем запросе:
-
contentLanguage
-
redemptionChannel
-
promotionId
-
targetCountry
-
attributes.offerType
-
attributes.genericRedemptionCode
-
attributes.couponValueType
-
attributes.productApplicability
-
attributes.promotionEffectiveTimePeriod.endTime
-
attributes.promotionEffectiveTimePeriod.startTime
-
attributes.longTitle
Google проверяет и одобряет ваши рекламные акции перед их распространением. Для получения дополнительной информации см. Процесс одобрения рекламных акций .
Мы рекомендуем вам ознакомиться с правилами проведения рекламных акций , чтобы убедиться, что создаваемые вами акции имеют ценность и соответствуют правилам в отношении товарных объявлений.
Следующий запрос демонстрирует, как создать онлайн-акцию:
HTTP
POST https://merchantapi.googleapis.com/promotions/v1beta/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/v1beta/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
Информацию о правилах, применяемых к настройке идентификатора рекламной акции, см. в разделе Минимальные требования к атрибуту идентификатора рекламной акции .
Допустимые значения для обязательного поля 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.
Вот пример, который можно использовать для асинхронной вставки нескольких рекламных акций:
Ява
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.v1beta.Attributes;
import com.google.shopping.merchant.promotions.v1beta.CouponValueType;
import com.google.shopping.merchant.promotions.v1beta.InsertPromotionRequest;
import com.google.shopping.merchant.promotions.v1beta.OfferType;
import com.google.shopping.merchant.promotions.v1beta.ProductApplicability;
import com.google.shopping.merchant.promotions.v1beta.Promotion;
import com.google.shopping.merchant.promotions.v1beta.PromotionsServiceClient;
import com.google.shopping.merchant.promotions.v1beta.PromotionsServiceSettings;
import com.google.shopping.merchant.promotions.v1beta.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>");
}
}
Ниже приведены некоторые примеры акций, которые вы можете использовать для начала.
Местная акция, действующая на все продукты и во всех магазинах.
В следующем примере запроса показано, как создать локальную акцию, которая будет применяться ко всем товарам в вашей учетной записи Merchant Center и ко всем магазинам, добавленным в связанную учетную запись вашего бизнес-профиля .
POST https://merchantapi.googleapis.com/promotions/v1beta/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/v1beta/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/v1beta/accounts/{ACCOUNT_ID}/promotions/{PROMOTION_ID}
cURL
curl \
'https://merchantapi.googleapis.com/promotions/v1beta/accounts/{ACCOUNT_ID}/promotions/{PROMOTION_ID}?key=[YOUR_API_KEY]' \
--header 'Authorization: Bearer [YOUR_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/v1beta/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/v1beta/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
, используемое в этом примере, упоминает продукты, которые имеют право на акцию. Для получения дополнительной информации см. Product ID для акции .
Список акций
Для просмотра всех созданных акций можно использовать метод promotions.list
.
Вот пример запроса:
HTTP
GET https://merchantapi.googleapis.com/promotions/v1beta/{ACCOUNT_ID}/promotions
cURL
curl \
'https://merchantapi.googleapis.com/promotions/v1beta/accounts/{ACCOUNT_ID}/promotions?key=[YOUR_API_KEY]' \
--header 'Authorization: Bearer [YOUR_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 Promotions .
- Информацию о переходе с Content API for Shopping см. в разделе Перенос управления акциями .