Panoramica della sottoAPI Promotions

Utilizza le promozioni per mettere in evidenza le offerte speciali per i prodotti che vendi su Google. Le promozioni vengono visualizzate su diverse proprietà di Google, tra cui la Ricerca Google, Shopping e Chrome. Per essere approvate, le promozioni devono soddisfare determinati criteri. Per maggiori informazioni, consulta Criteri di promozione.

Quando aggiungi una promozione ai tuoi prodotti, gli acquirenti visualizzano un link che rimanda a un'offerta speciale. Ad esempio, "Sconto del 15%" o "Spedizione gratuita". I link alle offerte possono aumentare l'interesse nei confronti dei tuoi prodotti e incoraggiare gli acquirenti a effettuare un acquisto. Tutte le promozioni vengono applicate al momento del pagamento o presso il point of sale.

Per ulteriori informazioni, vedi Nozioni di base sulle promozioni.

Prerequisiti

Prima di poter mostrare le tue promozioni, Google ha bisogno che tu fornisca una serie di informazioni specifiche sulla tua attività e sui tuoi prodotti. Devi disporre di quanto segue:

Inoltre, devi registrare il tuo account Merchant Center al programma Promozioni. Se non hai la certezza di aver già effettuato la registrazione, controlla Merchant Center.

Se non hai eseguito la registrazione, compila il modulo di richiesta. Il team del programma Promozioni ti avviserà quando è tutto pronto per iniziare l'implementazione.

Per saperne di più, consulta Criteri e norme di partecipazione.

Creare un'origine dati

Puoi utilizzare il metodo accounts.dataSources.create per creare un'origine dati delle promozioni. Se è disponibile un'origine dati delle promozioni esistente, utilizza il metodo accounts.dataSources.list per recuperare tutte le origini dati. Puoi quindi utilizzare il campo name dell'origine dati delle promozioni per creare promozioni.

La seguente richiesta mostra come creare un'origine dati per l'aggiunta di promozioni:

POST https://merchantapi.googleapis.com/datasources/v1/accounts/{ACCOUNT_ID}/dataSources

{
  "displayName": "{DISPLAY_NAME}",
  "promotionDataSource": {
    "contentLanguage": "{CONTENT_LANGUAGE}",
    "targetCountry": "{TARGET_COUNTRY}"
  }
}

Sostituisci quanto segue:

  • {ACCOUNT_ID}: l'identificatore univoco del tuo account visualizzato nell'interfaccia utente di Merchant Center.
  • {DISPLAY_NAME}: il nome visualizzato dell'origine dati.
  • {CONTENT_LANGUAGE}: il codice lingua ISO 639-1 a due lettere dei prodotti nell'origine dei dati.
  • {TARGET_COUNTRY}: il codice di territorio CLDR del paese di destinazione in cui vuoi che le promozioni siano visibili.

Dopo l'esecuzione corretta della richiesta, viene visualizzata la seguente risposta che contiene i dettagli della nuova origine dati delle promozioni creata:

{
  "name": "accounts/{ACCOUNT_ID}/dataSources/{DATASOURCE_ID}",
  "dataSourceId": "{DATASOURCE_ID}",
  "displayName": "{DISPLAY_NAME}",
  "promotionDataSource": {
    "targetCountry": "{TARGET_COUNTRY}",
    "contentLanguage": "{CONTENT_LANGUAGE}"
  },
  "input": "API"
}

Crea promozioni

Puoi utilizzare il metodo accounts.promotions.insert per creare o aggiornare una promozione. Il metodo accounts.promotions.insert accetta come input una risorsa promotions e un nome dell'origine dati. In caso di esito positivo, restituisce la promozione nuova o aggiornata.

Per creare una promozione è necessario il nome dell'origine dati. Devi inoltre fornire i valori per i seguenti campi nella tua richiesta:

  • contentLanguage
  • redemptionChannel
  • promotionId
  • targetCountry
  • attributes.offerType
  • attributes.genericRedemptionCode
  • attributes.couponValueType
  • attributes.productApplicability
  • attributes.promotionEffectiveTimePeriod.endTime
  • attributes.promotionEffectiveTimePeriod.startTime
  • attributes.longTitle

