Descripción general de la API de Promociones

Usa promociones para mostrar ofertas especiales de productos que vendes en Google. Las promociones se muestran en diferentes Propiedades de Google, como la Búsqueda de Google, Shopping y Chrome.

Cuando agregas promociones 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 tus productos y motivar a los compradores a realizar una compra.

Para obtener más información, consulta el artículo Promoción conceptos básicos.

Requisitos previos

Google necesita que proporciones información específica sobre tu empresa y productos antes de mostrar sus promociones. Debes contar con lo siguiente:

Además, debe inscribir su cuenta de comerciante en el programa Promociones. Si si no sabes si ya te inscribiste, consulta el vínculo Comercio Center.

Si no te inscribiste, completa la solicitud formulario. El del equipo de promociones te avisará cuando tengas todo listo para comenzar con la implementación.

Para obtener más información, consulta el artículo Criterios de participación y políticas.

Cómo crear una fuente de datos

Usa la API de datasource.create para crear un feed de promociones. Si un cliente El feed de promociones está disponible. Usa datasource.get para obtener la datasource.name

La forma de la solicitud es la siguiente:

POST https://merchantapi.googleapis.com/promotions/v1beta/accounts/{account}/dataSources/{datasource}

Ejemplo

El ejemplo muestra una solicitud y una respuesta típicas.

Solicitud:

POST https://merchantapi.googleapis.com/datasources/v1beta/accounts/123/dataSources {"displayName": "test api feed", "promotionDataSource":{"targetCountry":"US", "contentLanguage":"en"}}

Respuesta:

{
  "name": "accounts/123/dataSources/1000000573361824",
  "dataSourceId": "1000000573361824",
  "displayName": "test api feed",
  "promotionDataSource": {
    "targetCountry": "US",
    "contentLanguage": "en"
  },
  "input": "API"
}

Crea promociones

Puedes usar la accounts.promotions.insert método 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. Devuelve el promoción nueva o actualizada si se realiza correctamente.

Para crear una promoción, se requiere datasource.name.

Google revisa y aprueba tus promociones antes de distribuirlas. Para ver más consulta Aprobación de promociones .

El formato de la solicitud:

POST https://merchantapi.googleapis.com/promotions/v1beta/{parent=accounts/*/}promotions:insert

Estudia los siguientes ejemplos de promociones como referencia.

Ejemplo 1: Un objeto Local promocional aplicable a todos los productos y todas las tiendas

POST https://merchantapi.googleapis.com/promotions/v1beta/accounts/123/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"
      },
      "minimum_purchase_quantity": 2,
      "storeApplicability": "ALL_STORES",
      "promotionUrl": "http://promotionnew4url.com/",
      "promotionDestinations": [
        "LOCAL_INVENTORY_ADS"
      ],
    }
  },
  "dataSource": "accounts/123/dataSources/1000000573361824"
}

Ejemplo 2: Una promoción en línea que se aplica a productos seleccionados con un canje código

POST https://merchantapi.googleapis.com/promotions/v1beta/accounts/123/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/123/dataSources/1000000573361824"
}

Notas especiales

Después de crearla, es posible que tarde unos minutos en crearla.

Para obtener una lista de atributos relacionados con las promociones, consulta Agrega datos estructurados. atributos.

Antes de crear y administrar promociones, consulta Las promociones Prácticas recomendadas.

Ver promociones

Para ver una promoción, usa accounts.promotions.get Este get es de solo lectura. Requiere tu merchantId y el ID de la promociones. El método get muestra el recurso de promociones correspondiente.

Por ejemplo:

GET https://merchantapi.googleapis.com/promotions/v1beta/{name=accounts/*/promotions/*}

Estudia estas muestras.

Ejemplo 1: Una promoción local

GET https://merchantapi.googleapis.com/promotions/v1beta/accounts/123/promotions/in_store~en~US~buy_2_get_10_off

{
 "name": "accounts/123/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"
   },
   "minimum_purchase_quantity": 2,
   "storeApplicability": "ALL_STORES",
   "promotionUrl": "http://promotionnew4url.com/",
   "promotionDestinations": [
     "LOCAL_INVENTORY_ADS"
   ],
 }
 "dataSource": "accounts/123/dataSources/1000000573361824"
}

Ejemplo 2: Una promoción en línea

GET https://merchantapi.googleapis.com/promotions/v1beta/accounts/123/promotions/online~en~US~25_pct_off
{
 "name": "accounts/123/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}/dataSources/{dataSource}"
}

Mostrar promociones

Puedes usar la promotions.list para ver todas las promociones creadas.

GET https://merchantapi.googleapis.com/promotions/v1beta/{parent=accounts/*}/promotions

Estado de la promoción

Para ver el estado de una promoción, puedes consultar el atributo promotionStatus. devuelto por promotions.get y promotions.list.

Para comprender el proceso de aprobación, consulta Aprobación de promociones. .

Estado de promoción de muestra

En los siguientes ejemplos, se demuestra la diferencia entre la ejecución correcta y la falla solicitudes.

Ejemplo 1: El siguiente cuerpo de respuesta muestra una promoción en línea que sería se rechazó debido a que falta la asignación de productos.

  "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"
        ]
      }
    ]
  }

Ejemplo 2: El siguiente cuerpo de la respuesta muestra una promoción aprobada.

  "promotionStatus": {
    "destinationStatuses": [
      {
        "reportingContext": "FREE_LISTINGS",
        "status": "PENDING"
      },
      {
        "destination": "SHOPPING_ADS",
        "status": "PENDING"
      }
    ],
    "itemLevelIssues": []
  }

Ejemplo 3: Una promoción aprobada y publicada

  "promotionStatus": {
    "destinationStatuses": [
      {
        "reportingContext": "FREE_LISTINGS",
        "status": "LIVE"
      },
      {
        "destination": "SHOPPING_ADS",
        "status": "LIVE"
 }  ],
    "itemLevelIssues": []
  }

Más información

Para obtener más información, consulta la Ayuda de promociones Center.

Para obtener más información sobre cómo migrar desde Content API for Shopping, consulte Cómo migrar promociones. de la administración.