Présentation de l'API Promotions des marchands

Grâce aux promotions, mettez en avant des offres spéciales pour les produits que vous vendez sur Google. Les promotions s'affichent sur différentes propriétés Google, y compris 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"). Les liens d'offres peuvent accroître l'attractivité de vos produits et inciter les clients à les acheter.

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

Conditions préalables

Vous devez nous fournir des informations spécifiques sur votre établissement et vos produits avant de diffuser vos promotions. Vous devez disposer des éléments suivants:

Vous devez également inscrire votre compte marchand au programme 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 promotions existant est disponible, utilisez datasource.get pour récupérer le flux datasource.name.

La requête se présente comme suit:

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

Exemple

Cet exemple présente une requête et une réponse types.

Demande :

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

Solution :

{
  "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 mettre à jour une promotion. La méthode accounts.promotions.insert utilise une ressource promotions et un nom de source de données en entrée. Si l'opération aboutit, elle renvoie la promotion nouvelle ou mise à jour.

Pour créer une promotion, vous devez utiliser l'attribut datasource.name.

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

Format de la requête:

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

Examinez les exemples de promotions suivants pour vous y référer.

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

Exemple 2: Une promotion en ligne applicable à une sélection de 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

Une fois la promotion créée, quelques minutes peuvent s'écouler avant qu'elle soit créée.

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

Avant de créer et de gérer des promotions, consultez les bonnes pratiques en matière de promotions.

Afficher les promotions

Pour afficher une promotion, utilisez accounts.promotions.get. Cette opération "get" est en lecture seule. Vous devez indiquer 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/*}

Étudiez 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"
   },
   "minimum_purchase_quantity": 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 consulter l'état d'une promotion, vous pouvez consulter l'attribut promotionStatus renvoyé par promotions.get et promotions.list.

Pour comprendre le processus d'approbation, consultez Processus d'approbation des promotions.

Exemple d'état 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 affiche 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 affiche une promotion approuvée.

  "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 des promotions.

Pour en savoir plus sur la migration depuis Content API for Shopping, consultez Migrer la gestion des promotions.