Google esamina e approva le promozioni prima di distribuirle. Per maggiori informazioni, consulta Procedura di approvazione delle promozioni.

Ti consigliamo di consultare le norme relative alle promozioni per assicurarti che le promozioni che crei aggiungano valore e rispettino le norme degli annunci Shopping.

La seguente richiesta mostra come creare una promozione online:

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

Per informazioni sulle regole applicabili all'impostazione dell'ID promozione, consulta Requisiti minimi per l'attributo ID promozione.

I valori validi per il campo obbligatorio offerType sono NO_CODE e GENERIC_CODE. Se non fornisci uno di questi valori, la richiesta API non va a buon fine con la risposta HTTP 400 [offer_type] validation/missing_required: Invalid or missing required attribute: offer_type. Se non fornisci nessuno dei campi obbligatori, viene restituito un messaggio di errore simile.

Se non fornisci un valore per il campo attributes.genericRedemptionCode, la richiesta non va a buon fine e viene restituita la risposta HTTP 400 [genericRedemptionCode] No redemption code provided.

I valori dei campi promotion.attributes.promotionDisplayTimePeriod.startTime e promotion.attributes.promotionDisplayTimePeriod.endTime devono essere nel formato yyyy-mm-ddThh:mm:ssZ. Assicurati di sostituire i valori di questi campi con date future.

Per maggiori informazioni, consulta la specifica dei dati delle promozioni.

Per le best practice sulla creazione di una promozione, consulta Best practice per le promozioni.

Per un elenco degli attributi correlati alle promozioni, consulta Aggiungere attributi dei dati strutturati.

Dopo l'esecuzione corretta della richiesta di creazione della promozione, possono essere necessari alcuni minuti prima che la promozione possa essere recuperata utilizzando l'API o visualizzata in Merchant Center.

Ecco un esempio che puoi utilizzare per inserire più promozioni in modo asincrono:

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

Di seguito sono riportate alcune promozioni di esempio che puoi utilizzare per iniziare.

Una promozione locale applicabile a tutti i prodotti e a tutti i negozi

La seguente richiesta di esempio mostra come creare una promozione locale applicabile a tutti i prodotti nel tuo account Merchant Center e a tutti i negozi aggiunti nel tuo account Profilo dell'attività collegato.

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

Il campo productApplicability è obbligatorio. Indica l'applicabilità della promozione a tutti i prodotti o solo a prodotti specifici. I valori supportati sono ALL_PRODUCTS e SPECIFIC_PRODUCTS. Per saperne di più, vedi Scegliere i prodotti per la promozione.

Il campo couponValueType è obbligatorio. Indica il tipo di promozione che stai offrendo. Per l'elenco dei valori supportati, vedi Tipo di valore del coupon. A seconda del tipo di valore del coupon selezionato, alcuni attributi sono obbligatori.

Il campo minimumPurchaseQuantity ti consente di impostare il valore per la quantità minima di acquisto richiesta per utilizzare l'offerta promozionale. Per ulteriori informazioni, consulta Quantità minima di acquisto per la promozione.

Allo stesso modo, puoi utilizzare il campo minimumPurchaseAmount per impostare l'importo minimo di acquisto necessario per utilizzare la promozione. Per maggiori informazioni, consulta la pagina Importo minimo di acquisto.

Per saperne di più sui valori che devi fornire per creare una promozione locale, consulta Specifiche delle origini dati per le promozioni locali.

Una promozione online applicata a prodotti selezionati con un codice promozionale

La seguente richiesta di esempio mostra come creare una promozione online che si applica a prodotti selezionati con un codice promozionale.

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

Visualizza le promozioni

Per visualizzare una promozione, utilizza accounts.promotions.get. Questa richiesta di GET è di sola lettura. Richiede il tuo merchantId e l'ID della promozione. Il metodo GET restituisce la risorsa delle promozioni corrispondente.

