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

概要

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

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

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

また、次の操作を行うアクションを設定することもできます。

  • 宿泊施設に客室タイプとパッケージを追加する。

  • 宿泊施設から客室タイプとパッケージを削除する。

  • ポイント プログラムをパッケージまたは宿泊施設に追加します。

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

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

XML リファレンスには、必須要素と省略可能な要素の説明が記載されています。属性と子要素の詳細については、Transaction(宿泊施設データ)の要素と属性をご覧ください。

構文とスキーマ

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

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

ガイドライン

Transaction メッセージには、次のガイドラインに従ってください。

アクション:

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

overlay: 宿泊施設のすべての客室タイプとパッケージを新しいセットに置き換える場合に使用します。引き続き販売するすべての客室タイプと料金プランの情報を含める必要があります。

言語のサポート:

[名前]、[説明]、[キャプション] の各フィールドに 1 ~ 2 つの言語(英語と、必要に応じて宿泊施設の現地の言語)を指定します。必要に応じて、2 つを超える言語を追加できます。

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

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

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

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

ポイント:

パッケージにポイント プログラムを含めるか除外するには、Google でポイント プログラムの設定を行います。そのパッケージに関連付けられている獲得ポイントが表示されます。詳しくは、ポイント プログラムをご覧ください。

<MilesIncluded> 要素を使用して、ポイント プログラム キャンペーンを定義または更新します。詳しくは、トランザクション(プロパティデータ)をご覧ください。ポイントは <PackageData> に含めることができます。

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

[名前]、[説明]、[字幕] の各フィールドに 1 ~ 2 つの言語(英語と、必要に応じて宿泊施設の現地の言語)を指定する必要があります。次に、写真へのリンクなど、宿泊施設のデータ情報を追加します。

<PropertyID><RoomID> には、システム内で料金プランと客室タイプに使用している ID をそれぞれ使用します。Google で料金とデータを正しく表示するには、システムとの整合性が重要です。

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

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

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

<?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" を含む新しい Transaction メッセージを送信します。このメッセージには、まだ有効な客室タイプとパッケージのみが含まれ、削除された客室タイプまたはパッケージは含まれません。

サンプル

次の 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: AllowablePackageIDs を使用して商品を管理する方法

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

説明

特定の客室タイプでのみ利用できるパッケージもあります。たとえば、宿泊施設に 4 種類の客室タイプ(プレジデンシャル スイートを含む)と 6 種類のパッケージがあり、そのうちの一部のみがプレジデンシャル スイートに利用できる場合は、利用条件を指定できます。

解決策

<AllowablePackageIDs> を使用して、パッケージに含まれる商品を指定する更新されたトランザクション メッセージを送信します。

サンプル

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