トランザクション(宿泊施設データ)メッセージ

概要

ARI Transaction(宿泊施設データ)メッセージは、各宿泊施設の客室タイプとパッケージ(または料金プラン)に関する情報を定義します。各客室タイプのデータには、一意の識別子(RoomID)、ローカライズされた名前、説明、客室の写真への URL が含まれます。各パッケージ データには、一意の識別子(PackageID)、ローカライズされた名前、説明、占有率、付加価値が含まれます。

トランザクション メッセージを使用すると、次のことができます。

  • 1 つ以上のプロパティのデータを定義します。
  • 各宿泊施設の客室タイプとパッケージ情報を定義します。
  • 提案するプロダクトを管理する。

アクションを設定して、以下を行うこともできます。

  • 客室タイプとパッケージをプロパティに追加します。
  • プロパティから客室タイプとパッケージを削除します。

トランザクション メッセージの例については、トランザクション(宿泊施設データ)の例をご覧ください。

必須要素と省略可能な要素

XML リファレンスでは、必須要素と省略可能な要素について説明しています。属性と子要素の詳細については、トランザクション(宿泊施設データ)の要素と属性をご覧ください。

構文とスキーマ

Transaction メッセージを作成する際は、Transaction(宿泊施設データ)の構文の例を参考にして、正しい形式に従っていることを確認してください。

xmllint などのサードパーティの XML ツールを使用して、Google に送信する前に公開スキーマでフィードを検証できます。Transaction メッセージ スキーマについては、ホテル広告スキーマをご覧ください。

ガイドライン

トランザクション メッセージには、次のガイドラインを使用します。

アクション:

delta: 新しい客室タイプとパッケージ(料金プラン)を追加または更新するために使用します。

overlay: プロパティのすべての客室タイプとパッケージを新しいセットに置き換えるために使用します。販売するすべての客室タイプと料金プランに関する情報を含める必要があります。

言語のサポート:

[Name]、[Description]、[Caption] の各フィールドで 1 ~ 2 言語(英語と、必要に応じてプロパティの現地言語)を指定します。必要に応じて 3 つ以上の言語を追加できます。

客室タイプとパッケージ:

客室タイプまたはパッケージを更新する場合は、その客室タイプまたはパッケージの関連情報をすべて送信する必要があります。たとえば写真を追加する場合は、名前と説明も含める必要があります。

<AllowablePackageIDs><AllowableRoomIDs> は省略可能です。未設定のままにした場合は、客室タイプと料金プランを任意に組み合わせることができます。この場合も、客室タイプと料金プラン ID とともに空室状況と料金を送信する必要があります。これらの要素を使用すると、商品を管理したり、システムでサポートされなくなった組み合わせを無効にしたりできます。

客室タイプやパッケージが変更された場合や、追加する必要のある客室タイプやパッケージに関する重要な詳細情報がある場合は、Google にトランザクション メッセージの更新情報を送信します。

このセクションでは、必須要素と省略可能な要素を使用した ARI トランザクション メッセージの基本的な例を示します。客室タイプとパッケージを追加または更新するには、delta のアクションを使用して客室タイプとパッケージを追加または更新します。または、overlay のアクションを使用して、すべての客室タイプとパッケージの定義を置き換えます(古いエントリを削除します)。

Name、Description、Caption の各フィールドには 1 ~ 2 言語(英語と、必要に応じてプロパティの現地言語)を指定する必要があります。次に、写真へのリンクなどの宿泊施設のデータ情報を追加します。

<PropertyID><RoomID> には、システム内で料金プランと客室タイプ(それぞれ)と同じ ID を使用します。Google が料金とデータを正しく表示するためには、システムとの整合性が不可欠です。

ファイルを準備したら、POST メッセージで次のエンドポイントにファイルを Google に送信する必要があります。https://www.google.com/travel/hotels/uploads/property_data

メッセージを push/POST する方法については、メッセージの push をご覧ください。

次の例は、delta アクションを使用して Transaction メッセージを設定する方法を示しています。

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="202X-XX-XXT00:00:00-0X:00" id="12345678" partner="partner_key">
  <PropertyDataSet action="delta">
    <Property>PROPERTYID</Property>
      <RoomData>
        <RoomID>ROOMID</RoomID>
        <Name><Text text="ROOM NAME" language="en"/></Name>
        <Description>
          <Text text="ROOM DESCRIPTION TEXT" language="en"/>
        </Description>
        <Capacity>4</Capacity>
        <PhotoURL>
          <Caption><Text text="ROOM PHOTO CAPTION TEXT" language="en"/></Caption>
          <URL>https://LINK TO PHOTO</URL>
        </PhotoURL>
      </RoomData>
      <PackageData>
        <PackageID>BASE</PackageID>
        <Name><Text text="Internet Special" language="en"/></Name>
        <Description><Text text="Direct Booking through Hotel Website" language="en"/></Description>
        <Refundable available="true" refundable_until_days="2" refundable_until_time="12:00"/>
      </PackageData>
  </PropertyDataSet>
</Transaction>

overlay アクションの使用方法、既存のプロパティ データに客室タイプとパッケージを追加する方法、既存の客室タイプとパッケージを削除する方法など、その他の例については、トランザクション(宿泊施設データ)の例をご覧ください。

入門ガイド

このセクションでは、Transaction メッセージの送信中に発生する可能性のあるシナリオの解決策を説明します。

シナリオ 1: 客室タイプのデータを削除する方法

既存の客室タイプやパッケージ データを削除するにはどうすればよいですか?

説明

