Usa promociones para mostrar ofertas especiales de los productos que vendes en Google. Las promociones se muestran en diferentes Propiedades de Google, como la Búsqueda de Google, Shopping y Chrome. Las promociones deben cumplir con ciertos criterios para que se aprueben. Para obtener más información, consulta Criterios de promoción.
Cuando agregas una promoción a tus productos, los compradores ven un vínculo de oferta especial. Por ejemplo, "15% de descuento" o "Envío gratis". Los vínculos de ofertas pueden aumentar el atractivo de tus productos y alentar a los compradores a realizar compras. Todas las promociones se aplican en el momento de la confirmación de compra o en el punto de venta.
Para obtener más información, consulta Conceptos básicos de las promociones.
Requisitos previos
Google requiere que proporciones información específica sobre tu empresa y tus productos antes de que se muestren tus promociones. Debes tener lo siguiente:
- Un feed de productos activo en Google Merchant Center
- Un feed de promociones activo en Google Merchant Center
- Una cuenta de Google Ads para las campañas de Shopping.
Además, debes inscribir tu cuenta de Merchant Center en el programa de Promociones. Si no sabes con certeza si ya te inscribiste, consulta Merchant Center.
Si no te inscribiste, completa el formulario de solicitud. El equipo de promociones te avisará cuando puedas comenzar la implementación.
Para obtener más información, consulta los criterios y políticas de participación.
Cómo crear una fuente de datos
Puedes usar el método accounts.dataSources.create para crear una fuente de datos de promociones. Si hay una fuente de datos de promociones existente disponible, usa el método accounts.dataSources.list
para recuperar todas las fuentes de datos. Luego, puedes usar el campo name
de la fuente de datos de promociones para crear promociones.
En la siguiente solicitud, se muestra cómo crear una fuente de datos para agregar promociones:
POST https://merchantapi.googleapis.com/datasources/v1/accounts/{ACCOUNT_ID}/dataSources
{
"displayName": "{DISPLAY_NAME}",
"promotionDataSource": {
"contentLanguage": "{CONTENT_LANGUAGE}",
"targetCountry": "{TARGET_COUNTRY}"
}
}
Reemplaza lo siguiente:
- {ACCOUNT_ID}: Es el identificador único de tu cuenta tal como aparece en la IU de Merchant Center.
- {DISPLAY_NAME}: Es el nombre visible de la fuente de datos.
- {CONTENT_LANGUAGE}: Código de idioma ISO 639-1 de dos letras de los productos en la fuente de datos.
- {TARGET_COUNTRY}: Es el código de territorio de CLDR del país objetivo en el que deseas que se muestren las promociones.
Después de que la solicitud se ejecute correctamente, verás la siguiente respuesta que contiene detalles sobre la fuente de datos de promociones recién creada:
{
"name": "accounts/{ACCOUNT_ID}/dataSources/{DATASOURCE_ID}",
"dataSourceId": "{DATASOURCE_ID}",
"displayName": "{DISPLAY_NAME}",
"promotionDataSource": {
"targetCountry": "{TARGET_COUNTRY}",
"contentLanguage": "{CONTENT_LANGUAGE}"
},
"input": "API"
}
Crea promociones
Puedes usar el método accounts.promotions.insert
para crear o actualizar una promoción. El método accounts.promotions.insert
toma un recurso promotions
y un nombre de fuente de datos como entrada. Si la operación se realiza correctamente, devuelve la promoción nueva o actualizada.
Para crear una promoción, se requiere el nombre de la fuente de datos. También debes proporcionar valores para los siguientes campos en tu solicitud:
contentLanguage
redemptionChannel
promotionId
targetCountry
attributes.offerType
attributes.genericRedemptionCode
attributes.couponValueType
attributes.productApplicability
attributes.promotionEffectiveTimePeriod.endTime
attributes.promotionEffectiveTimePeriod.startTime
attributes.longTitle
Google revisa y aprueba tus promociones antes de distribuirlas. Para obtener más información, consulta Proceso de aprobación de promociones.
Te recomendamos que revises las políticas de promociones para asegurarte de que las promociones que crees agreguen valor y cumplan con las políticas de los anuncios de Shopping.
En la siguiente solicitud, se muestra cómo crear una promoción en línea:
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
Para obtener información sobre las reglas aplicables a la configuración de tu ID de promoción, consulta Requisitos mínimos para el atributo ID de promoción.
Los valores válidos para el campo obligatorio offerType
son NO_CODE
y GENERIC_CODE
. Si no proporcionas uno de estos valores, la solicitud a la API falla con la respuesta HTTP 400 [offer_type] validation/missing_required: Invalid or
missing required attribute: offer_type
. Se devuelve un mensaje de error similar si no proporcionas ninguno de los campos obligatorios.
Si no proporcionas un valor para el campo attributes.genericRedemptionCode
, la solicitud fallará con la respuesta HTTP 400 [genericRedemptionCode] No
redemption code provided
.
Los valores de los campos promotion.attributes.promotionDisplayTimePeriod.startTime
y promotion.attributes.promotionDisplayTimePeriod.endTime
deben tener el formato yyyy-mm-ddThh:mm:ssZ
. Asegúrate de reemplazar los valores de estos campos por fechas futuras.
Para obtener más información, consulta la especificación de los datos de promociones.
Para conocer las prácticas recomendadas sobre cómo crear una promoción, consulta Prácticas recomendadas para las promociones.
Para obtener una lista de los atributos relacionados con las promociones, consulta Agrega atributos de datos estructurados.
Después de que se ejecute correctamente la solicitud de creación de la promoción, es posible que la promoción tarde unos minutos en recuperarse con la API o en aparecer en Merchant Center.
Aquí tienes un ejemplo que puedes usar para insertar varias promociones de forma asíncrona:
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>");
}
}
A continuación, se incluyen algunas promociones de ejemplo que puedes usar para comenzar.
Es una promoción local aplicable a todos los productos y todas las tiendas.
En la siguiente solicitud de ejemplo, se muestra cómo crear una promoción local que se aplica a todos los productos de tu cuenta de Merchant Center y a todas las tiendas agregadas en tu cuenta vinculada del Perfil de Negocio.
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}"
}
El campo productApplicability
es obligatorio. Indica si la promoción se aplica a todos los productos o solo a algunos específicos. Los valores admitidos son ALL_PRODUCTS
y SPECIFIC_PRODUCTS
. Para obtener más información, consulta Cómo elegir productos para tu promoción.
El campo couponValueType
es obligatorio. Indica el tipo de promoción que publicas. Para obtener la lista de valores admitidos, consulta Tipo de valor del cupón. Según el tipo de valor del cupón que seleccionaste, algunos atributos son obligatorios.
El campo minimumPurchaseQuantity
te permite establecer el valor de la cantidad mínima de compra que se requiere para canjear la oferta de promoción. Para obtener más información, consulta Cantidad mínima de compra para la promoción.
Del mismo modo, puedes usar el campo minimumPurchaseAmount
para establecer el importe mínimo de compra que se requiere para canjear la promoción. Para obtener más información, consulta Importe mínimo de compra.
Para obtener más información sobre los valores que debes proporcionar para crear una promoción local, consulta Especificaciones de la fuente de datos para promociones locales.
Una promoción en línea que se aplica a productos seleccionados con un código de canje
En la siguiente solicitud de ejemplo, se muestra cómo crear una promoción en línea que se aplica a productos seleccionados con un código de canje.
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"
}
Ver promociones
Para ver una promoción, usa accounts.promotions.get
.
Esta solicitud GET
es de solo lectura. Requiere tu merchantId
y el ID de la promoción. El método GET
devuelve el recurso de promociones correspondiente.
Por ejemplo:
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
Reemplaza lo siguiente:
- {ACCOUNT_ID}: Es el identificador único de tu cuenta de Merchant Center.
- {PROMOTION_ID}: Es el identificador único de la promoción que deseas recuperar. El formato es {CHANNEL} ~{CONTENT_LANGUAGE}~{TARGET_COUNTRY}~{PROMOTION_ID} .
Ten en cuenta que una promoción recién creada tarda unos minutos en recuperarse con la API.
Cómo ver una promoción local
La siguiente solicitud de ejemplo recupera una promoción local cuyo ID de promoción es 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
Después de que la solicitud se realice correctamente, verás la siguiente respuesta:
{
"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"
}
El campo moneyOffAmount
de este ejemplo proporciona el descuento que se ofrece en la promoción. Para obtener más información, consulta Importe del descuento monetario de una promoción.
El campo promotionUrl
de este ejemplo proporciona el vínculo al sitio web de la tienda en el que los compradores pueden encontrar más información sobre la promoción. Las promociones de anuncios del inventario local muestran un error si no incluyes el campo promotionUrl
.
Ver una promoción en línea
La siguiente solicitud de ejemplo recupera una promoción en línea cuyo ID de promoción es 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}"
}
El campo itemIdInclusion
que se usa en este ejemplo menciona los productos que son aptos para la promoción. Para obtener más información, consulta ID del producto para la promoción.
Enumera las promociones
Puedes usar el método promotions.list
para ver todas las promociones creadas.
A continuación, se muestra una solicitud de ejemplo:
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
La respuesta contiene la lista de todas las promociones de tu cuenta. En cada promoción, puedes ver detalles como el promotionId
, el redemptionChannel
, el dataSource
, el promotionStatus
y mucho más.
Cómo ver el estado de una promoción
Para ver el estado de una promoción, consulta el atributo promotionStatus
que muestran los métodos promotions.get
o promotions.list
.
El campo promotionStatus
puede tener los siguientes valores:
IN_REVIEW
: La promoción aún está en revisión.REJECTED
: Se rechazó la promoción.LIVE
: La promoción está aprobada y activa.STOPPED
: La cuenta detuvo la promoción.EXPIRED
: La promoción ya no está activa.PENDING
: La promoción no se detuvo, y se aprobaron todas las revisiones, pero la fecha de activación es en el futuro.STATE_UNSPECIFIED
: Estado de promoción desconocido.
Para comprender el proceso de aprobación de una promoción que creaste, consulta el proceso de aprobación de promociones.
Ejemplo de estado de la promoción
En los siguientes ejemplos, se muestra la diferencia entre las solicitudes exitosas y las que fallan.
Falta la asignación del producto
En el siguiente cuerpo de respuesta, se muestra una promoción en línea que se rechazó debido a que falta la asignación del producto.
"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"
]
}
]
}
Para solucionar problemas relacionados con las promociones rechazadas y obtener información sobre cómo evitar rechazos en el futuro, consulta Cómo solucionar problemas relacionados con promociones rechazadas.
Si no se aprueba una promoción que creaste, recibirás un correo electrónico en el que se mencionará el motivo del rechazo y las instrucciones para solucionar los problemas.
Promoción en evaluación
El siguiente cuerpo de respuesta muestra una promoción que aún se está evaluando.
"promotionStatus": {
"destinationStatuses": [
{
"reportingContext": "FREE_LISTINGS",
"status": "PENDING"
},
{
"destination": "SHOPPING_ADS",
"status": "PENDING"
}
],
"itemLevelIssues": []
}
Una promoción aprobada y publicada
El siguiente cuerpo de respuesta muestra una promoción que es visible para los compradores.
"promotionStatus": {
"destinationStatuses": [
{
"reportingContext": "FREE_LISTINGS",
"status": "LIVE"
},
{
"destination": "SHOPPING_ADS",
"status": "LIVE"
} ],
"itemLevelIssues": []
}
Para obtener más información, consulta las Preguntas frecuentes sobre el estado de las promociones.
Borrar promociones
No es posible borrar una promoción con la API. Para borrar una promoción, deberás acceder a la IU de Merchant Center. Para obtener más información, consulta Cómo editar una promoción o cambiar su estado.
Para finalizar una promoción existente, puedes usar el método accounts.promotions.insert para actualizar el campo attributes.promotionEffectiveTimePeriod.endTime
a una hora anterior.
Más información
- Para obtener más detalles, consulta el Centro de ayuda de Promociones.
- Para solucionar problemas comunes, consulta Soluciona problemas relacionados con la sub-API de Promociones.
- Para obtener información sobre la migración desde Content API for Shopping, consulta Migra la administración de promociones.