順番待ちリスト プログラムに参加するパートナー様は、開始前にアカウントの設定を完了する必要があります。ただし、順番待ちリスト機能を使用するには、一般的なガイドの手順の一部を行う必要はありません。このページのガイドラインでは、「Google で予約」の順番待ちリスト機能の使用に関心のあるパートナーを対象としています。統合の手順に進む前に、この概要を確認することをおすすめします。
公開プロセス
図 1 は、「Google で予約」で順番待ちリストが有効になっている販売者を起動するプロセスを示しています。
![図 1: 統合手順の概要](https://developers.google.com/static/maps-booking/images/waitlists/reserve_with_google_waitlist_integration.png?authuser=4&hl=ja)
図 2 に、パートナー様(Google)と Google の間の主なデータフローをまとめます。
![図 2: 統合のデータフローの図](https://developers.google.com/static/maps-booking/images/waitlists/waitlist_integration_data_flow_diagram.png?authuser=4&hl=ja)
順番待ちリストを利用するすべてのパートナー向けのガイドライン
順番待ちリスト機能を実装する際は、次の点にご注意ください。
- 順番待ちリストに登録する販売者向けサービスには、
waitlist_rules
が入力されている必要があります。- 順番待ちリストと予約の両方に同じサービスを使用する必要があります。つまり、レストランで予約を許可している場合は、順番待ちリスト関連のメタデータを予約するサービスに追加します。
- 次の場合は、順番待ちリストの実装で SMS 更新の送信が必要です。
- お客様がウェイティング リストに正常に登録されていることを確認するため。
- テーブルの準備ができたことをユーザーに知らせます。
- 順番待ちリストへの登録がキャンセルされたことをユーザーに通知する。
- SMS メッセージには、ユーザーが順番待ちリストのステータスを確認できるページへのリンクが含まれている必要があります。
- 順番待ちリストのみの販売者は、「Google で予約」に空室状況フィードを提供する必要はありません。
- 予約サーバーは、予約サーバーの実装に記載されているすべての順番待ちリスト固有の手順を実装する必要があります。予約と順番待ちリストの両方をサポートするパートナーは、新しいメソッドを既存の予約サーバーに追加できます。
- 「Google で予約」では、予約サーバーでウェイティング リスト メソッドに関する一連のテストケースを実行します。
ステータス フローチャート
このグラフでは、GetWaitlistEntry
呼び出しに応答したときに WaitlistEntry.waitlist_entry_state
で報告する必要があるステータスについて説明します。また、このグラフでは、WaitlistEntry.waitlist_entry_state_times.*_time_seconds
フィールドを記録して入力し、新しい状態になったことを通知する SMS をユーザーに送信するタイミングも示されます。
![図 3: 順番待ちリストのステータス フローチャート](https://developers.google.com/static/maps-booking/images/waitlists/waitlist_status_flowchart.png?authuser=4&hl=ja)
一般的なエッジケース
ウェイティング リスト統合の一般的なエッジケースと、それに適したソリューションを以下に示します。
-
一部のパーティー サイズが新しい待ち時間リストの追加を受け入れておらず、これらのパーティー サイズで待ち時間が発生していない場合、
BatchGetWaitEstimates
レスポンスですべてのパーティー サイズに対してWaitEstimates
を返し、ユーザーが待ち時間なしでこれらのパーティー サイズの順番待ちリストに加われるようにすることをおすすめします。待機なしでparty_size
を指定すると、WaitLength
がparties_ahead_count
が 0 回、またはestimated_seat_time_range
がstart_seconds
が 0、end_seconds
が 0 のWaitLength
が返されます。 -
待ち時間が長すぎたため、1 つ以上のパーティー サイズが新しい順番待ちリストの追加を受け入れない場合は、
BatchGetWaitEstimates
レスポンスでこれらのパーティー サイズにWaitEstimates
を省略することをおすすめします。
販売者の順番待ちリストが完全には開いていない可能性がある場合でも、ユーザーに選択肢を提供するため、このような方法をおすすめします。
順番待ちリストのみを利用するすべてのパートナー向けのガイドライン
予約サーバーがウェイティング リストにのみ使用される場合は、次の点に注意してください。
- 順番待ちリストのみのパートナーは、「Google で予約」に空室状況フィードを提供しません。
- 順番待ちリストのみを利用するパートナーは、予約サーバーに予約方法を実装していません。代わりに、順番待ちリストの実装手順を使用して予約サーバーを実装します。
- 順番待ちリストのみを利用するパートナーは、Google に対して API 呼び出しを実行することはありません。つまり、順番待ちリストのみのパートナーは、クラウド プロジェクトを設定したり、デベロッパーのメールアドレスを提供したりする必要はありません。リアルタイム API の更新を完了する必要はありません。ただし、販売者フィードとサービス フィードは「Google で予約」に引き続き提供する必要があります。
販売者が順番待ちリストの追加を手動で承認または拒否する必要があるパートナー向けのガイドライン
販売者が Google からの新しい順番待ちリストの追加を手動で承認または拒否する必要がある場合は、追加の手順が必要です。
- 手動確認が必要なパーティー サイズについては、
wait_estimate
でwaitlist_confirmation_mode
をWAITLIST_CONFIRMATION_MODE_ASYNCHRONOUS
に設定します。これは、BatchGetWaitEstimateResponse
とGetWaitlistEntryResponse
で設定する必要があります。 - ユーザーからリクエストされた順番待ちリストのエントリのうち、販売者がまだ承認していないものは
PENDING_MERCHANT_CONFIRMATION
の状態にする必要があります。
順番待ちリストのテストケース
予約サーバーの実装における順番待ちリストのメソッドの機能を確認するため、Google は次のユースケースをテストします。Google はレイテンシのテストとモニタリングも行います。公開前にこれらのテストにすべて合格する必要があります。
WaitEstimate の取得
BatchGetWaitEstimatesRequest
でリクエストされた人数ごとの待ち時間の見積もりが返されます。- 販売者が新しい順番待ちリストの追加を承認または拒否できるパーティー サイズの場合は、waitlist_confirmation_mode を
WAITLIST_CONFIRMATION_MODE_ASYNCHRONOUS
に設定します。
順番待ちリストエントリの作成
- 順番待ちリストのエントリは、
CreateWaitlistEntry
リクエストから作成できます。 - ウェイティング リスト エントリの作成に失敗すると、レスポンスにビジネス ロジック エラーが表示されます。
CreateWaitlistEntry
の試行が成功すると、同じCreateWaitlistEntry
が再度受信されたときに同じレスポンスが返されます。CreateWaitlistEntry
の試行が失敗した場合、同じCreateWaitlistEntry
が再度受信されたときにサーバーが再試行します。- 順番待ちリストエントリは販売者のインターフェースに表示されます。
GetWaitlistEntry
を呼び出すと、作成した順番待ちリストのエントリが返されます。
順番待ちリストエントリのステータスとタイムスタンプ
GetWaitlistEntry
レスポンスの順番待ちリストのエントリで、各順番待ちリストのエントリ状態が正しく返されることを確認します。- 各状態のタイムスタンプが、
GetWaitlistEntry
レスポンスのウェイティング リスト エントリの適切なタイムスタンプ フィールドに設定されていることを確認します。
順番待ちリストエントリの削除
- 既存の順番待ちリストエントリは削除できます。削除が成功した場合は、空の proto
{}
が返されます。
オプトアウト
- オプトアウトした販売者については、販売者のオプトアウトの説明に沿って処理されていることを確認します。
順番待ちリストのサービス フィードのサンプル(JSON)
順番待ちリストのサービス フィード販売者のオプトアウト
順番待ちリストを有効にしても無効にした販売者については、Google から回答が届く予定です。
緊急のオプトアウト
BatchGetWaitEstimates
リクエストの場合はCLOSED_OTHER
を返します。CreateWaitlistEntry
リクエストの場合は、WAITLIST_CLOSED
を返します。- すでに順番待ちリストに登録されているユーザーについて、
GetWaitlistEntry
リクエストを正しく返します。
通常のオプトアウト
- 販売者が予約をオプトアウトしていない場合は、販売者のサービス フィードから
waitlist_rules
を削除します。 - すべての Google 統合をオプトアウトしている場合は、販売者フィードから販売者を削除します。