宿泊施設に対して、キングルームとクイーンルームを含む複数の客室タイプを送信している。改装中はすべてのクイーンルーム タイプをご利用いただけません。現時点では、キングルーム タイプのみ利用可能です。

解決策

  • 削除または無効化された客室タイプとパッケージ ID の 1 泊の空室状況、料金、在庫を更新する必要はありません。
  • 客室タイプまたはパッケージが削除または無効化された場合は、action="overlay" を使用して新しいトランザクション メッセージを送信します。このメッセージには、現在も有効な客室タイプとパッケージのみが含まれ、削除された客室タイプまたはパッケージは除外されています。

サンプル

次の XML スニペットは、overlay アクションを使用して客室タイプを削除する方法を示しています。

キングとクイーンの部屋タイプを含む元の delta アクションは次のとおりです。

  <PropertyDataSet action="delta">
    <Property>Property_1</Property>
    <RoomData>
      <RoomID>King</RoomID>
      <Name>
        <Text text="King" language="en"/>
      </Name>
      <Capacity>2</Capacity>
    </RoomData>
    <PackageData>
      <PackageID>Standard</PackageID>
      <Name>
        <Text text="Standard" language="en"/>
      </Name>
      <Description>
        <Text text="Standard rate" language="en"/>
      </Description>
      <Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
      <BreakfastIncluded>0</BreakfastIncluded>
      </PackageData>
    <RoomData>
      <RoomID>Queen</RoomID>
      <Name>
        <Text text="Queen" language="en"/>
      </Name>
      <Capacity>2</Capacity>
      <!-- Additional RoomData child elements omitted. -->
    </RoomData>
  </PropertyDataSet>

その後、overlay を設定して、クイーンルーム タイプを削除し、キングルーム タイプを維持できます。

  <PropertyDataSet action="overlay">
    <Property>Property_1</Property>
    <RoomData>
      <RoomID>King</RoomID>
      <Name>
        <Text text="King" language="en"/>
      </Name>
      <Capacity>2</Capacity>
    </RoomData>
    <PackageData>
      <PackageID>Standard</PackageID>
      <Name>
        <Text text="Standard" language="en"/>
      </Name>
      <Description>
        <Text text="Standard rate" language="en"/>
      </Description>
      <Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
      <BreakfastIncluded>0</BreakfastIncluded>
    </PackageData>
  </PropertyDataSet>

シナリオ 2: AllowablePackageID を使用して商品を制御する方法

パッケージが部屋タイプ別にグループ化されている場合、商品(客室タイプとパッケージの組み合わせ)を管理するにはどうすればよいですか?

説明

特定の客室タイプでのみ利用できるパッケージがあります。たとえば、宿泊施設に 4 つの部屋タイプ(プレジデンシャル スイートを含む)と 6 種類のパッケージがあるのに、プレジデンシャル スイートの対象となるパッケージがわずかしかない場合は、条件を指定できます。

解決策

<AllowablePackageIDs> を使用して、パッケージに含める商品を指定して、更新した Transaction メッセージを送信します。

サンプル

この XML スニペットは、<AllowablePackageIDs> を使用して、特定の客室タイプで使用するパッケージを指定する方法を示しています。ここでは、ペントハウス スイートの部屋タイプはペントハウス オール インクルーシブ パッケージまたは無料の朝食パッケージのみから、キングスイートの部屋タイプはキング オール インクルーシブ パッケージまたはペット フレンドリー パッケージのみとなります。

<RoomData>
  <RoomID>penthouse_suite</RoomID>
  <AllowablePackageIDs>
    <AllowablePackageID>penthouse_all_inclusive</AllowablePackageID>
    <AllowablePackageID>free_breakfast</AllowablePackageID>
  </AllowablePackageIDs>
  <!-- Additional child elements omitted. -->
</RoomData>
<RoomData>
  <RoomID>king_suite</RoomID>
  <AllowablePackageIDs>
    <AllowablePackageID>king_all_inclusive</AllowablePackageID>
    <AllowablePackageID>pet_friendly</AllowablePackageID>
  </AllowablePackageIDs>
  <!-- Additional child elements omitted. -->
</RoomData>
<PackageData>
  <PackageID>penthouse_all_inclusive</PackageID>
</PackageData>
<!-- Additional child elements omitted. -->
<PackageData>
  <PackageID>free_breakfast</PackageID>
</PackageData>
<!-- Additional child elements omitted. -->
<PackageData>
  <PackageID>king_all_inclusive</PackageID>
</PackageData>
<!-- Additional child elements omitted. -->
<PackageData>
  <PackageID>pet_friendly</PackageID>
</PackageData>

シナリオ 3: AllowableRoomID を使用してプロダクトを制御する方法

客室タイプがパッケージごとにグループ化されているときに、商品(客室タイプとパッケージの組み合わせ)を管理するにはどうすればよいですか?

説明

客室タイプとパッケージの組み合わせを商品として販売できなくなった場合や、新しいパッケージの内容を制御したい場合。たとえば、オーシャン ビューのキングルームとクイーンルームなど、特定の部屋タイプのみをパッケージに指定するとします。

解決策

<AllowableRoomIDs> 要素を使用して、パッケージに含まれる正確な商品を指定して、更新した Transaction メッセージを送信します。

サンプル

次の XML スニペットは、<AllowableRoomID> を使用してパッケージにオーシャンビューのキングルームとクイーンルームのタイプを指定する方法を示しています。

<PackageID>RO</PackageID>
<AllowableRoomIDs>
  <AllowableRoomID>king_oceanview</AllowableRoomID>
  <AllowableRoomID>queen_oceanview</AllowableRoomID>
</AllowableRoomIDs>