Condividi tramite


Push di feed di prezzi (in precedenza messaggi di transazione) in Microsoft Advertising

Prima di inviare un feed di prezzo:

  • Convalidare il messaggio per assicurarsi che sia conforme a Transaction XSD. In questo modo si risparmieranno round trip e tempo necessario per correggere gli errori.

  • Assicurarsi che il messaggio contenga meno di 100 MB di dati non compressi o 10 MB di dati compressi (usando la compressione GZip). Per ridurre il traffico di rete, è consigliabile inviare sempre dati compressi.

  • Assicurarsi di avere meno di cinque richieste in coda o in fase di elaborazione. L'applicazione deve includere la logica necessaria per rimanere entro il limite. Se si supera il limite, la richiesta avrà esito negativo con codice di stato HTTP 429.

Dopo aver convalidato il messaggio, inviarlo a Microsoft nel corpo di una richiesta HTTPS POST. L'URL a cui si invia la richiesta è:

https://hotels.api.bingads.microsoft.com/api/customers/<customerId>/transactions

Imposta <customerId> sull'ID cliente dell'inserzionista.

La richiesta deve includere le intestazioni seguenti:

  • Content-Type: application/xml; charset=utf-8
  • Autorizzazione: Bearer <accesstokengoeshere>

È anche possibile specificare le intestazioni facoltative seguenti:

  • Codifica del contenuto: gzip
    Specificare questa intestazione se si comprime il feed di prezzi (scelta consigliata).

  • X-Transaction-ID: <ID definito dall'utente>
    ID opaco definito dall'utente che gli inserzionisti usano per identificare in modo univoco il messaggio. Se si include questa intestazione, l'ID deve corrispondere all'ID nell'attributo dell'elemento idTransaction.

Di seguito viene illustrata una richiesta POST di esempio.

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>

La richiesta POST inserisce il messaggio in una coda da elaborare e quindi restituisce. È possibile che siano presenti al massimo cinque richieste in coda o in fase di elaborazione contemporaneamente. Se si supera il limite, la richiesta avrà esito negativo con 429.

Per determinare se Il messaggio è stato elaborato correttamente da Microsoft, vedere Stato feed prezzi hotel nell'applicazione Web Microsoft Hotel Center of Microsoft Advertising.To determine whether Microsoft successfully processed the message, see Hotel Price Ads Feed Status in the Microsoft Hotel Center of Microsoft Advertising web application.

Se la richiesta ha esito positivo (il messaggio viene inserito correttamente nella coda), il corpo della risposta include un documento XML che specifica il numero di byte letti (BytesReceived) dal corpo della richiesta (feed prezzi).

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

L'elemento FeedId contiene un ID generato da Microsoft che identifica in modo univoco il feed. Il report sullo stato della transazione include questo ID.

Se la richiesta ha esito negativo, il corpo della risposta includerà un documento XML contenente un elenco di codici di errore e messaggi che identificano il motivo per cui la richiesta non è riuscita. Per un elenco di codici di errore e messaggi, vedere Codici di errore e messaggi.

La risposta include l'intestazione di risposta WebRequestActivityId. L'intestazione contiene l'ID associato alla richiesta nei file di log. Ogni volta che una richiesta ha esito negativo, acquisire l'ID. Se non è possibile risolvere il problema, specificare questo ID quando si contatta il supporto tecnico.

Frequenza con cui è necessario inviare messaggi

Inviare feed di prezzi ogni volta che cambiano i prezzi e la disponibilità.