予約の順番待ちリスト プログラムに参加するパートナーは、開始する前にアカウントの設定を完了する必要があります。ただし、順番待ちリスト機能を使用するうえで、一般ガイドの手順の一部は必須ではありません。このページのガイドラインでは、Google で予約の順番待ちリスト機能の使用に関心のあるパートナーに適用される手順について説明します。統合の手順に進む前に、この概要を確認することをおすすめします。
公開プロセス
図 1 は、順番待ちリスト対応の販売者をアクション センターでリリースするプロセスの概要を示しています。
全体として、パートナー様(パートナー)と Google の間の主要なデータフローを図 2 に示します。
予約リストのパートナー向けのガイドライン
予約の順番待ちリスト機能を実装する際は、次の点に注意してください。
- すべての予約の順番待ちリストの販売者のサービスで、
waitlist_rules
にデータを入力する必要があります。- 順番待ちリストと予約の両方に同じサービスを使用する必要があります。つまり、レストランが予約も許可している場合は、順番待ちリスト関連のメタデータを予約のためのサービスに追加するだけです。
- 次の場合は、順番待ちリストの実装で SMS アップデートを送信する必要があります。
- お客様が順番待ちリストに加わったことを確認するため。
- テーブルの準備ができたことをユーザーに伝える。
- 順番待ちリストへの登録がキャンセルされたことをユーザーに通知する。
- SMS メッセージには、ユーザーが順番待ちリストの状況を確認できるページへのリンクを含める必要があります。
- 順番待ちリストのみを利用する販売者は、アクション センターに在庫状況フィードを提供する必要はありません。
- 予約サーバーは、予約サーバーを実装するに記載されている順番待ちリスト固有の手順をすべて実装する必要があります。予約と順番待ちリストの両方をサポートしているパートナーは、既存の予約サーバーに新しい方法を追加できます。
- アクション センターは、予約サーバーの順番待ちリスト メソッド用に一連のテストケースを実行します。
ステータスのフローチャート
次の表は、
GetWaitlistEntry
の呼び出しに応答する際に
WaitlistEntry.waitlist_entry_state
で報告する必要があるステータスを示しています。また、このチャートには、
WaitlistEntry.waitlist_entry_state_times.*_time_seconds
フィールドの記録と入力を行うタイミングと、新しい状態になったことをユーザーに通知するために SMS を送信するタイミングも示されています。
一般的なエッジケース
予約の順番待ちリストの統合における一般的なエッジケースと、おすすめのソリューションは次のとおりです。
-
一部の人数(ただしすべてではない)が順番待ちリストへの新規追加を受け付けていない場合は、
BatchGetWaitEstimates
レスポンスですべての人数に対してWaitEstimates
を返し、ユーザーが待ち時間なしでウェイティング リストに登録できるようにすることが推奨されます。0parties_ahead_count
を含むWaitLength
、または 0start_seconds
および 0 のend_seconds
を含むparty_size
を待ち時間なしで返すestimated_seat_time_range
-
待ち時間が長すぎて順番待ちリストへの新規追加を受け付けていない場合、その人数については
BatchGetWaitEstimates
レスポンスでWaitEstimates
を省略することをおすすめします。
この方法は、販売者の順番待ちリストが完全に登録されていない場合でも、ユーザーに選択肢を提供できるため、推奨されます。
予約の順番待ちリストのみを利用するパートナー向けのガイドライン
予約サーバーが順番待ちリストのみに使用される場合は、次の点に注意してください。
- 予約の順番待ちリストのみのパートナーは、「Google で予約」に空き状況フィードを提供していません。
- 予約の順番待ちリストのみのパートナーは、予約サーバーに予約メソッドを実装しません。代わりに、順番待ちリストの実装の手順に沿って予約サーバーを実装してください。
- 予約の順番待ちリストのみのパートナーは、Google に対して API 呼び出しを行いません。つまり、予約の順番待ちリストのみを使用するパートナーは、クラウド プロジェクトを設定したり、デベロッパーのメールアドレスを指定したりする必要はありません。リアルタイムの API 更新を完了する必要はありません。ただし、販売者フィードとサービスフィードはアクション センターに提供する必要があります。
販売者が順番待ちリストへの追加を手動で承認または拒否する必要があるパートナー向けのガイドライン
販売者が 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)
順番待ちリストのサービス フィード販売者のオプトアウト
以前にウェイティング リストを有効にしていてオプトアウトにした販売者については、一定の回答が得られることを期待しています。
緊急のオプトアウト
BatchGetWaitEstimates
リクエストに対してはCLOSED_OTHER
を返します。CreateWaitlistEntry
リクエストに対してはWAITLIST_CLOSED
を返します。- すでに順番待ちリストに登録されているユーザーには、
GetWaitlistEntry
リクエストを適切に返します。
通常のオプトアウト
- 販売者が予約をオプトアウトしていない場合は、販売者のサービス フィードから
waitlist_rules
を削除します。 - 販売者がすべての Google 統合を無効にしている場合は、販売者フィードから販売者を削除します。