Présentation de l'API Promotions des marchands

Utilisez des promotions pour présenter des offres spéciales pour les produits que vous vendez sur Google. Ces promotions s'affichent sur plusieurs propriétés Google, dont la recherche Google, Shopping et Chrome.

Lorsque vous ajoutez des promotions à vos produits, un lien "offre spéciale" s'affiche (par exemple, "15% de remise" ou "Livraison gratuite"). Ce type de lien peut accroître l'attractivité de vos produits et inciter les clients à les acheter.

Pour en savoir plus, consultez Principes de base des promotions.

Prérequis

Vous devez nous fournir certaines informations concernant votre entreprise et vos produits pour que nous puissions diffuser vos promotions. Vous devez disposer des éléments suivants:

Vous devez également inscrire votre compte marchand au programme des promotions. Si vous ne savez pas si vous êtes déjà inscrit, consultez Merchant Center.

Si ce n'est pas le cas, remplissez le formulaire de demande. L'équipe chargée des promotions vous contactera dès que vous serez prêt à commencer l'implémentation.

Pour en savoir plus, consultez Règles et critères de participation.

Créer une source de données

Utilisez l'API datasource.create pour créer un flux de promotions. Si un flux de promotion existant est disponible, utilisez la méthode accounts.dataSources.get pour récupérer le nom de la source de données.

La requête se présente comme suit:

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

Exemple

L'exemple montre une requête et une réponse typiques.

Requête :

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

Response:

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

Créer des promotions

Vous pouvez utiliser la méthode accounts.promotions.insert pour créer ou modifier une promotion. La méthode accounts.promotions.insert prend en entrée une ressource promotions et un nom de source de données. Elle renvoie la promotion (nouvelle ou modifiée) si elle aboutit.

Pour créer une promotion, vous devez indiquer le nom de la source de données.

Google examine et approuve vos promotions avant de les diffuser. Pour en savoir plus, consultez le processus d'approbation des promotions.

Forme de la demande:

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

Consultez les exemples de promotions suivants pour référence.

Exemple 1: Promotion locale applicable à tous les produits et à tous les magasins

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

Exemple 2: Promotion en ligne applicable à certains produits avec un code promotionnel

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

Remarques spéciales

Une fois la promotion créée, il peut s'écouler quelques minutes avant qu'elle ne s'affiche dans la base de données Shopping.

Pour obtenir la liste des attributs liés aux promotions, consultez la page Ajouter des attributs pour les données structurées.

Avant de créer et de gérer des promotions, consultez les bonnes pratiques concernant les promotions.

Afficher les promotions

Pour afficher une promotion, utilisez accounts.promotions.get. Cette récupération est en lecture seule. Il nécessite votre merchantId et l'identifiant de la promotion. La méthode get renvoie la ressource de promotions correspondante.

Exemple :

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

Examinez ces exemples.

Exemple 1: Promotion locale

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

Exemple 2. Une promotion en ligne

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

Lister les promotions

Vous pouvez utiliser la méthode promotions.list pour afficher toutes les promotions créées.

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

État de la promotion

Pour connaître l'état d'une promotion, vous pouvez consulter l'attribut promotionStatus renvoyé par promotions.get et promotions.list.

Pour en savoir plus sur le processus d'approbation, consultez Processus d'approbation des promotions.

Exemples d'états de promotion

Les exemples suivants montrent la différence entre les requêtes réussies et celles qui échouent.

Exemple 1. Le corps de réponse suivant montre une promotion en ligne qui serait refusée en raison d'un mappage de produits manquant.

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

Exemple 2. Le corps de réponse suivant montre une promotion qui est toujours en cours d'évaluation.

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

Exemple 3 : Une promotion approuvée et active

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

En savoir plus

Pour en savoir plus, consultez le Centre d'aide sur les promotions.

Pour découvrir comment migrer depuis Content API for Shopping, consultez Migrer la gestion des promotions.