Partager via


Envoi de flux de prix (anciennement messages de transaction) à Microsoft Advertising

Avant d’envoyer un flux de prix :

  • Validez le message pour vous assurer qu’il est conforme à transaction XSD. Cela vous évitera des allers-retours et du temps pour corriger les erreurs.

  • Vérifiez que le message contient moins de 100 Mo de données non compressées ou 10 Mo de données compressées (à l’aide de la compression GZip). Pour réduire le trafic réseau, vous devez toujours envoyer des données compressées.

  • Vérifiez que moins de cinq demandes sont en file d’attente ou en cours de traitement. Votre application doit inclure la logique nécessaire pour rester dans la limite. Si vous dépassez la limite, la requête échoue avec le code d’état HTTP 429.

Après avoir validé le message, envoyez-le à Microsoft dans le corps d’une requête HTTPS POST. L’URL à laquelle vous envoyez la demande est la suivante :

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

Définissez <customerId> sur l’ID client de l’annonceur.

La demande doit inclure les en-têtes suivants :

  • Content-Type : application/xml ; charset=utf-8
  • Autorisation : Accessertokengoeshere <>

Vous pouvez également spécifier les en-têtes facultatifs suivants :

  • Content-Encoding : gzip
    Spécifiez cet en-tête si vous compressez le flux de prix (recommandé).

  • X-Transaction-ID : <ID défini par l’utilisateur>
    ID opaque défini par l’utilisateur que les annonceurs utilisent pour identifier le message de manière unique. Si vous incluez cet en-tête, l’ID doit correspondre à l’ID dans l’attribut de l’élément idTransaction.

L’exemple suivant montre un exemple de requête POST.

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 requête POST place le message dans une file d’attente à traiter, puis retourne. Vous pouvez avoir un maximum de cinq demandes en file d’attente ou en cours de traitement en même temps. Si vous dépassez la limite, la demande échoue avec 429.

Pour déterminer si Microsoft a correctement traité le message, consultez État du flux Hotel Price Ads dans l’application web Microsoft Hotel Center of Microsoft Advertising.

Si la requête réussit (le message est correctement placé dans la file d’attente), le corps de la réponse inclut un document XML qui spécifie le nombre d’octets lus (BytesReceived) à partir du corps de la requête (le flux de prix).

<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’élément FeedId contient un ID généré par Microsoft qui identifie de manière unique le flux. Le rapport d’état de la transaction inclut cet ID.

Si la demande échoue, le corps de la réponse inclut un document XML qui contient une liste de codes d’erreur et de messages qui identifient la raison de l’échec de la requête. Pour obtenir la liste des codes d’erreur et des messages, consultez Codes d’erreur et messages.

La réponse inclut l’en-tête de réponse WebRequestActivityId. L’en-tête contient l’ID associé à la requête dans les fichiers journaux. Chaque fois qu’une demande échoue, capturez l’ID. Si vous ne parvenez pas à résoudre le problème, indiquez cet ID lorsque vous contactez le support technique.

À quelle fréquence dois-je envoyer des messages

Envoyer des flux de prix chaque fois que la tarification et la disponibilité changent.