Mit Angeboten können Sie Sonderangebote für Produkte präsentieren, die Sie auf Google verkaufen. Angebote werden auf verschiedenen Google-Plattformen wie der Google Suche, Shopping und Chrome angezeigt. Angebote müssen bestimmte Kriterien erfüllen, um genehmigt zu werden. Weitere Informationen finden Sie unter Kriterien für Angebote .
Wenn Sie Ihren Produkten ein Angebot hinzufügen, sehen Käufer einen Link zu einem Sonderangebot. Beispiel: „15% Rabatt“ oder „Kostenloser Versand“. Angebotslinks können die Attraktivität Ihrer Produkte steigern und Käufer zum Kauf anregen. Alle Angebote werden an der Kasse angewendet.
Weitere Informationen finden Sie unter Grundlagen zu Angeboten.
Vorbereitung
Google benötigt bestimmte Informationen zu Ihrem Unternehmen und zu Ihren Produkten, bevor Ihre Angebote angezeigt werden können. Sie benötigen Folgendes:
- Einen aktiven Produkt feed im Google Merchant Center.
- Einen aktiven Angebots feed im Google Merchant Center.
- Ein Google Ads-Konto für Shopping -Kampagnen.
Außerdem müssen Sie Ihr Merchant Center-Konto für das Angebotsprogramm registrieren. Wenn Sie nicht sicher sind, ob Sie bereits registriert sind, prüfen Sie das im Merchant Center.
Wenn Sie nicht registriert sind, füllen Sie das Antrags formular aus. Das Promotions-Team informiert Sie, sobald Sie mit der Implementierung beginnen können.
Weitere Informationen finden Sie unter Teilnahmekriterien und Richtlinien.
Datenquelle erstellen
Mit der
accounts.dataSources.create
Methode können Sie eine Angebotsdatenquelle erstellen. Wenn eine vorhandene Angebotsdatenquelle
verfügbar ist, rufen Sie mit der
accounts.dataSources.list
Methode alle Datenquellen ab. Anschließend können Sie mit dem Feld name der
Angebotsdatenquelle Angebote erstellen.
Die folgende Anfrage zeigt, wie Sie eine Datenquelle zum Hinzufügen von Angeboten erstellen:
POST https://merchantapi.googleapis.com/datasources/v1/accounts/{ACCOUNT_ID}/dataSources
{
"displayName": "{DISPLAY_NAME}",
"promotionDataSource": {
"contentLanguage": "{CONTENT_LANGUAGE}",
"targetCountry": "{TARGET_COUNTRY}"
}
}
Ersetzen Sie Folgendes:
- {ACCOUNT_ID}: Die eindeutige Kennung Ihres Kontos, wie sie in der Merchant Center-Benutzeroberfläche angezeigt wird.
- {DISPLAY_NAME}: Der Anzeigename der Daten quelle.
- {CONTENT_LANGUAGE}: Der zweistellige ISO 639-1 Sprachcode der Produkte in der Datenquelle.
- {TARGET_COUNTRY}: Der CLDR-Ländercode des Ziellands, in dem die Angebote sichtbar sein sollen.
Nachdem die Anfrage erfolgreich ausgeführt wurde, sehen Sie die folgende Antwort mit Details zur neu erstellten Angebotsdatenquelle:
{
"name": "accounts/{ACCOUNT_ID}/dataSources/{DATASOURCE_ID}",
"dataSourceId": "{DATASOURCE_ID}",
"displayName": "{DISPLAY_NAME}",
"promotionDataSource": {
"targetCountry": "{TARGET_COUNTRY}",
"contentLanguage": "{CONTENT_LANGUAGE}"
},
"input": "API"
}
Angebote erstellen
Mit der
accounts.promotions.insert
Methode können Sie ein Angebot erstellen oder aktualisieren. Die Methode accounts.promotions.insert
verwendet eine
promotions
Ressource und einen Datenquellennamen als Eingabe. Bei Erfolg wird das neue oder aktualisierte Angebot zurückgegeben.
Zum Erstellen eines Angebots ist der Name der Daten quelle erforderlich. Außerdem müssen Sie in Ihrer Anfrage Werte für die folgenden Felder angeben:
contentLanguageredemptionChannelpromotionIdtargetCountryattributes.offerTypeattributes.genericRedemptionCodeattributes.couponValueTypeattributes.productApplicabilityattributes.promotionEffectiveTimePeriod.endTimeattributes.promotionEffectiveTimePeriod.startTimeattributes.longTitle
Google überprüft, ob Ihre Angebote den Richtlinien entsprechen, bevor sie veröffentlicht werden. Weitere Informationen finden Sie unter Freigabeprozess für Angebote.
Wir empfehlen Ihnen, die Angebots richtlinien zu lesen, um sicherzustellen, dass die von Ihnen erstellten Angebote einen Mehrwert bieten und den Richtlinien für Shopping-Anzeigen entsprechen.
Die folgende Anfrage zeigt, wie Sie ein Onlineangebot erstellen:
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
Informationen zu den Regeln für die Festlegung Ihrer Angebots-ID finden Sie unter Mindestanforderungen für das Attribut „Angebots-ID“.
Die gültigen Werte für das Pflichtfeld offerType sind NO_CODE und GENERIC_CODE. Wenn Sie keinen dieser Werte angeben, schlägt die API-Anfrage
mit der HTTP 400-Antwort [offer_type] validation/missing_required: Invalid or
missing required attribute: offer_type fehl. Eine ähnliche Fehlermeldung wird zurückgegeben, wenn Sie keine der Pflichtfelder angeben.
Wenn Sie keinen Wert für das attributes.genericRedemptionCode Feld angeben,
schlägt die Anfrage mit der HTTP 400-Antwort [genericRedemptionCode] No
redemption code provided fehl.
Die Werte für die Felder promotion.attributes.promotionDisplayTimePeriod.startTime und promotion.attributes.promotionDisplayTimePeriod.endTime müssen im Format yyyy-mm-ddThh:mm:ssZ angegeben werden. Ersetzen Sie die Werte für diese Felder durch Daten, die in der Zukunft liegen.
Weitere Informationen finden Sie unter Spezifikation der Angebotsdaten.
Best Practices zum Erstellen eines Angebots finden Sie unter Best Practices für Angebote.
Eine Liste der angebotsbezogenen Attribute finden Sie unter Attribute für strukturierte Daten hinzufügen.
Nachdem die Anfrage zum Erstellen eines Angebots erfolgreich ausgeführt wurde, kann es einige Minuten dauern, bis das Angebot über die API abgerufen oder im Merchant Center angezeigt werden kann.
Hier ist ein Beispiel, mit dem Sie mehrere Angebote asynchron einfügen können:
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.api.gax.grpc.InstantiatingGrpcChannelProvider;
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();
// Creates a channel provider. This provider manages a pool of gRPC channels
// to enhance throughput for bulk operations. Each individual channel in the pool
// can handle up to approximately 100 concurrent requests.
//
// Channel: A single connection pathway to the service.
// Pool: A collection of multiple channels managed by this provider.
// Requests are distributed across the channels in the pool.
//
// We recommend estimating the number of concurrent requests you'll make, divide by 50 (50%
// utilization of channel capacity), and set the pool size to that number.
InstantiatingGrpcChannelProvider channelProvider =
InstantiatingGrpcChannelProvider.newBuilder().setPoolSize(30).build();
PromotionsServiceSettings merchantPromotionsServiceSettings =
PromotionsServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credential))
.setTransportChannelProvider(channelProvider)
.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>");
}
}
Im Folgenden finden Sie einige Beispielangebote, die Ihnen den Einstieg erleichtern.
Ein lokales Angebot, das für alle Produkte und alle Geschäfte gilt
Die folgende Beispielanfrage zeigt, wie Sie ein lokales Angebot erstellen, das für alle Produkte in Ihrem Merchant Center-Konto und alle Geschäfte gilt, die in Ihrem verknüpften Unternehmensprofil Konto hinzugefügt wurden.
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}"
}
Das Feld productApplicability ist erforderlich. Es gibt an, ob das Angebot für alle oder nur für bestimmte Produkte gilt. Die unterstützten Werte sind ALL_PRODUCTS und SPECIFIC_PRODUCTS. Weitere Informationen finden Sie unter Produkte für Ihr Angebot auswählen.
Das Feld couponValueType ist erforderlich. Es gibt den Typ des Angebots an, das Sie ausführen. Eine Liste der unterstützten Werte finden Sie unter Gutscheinwert
typ. Je nach ausgewähltem Typ des
Gutscheinwerts, sind einige Attribute
erforderlich.
Mit dem Feld minimumPurchaseQuantity können Sie den Wert für die Mindestbestellmenge festlegen, die erforderlich ist, um das Angebot einzulösen. Weitere Informationen finden Sie unter Mindestbestellmenge für
Angebot.
Ebenso können Sie mit dem Feld minimumPurchaseAmount den Mindestbestellwert festlegen, der erforderlich ist, um das Angebot einzulösen. Weitere Informationen finden Sie unter Mindestbestellwert.
Weitere Informationen zu den Werten, die Sie zum Erstellen eines lokalen Angebots angeben müssen, finden Sie unter Spezifikationen der Datenquelle für lokale Angebote.
Ein Onlineangebot, das für ausgewählte Produkte mit einem Einlösungscode gilt
Die folgende Beispielanfrage zeigt, wie Sie ein Onlineangebot erstellen, das für ausgewählte Produkte mit einem Einlösungscode gilt.
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"
}
Werbeaktionen ansehen
Verwenden Sie
accounts.promotions.get, um ein Angebot aufzurufen.
Diese GET-Anfrage ist schreibgeschützt. Sie erfordert Ihre merchantId und die ID des Angebots. Die Methode GET gibt die entsprechende Angebotsressource zurück.
Beispiel:
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
Ersetzen Sie Folgendes:
- {ACCOUNT_ID}: Die eindeutige Kennung Ihres Merchant Center-Kontos.
- {PROMOTION_ID}: Die eindeutige Kennung des Angebots, das Sie abrufen möchten. Das Format ist {CHANNEL} ~{CONTENT_LANGUAGE}~ {TARGET_COUNTRY}~{PROMOTION_ID} .
Es dauert einige Minuten, bis ein neu erstelltes Angebot über die API abgerufen werden kann.
Lokales Angebot ansehen
Die folgende Beispielanfrage ruft ein lokales Angebot ab, dessen Angebots-ID in_store~en~US~buy_2_get_10_off ist.
GET https://merchantapi.googleapis.com/promotions/v1/accounts/{ACCOUNT_ID}/promotions/in_store~en~US~buy_2_get_10_off
Nachdem die Anfrage erfolgreich war, sehen Sie die folgende Antwort:
{
"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"
}
Das Feld moneyOffAmount in diesem Beispiel enthält den Rabatt, der im Angebot enthalten ist. Weitere Informationen finden Sie unter Geldwertrabatt eines
Angebots.
Das Feld promotionUrl in diesem Beispiel enthält den Link zur Website des Geschäfts, auf der Käufer weitere Informationen zum Angebot finden. Bei Angeboten für Anzeigen für lokales Inventar wird ein Fehler zurückgegeben, wenn Sie das Feld promotionUrl nicht angeben.
Onlineangebot ansehen
Die folgende Beispielanfrage ruft ein Onlineangebot ab, dessen Angebots-ID online~en~US~25_pct_off ist.
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}"
}
Das in diesem Beispiel verwendete Feld itemIdInclusion enthält die Produkte, die für das Angebot infrage kommen. Weitere Informationen finden Sie unter Produkt-ID für
Angebot.
Angebote auflisten
Mit der
promotions.list
Methode können Sie alle erstellten Angebote aufrufen.
Hier ist eine Beispielanfrage:
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
Die Antwort enthält die Liste aller Angebote in Ihrem Konto. Für jedes Angebot sehen Sie Details wie promotionId, redemptionChannel, dataSource, promotionStatus und mehr.
Status eines Angebots ansehen
Den Status eines Angebots finden Sie im Attribut promotionStatus, das von der
promotions.get
oder
promotions.list
Methode zurückgegeben wird.
Das Feld promotionStatus kann die folgenden Werte haben:
IN_REVIEW: Das Angebot wird noch überprüft.REJECTED: Das Angebot wurde abgelehnt.LIVE: Das Angebot wurde genehmigt und ist aktiv.STOPPED: Das Angebot wurde vom Konto beendet.EXPIRED: Das Angebot ist nicht mehr aktiv.PENDING: Das Angebot wurde nicht beendet und alle Überprüfungen wurden genehmigt, aber das Aktivierungsdatum liegt in der Zukunft.STATE_UNSPECIFIED: Unbekannter Angebotsstatus.
Informationen zum Freigabeprozess für ein von Ihnen erstelltes Angebot finden Sie unter Freigabeprozess für Angebote.
Beispiel für Angebotsstatus
Die folgenden Beispiele zeigen den Unterschied zwischen erfolgreichen und fehlgeschlagenen Anfragen.
Fehlende Produktzuordnung
Der folgende Antworttext zeigt ein Onlineangebot, das aufgrund einer fehlenden Produktzuordnung abgelehnt wurde.
"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"
]
}
]
}
Informationen zur Fehlerbehebung bei abgelehnten Angeboten und dazu, wie Sie zukünftige Ablehnungen vermeiden können, finden Sie unter Probleme mit abgelehnten Angeboten beheben.
Wenn ein von Ihnen erstelltes Angebot nicht genehmigt wird, erhalten Sie eine E‑Mail mit dem Grund für die Ablehnung und einer Anleitung zur Behebung der Probleme.
Angebot wird überprüft
Der folgende Antworttext zeigt ein Angebot, das noch überprüft wird.
"promotionStatus": {
"destinationStatuses": [
{
"reportingContext": "FREE_LISTINGS",
"status": "PENDING"
},
{
"destination": "SHOPPING_ADS",
"status": "PENDING"
}
],
"itemLevelIssues": []
}
Ein genehmigtes und aktives Angebot
Der folgende Antworttext zeigt ein Angebot, das für Käufer sichtbar ist.
"promotionStatus": {
"destinationStatuses": [
{
"reportingContext": "FREE_LISTINGS",
"status": "LIVE"
},
{
"destination": "SHOPPING_ADS",
"status": "LIVE"
} ],
"itemLevelIssues": []
}
Weitere Informationen finden Sie unter Häufig gestellte Fragen zum Angebotsstatus.
Angebote löschen
Es ist nicht möglich, ein Angebot über die API zu löschen. Dazu müssen Sie auf die Merchant Center-Benutzeroberfläche zugreifen. Weitere Informationen finden Sie unter Angebot bearbeiten oder Angebotsstatus ändern.
Wenn Sie ein bestehendes Angebot beenden möchten, können Sie mit der
accounts.promotions.insert
Methode das attributes.promotionEffectiveTimePeriod.endTime Feld auf
einen Zeitpunkt in der Vergangenheit aktualisieren.
Weitere Informationen
- Weitere Informationen finden Sie in der Hilfe zu Angeboten Center.
- Informationen zur Fehlerbehebung bei häufigen Problemen finden Sie unter Fehlerbehebung bei Problemen im Zusammenhang mit der Angebots-Sub-API.
- Informationen zur Migration von der Content API for Shopping finden Sie unter Angebotsverwaltung migrieren.