거래 메시지를 통해 객실, 가격, 패키지에 관한 데이터가 Google로 전송됩니다. '거래' 메시지에는 다음과 같은 두 가지 기본 유형이 있습니다.
여행 일정 데이터: 다음을 포함한 객실 번들 및 일정 데이터를 정의합니다.
호텔 가격 및 인벤토리: 특정 요구사항을 충족하는 여행 일정의 최저 가격을 설정합니다. 자세한 내용은 가격 업데이트를 참조하세요. 인벤토리에서 회의실을 삭제할 수도 있습니다. 자세한 내용은 인벤토리 삭제를 참고하세요.
객실 번들: 실제 객실과 추가 서비스 패키지의 운항 일정을 설정합니다. 자세한 내용은 객실 번들을 참고하세요. Google은 가격을 항상 확인할 수 있도록 트랜잭션 메시지의 콘텐츠를 캐시합니다. 경우에 따라 Google에서 캐시의 값이 최신 상태가 아니라고 판단하므로 업데이트된 가격을 받기 위해 추가
<Query>
메시지 (경우에 따라 실시간 가격 쿼리)를 전송할 수 있습니다. 이 데이터는 일반적으로 매우 자주 변경됩니다. 트랜잭션 메시지의 가격 책정 및 이용 가능 여부를 정의하려면<Result>
를 사용합니다.
객실 및 패키지 메타데이터: 설명, 사진, 최대 숙박 인원 등 객실 및 패키지에 관한 세부정보를 지정합니다. 이 데이터는 자주 변경되지 않습니다. 메타데이터 트랜잭션 메시지를 정의하려면
<PropertyDataSet>
를 사용합니다. Google에서는 가격 메시지에서 이 메타데이터를 참조할 수 있도록 모든 객실 및 패키지에 대한 반복적인 정보를 포함하지 않고 이 메타데이터를 저장합니다. 자세한 내용은 룸 및 패키지 메타데이터 정의를 참고하세요.
거래 메시지의 루트 요소는 <Transaction>
입니다. <Transaction>
요소를 루트 요소로 사용하는 메시지에는 하나 이상의 하위 요소가 필요합니다. 총 메시지 크기가 100MB를 넘지 않는 한 트랜잭션 메시지의 하위 요소 수에는 제한이 없습니다.
Google의 요청에 응답하는 트랜잭션 메시지의 예는 가격 및 객실 인벤토리 (트랜잭션) XML 참조를 참고하세요.
전송 모드
트랜잭션 메시지를 보내는 유형과 빈도는 전송 모드에 따라 다릅니다.
- 가져오기 전송 모드의 경우 Google에서
<Query>
를 수신할 때 트랜잭션 메시지를 전송합니다. - 변동된 가격 전송 모드의 경우
<HintRequest>
및<Query>
를 수신하고 응답한 후 트랜잭션 메시지를 전송합니다.
자세한 내용은 가격 전송 모드를 참조하세요.
실시간 가격 쿼리
전송 모드에 관계없이 Google에서 실시간 가격 쿼리라고 하는 요청을 보낼 수도 있습니다. 이러한 쿼리 메시지는 현재 검색에 대한 응답으로 가격을 찾습니다. 지정된 시간(일반적으로 수백 밀리초) 내에 응답하면 광고가 입찰에 참여할 수 있습니다. 또한 결과가 국가와 기기 유형, 지정한 투숙객 수를 포함하여 고객과 더 잘 일치할 수도 있습니다. 자세한 내용은 실시간 가격 쿼리를 참조하세요.
메시지 크기
단일 트랜잭션 메시지에 데이터 업데이트의 조합을 포함할 수 있지만 각 메시지의 크기는 100MB로 제한됩니다. 일반적으로 모든 가져오기 및 힌트 요청의 응답 시간 제한은 100초입니다. 제한 시간은 요청에 따라 Google에서 조정할 수 있는 구성 가능한 필드입니다. 대용량 메시지의 타임아웃을 10분으로 설정하는 것이 좋습니다.
메시지 크기를 크게 줄이고 메시지 크기 및 타임아웃 관련 문제를 방지하려면
트랜잭션 메시지를 사용하여 회의실 및 패키지 메타데이터를
사전 정의합니다.
메시지 헤더에 Content-Encoding: gzip
를 추가하여 GNU 압축 콘텐츠를 메시지에 추가할 수도 있습니다.