Pushen von Preisfeeds an Microsoft Advertising
Vor dem Senden eines Preisfeeds:
Überprüfen Sie die Nachricht, um sicherzustellen, dass sie mit der Transaktions-XSD kompatibel ist. Dadurch sparen Sie Roundtrips und Zeit zum Beheben von Fehlern.
Stellen Sie sicher, dass die Nachricht weniger als 100 MB unkomprimierte Daten oder 10 MB komprimierte Daten enthält (mit GZip-Komprimierung). Um den Netzwerkdatenverkehr zu reduzieren, sollten Sie immer komprimierte Daten senden.
Stellen Sie sicher, dass weniger als fünf Anforderungen in der Warteschlange stehen oder verarbeitet werden. Ihre Anwendung sollte die logik enthalten, die erforderlich ist, um den Grenzwert einzuhalten. Wenn Sie den Grenzwert überschreiten, schlägt die Anforderung mit http-status Code 429 fehl.
Nachdem Sie die Nachricht überprüft haben, senden Sie sie im Text einer HTTPS POST-Anforderung an Microsoft. Die URL, an die Sie die Anforderung senden, lautet:
https://hotels.api.bingads.microsoft.com/api/customers/<customerId>/transactions
Legen Sie <customerId> auf die Kunden-ID des Inserenten fest.
Die Anforderung muss die folgenden Header enthalten:
- Content-Type: application/xml; charset=utf-8
- Autorisierung: Bearer <accesstokengoeshere>
Sie können auch die folgenden optionalen Header angeben:
Inhaltscodierung: gzip
Geben Sie diesen Header an, wenn Sie den Preisfeed komprimieren (empfohlen).X-Transaction-ID: <benutzerdefinierte ID>
Eine undurchsichtige, benutzerdefinierte ID, die Werbetreibende verwenden, um die Nachricht eindeutig zu identifizieren. Wenn Sie diesen Header einschließen, muss die ID mit der ID im Attribut desid
Transaction-Elements übereinstimmen.
Das folgende Beispiel zeigt eine POST-Anforderung.
POST https://hotels.api.bingads.microsoft.com/api/customers/abc123/transactions HTTP/1.1
Content-Type: application/xml; charset=utf-8
Host: hotels.api.bingads.microsoft.com
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-05-25T20:44:56-04:00" id="de0be689-d094-406e-
8027-724309deb373">
<Result>
<Property>13579</Property>
<Checkin>2017-06-10</Checkin>
<Nights>2</Nights>
<Baserate currency="USD">159.99</Baserate>
<Tax currency="USD">20.00</Tax>
<OtherFees currency="USD">4.00</OtherFees>
<AllowablePointsOfSale>
<PointOfSale id="mobile"/>
<PointOfSale id="desktop"/>
</AllowablePointsOfSale>
</Result>
</Transaction>
Die POST-Anforderung platziert die Nachricht in einer Warteschlange, die verarbeitet werden soll, und gibt dann zurück. Es kann sein, dass maximal fünf Anforderungen gleichzeitig in die Warteschlange eingereiht oder verarbeitet werden. Wenn Sie den Grenzwert überschreiten, schlägt die Anforderung mit 429 fehl.
Informationen dazu, ob Die Nachricht von Microsoft erfolgreich verarbeitet wurde, finden Sie unter Status des Hotelpreisanzeigenfeeds in der Microsoft Hotel Center of Microsoft Advertising-Webanwendung.
Wenn die Anforderung erfolgreich ist (die Nachricht wurde erfolgreich in die Warteschlange eingefügt), enthält der Text der Antwort ein XML-Dokument, das die Anzahl der gelesenen Bytes (BytesReceived
) aus dem Anforderungstext (preisfeed) angibt.
<TxnResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Microsoft.BingAds.BHAC.HotelAdsAPIs.Models">
<BytesReceived>184381</BytesReceived>
<FeedId>6165579</FeedId>
</TxnResponse>
Das FeedId
-Element enthält eine von Microsoft generierte ID, die den Feed eindeutig identifiziert. Der Transaktionsbericht status enthält diese ID.
Wenn die Anforderung fehlschlägt, enthält der Antworttext ein XML-Dokument, das eine Liste von Fehlercodes und Meldungen enthält, die angeben, warum die Anforderung fehlgeschlagen ist. Eine Liste der Fehlercodes und -meldungen finden Sie unter Fehlercodes und Meldungen.
Die Antwort enthält den WebRequestActivityId-Antwortheader. Der Header enthält die ID, die der Anforderung in den Protokolldateien zugeordnet ist. Wenn eine Anforderung fehlschlägt, erfassen Sie die ID. Wenn Sie das Problem nicht beheben können, geben Sie diese ID an, wenn Sie sich an den Support wenden.
Wie oft muss ich Nachrichten senden?
Senden Sie Preisfeeds, wenn sich Preise und Verfügbarkeit ändern.