Ad esempio:

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

Sostituisci quanto segue:

  • {ACCOUNT_ID}: l'identificatore univoco del tuo account Merchant Center.
  • {PROMOTION_ID}: L'identificatore univoco della promozione che vuoi recuperare. Il formato è {CHANNEL} ~{CONTENT_LANGUAGE}~ {TARGET_COUNTRY}~{PROMOTION_ID} .

Tieni presente che sono necessari alcuni minuti prima che una promozione appena creata possa essere recuperata utilizzando l'API.

Visualizzare una promozione locale

La seguente richiesta di esempio recupera una promozione locale il cui ID promozione è 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

Se la richiesta ha esito positivo, viene visualizzata la seguente risposta:

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

Il campo moneyOffAmount in questo esempio fornisce lo sconto offerto nella promozione. Per saperne di più, consulta la sezione Importo dello sconto monetario di una promozione.

Il campo promotionUrl in questo esempio fornisce il link al sito web del negozio dove gli acquirenti possono trovare maggiori informazioni sulla promozione. Le promozioni degli annunci di inventario locale restituiscono un errore se non includi il campo promotionUrl.

Visualizzare una promozione online

La seguente richiesta di esempio recupera una promozione online il cui ID promozione è 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}"
}

Il campo itemIdInclusion utilizzato in questo esempio menziona i prodotti idonei per la promozione. Per ulteriori informazioni, consulta ID prodotto per la promozione.

Elenco promozioni

Puoi utilizzare il metodo promotions.list per visualizzare tutte le promozioni create.

Ecco una richiesta di esempio:

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 risposta contiene l'elenco di tutte le promozioni nel tuo account. Per ogni promozione, puoi visualizzare dettagli come promotionId, redemptionChannel, dataSource, promotionStatus e altro ancora.

Visualizzare lo stato di una promozione

Per visualizzare lo stato di una promozione, consulta l'attributo promotionStatus restituito dal metodo promotions.get o promotions.list.

Il campo promotionStatus può avere i seguenti valori:

  • IN_REVIEW: La promozione è ancora in fase di revisione.
  • REJECTED: La promozione è stata disapprovata.
  • LIVE: La promozione è approvata e attiva.
  • STOPPED: La promozione è stata interrotta dall'account.
  • EXPIRED: la promozione non è più attiva.
  • PENDING: La promozione non è stata interrotta e tutte le recensioni sono approvate, ma la data di attivazione è futura.
  • STATE_UNSPECIFIED: Stato della promozione sconosciuto.

Per comprendere la procedura di approvazione di una promozione che hai creato, consulta Procedura di approvazione delle promozioni.

Stato della promozione di esempio

Gli esempi seguenti mostrano la differenza tra richieste riuscite e non riuscite.

Mappatura dei prodotti mancante

Il seguente corpo della risposta mostra una promozione online non approvata a causa della mappatura dei prodotti mancante.

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

Per risolvere i problemi relativi alle promozioni non approvate e scoprire come evitare future disapprovazioni, consulta Risolvere i problemi relativi alle promozioni non approvate.

Se una promozione che hai creato non viene approvata, riceverai un'email che indica il motivo del rifiuto e le istruzioni per risolvere i problemi.

Promozione in corso di valutazione

Il seguente corpo della risposta mostra una promozione in fase di valutazione.

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

Una promozione approvata e pubblicata

Il seguente corpo della risposta mostra una promozione visibile agli acquirenti.

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

Per saperne di più, consulta le Domande frequenti sullo stato delle promozioni.

Eliminare le promozioni

Non è possibile eliminare una promozione utilizzando l'API. Per eliminare una promozione, devi accedere all'interfaccia utente di Merchant Center. Per ulteriori informazioni, vedi Modificare una promozione o il suo stato.

Per terminare una promozione esistente, puoi utilizzare il metodo accounts.promotions.insert per aggiornare il campo attributes.promotionEffectiveTimePeriod.endTime a un orario nel passato.

Scopri di più