概要

予約の順番待ちリスト プログラムに参加するパートナーは、開始する前にアカウントの設定を完了する必要があります。ただし、順番待ちリスト機能を使用するうえで、一般ガイドの手順の一部は必須ではありません。このページのガイドラインでは、Google で予約の順番待ちリスト機能の使用に関心のあるパートナーに適用される手順について説明します。統合の手順に進む前に、この概要を確認することをおすすめします。

公開プロセス

図 1 は、順番待ちリスト対応の販売者をアクション センターでリリースするプロセスの概要を示しています。

図 1: 統合手順の概要
図 1: 統合手順の概要

全体として、パートナー様(パートナー)と Google の間の主要なデータフローを図 2 に示します。

図 2: 統合のデータフローの図
図 2: 統合データフロー図

予約リストのパートナー向けのガイドライン

予約の順番待ちリスト機能を実装する際は、次の点に注意してください。

  • すべての予約の順番待ちリストの販売者のサービスで、waitlist_rules にデータを入力する必要があります。
    • 順番待ちリストと予約の両方に同じサービスを使用する必要があります。つまり、レストランが予約も許可している場合は、順番待ちリスト関連のメタデータを予約のためのサービスに追加するだけです。
  • 次の場合は、順番待ちリストの実装で SMS アップデートを送信する必要があります。
    • お客様が順番待ちリストに加わったことを確認するため。
    • テーブルの準備ができたことをユーザーに伝える。
    • 順番待ちリストへの登録がキャンセルされたことをユーザーに通知する。
  • SMS メッセージには、ユーザーが順番待ちリストの状況を確認できるページへのリンクを含める必要があります。
  • 順番待ちリストのみを利用する販売者は、アクション センターに在庫状況フィードを提供する必要はありません。
  • 予約サーバーは、予約サーバーを実装するに記載されている順番待ちリスト固有の手順をすべて実装する必要があります。予約と順番待ちリストの両方をサポートしているパートナーは、既存の予約サーバーに新しい方法を追加できます。
  • アクション センターは、予約サーバーの順番待ちリスト メソッド用に一連のテストケースを実行します。

ステータスのフローチャート

次の表は、 GetWaitlistEntry の呼び出しに応答する際に WaitlistEntry.waitlist_entry_state で報告する必要があるステータスを示しています。また、このチャートには、 WaitlistEntry.waitlist_entry_state_times.*_time_seconds フィールドの記録と入力を行うタイミングと、新しい状態になったことをユーザーに通知するために SMS を送信するタイミングも示されています。

図 3: 順番待ちリストのステータスのフローチャート
図: 3 順番待ちリストのステータスのフローチャート

一般的なエッジケース

予約の順番待ちリストの統合における一般的なエッジケースと、おすすめのソリューションは次のとおりです。

  • 一部の人数(ただしすべてではない)が順番待ちリストへの新規追加を受け付けていない場合は、BatchGetWaitEstimates レスポンスですべての人数に対して WaitEstimates を返し、ユーザーが待ち時間なしでウェイティング リストに登録できるようにすることが推奨されます。0 parties_ahead_count を含む WaitLength、または 0 start_seconds および 0 の end_seconds を含む party_size を待ち時間なしで返す estimated_seat_time_range
  • 待ち時間が長すぎて順番待ちリストへの新規追加を受け付けていない場合、その人数については BatchGetWaitEstimates レスポンスで WaitEstimates を省略することをおすすめします。

この方法は、販売者の順番待ちリストが完全に登録されていない場合でも、ユーザーに選択肢を提供できるため、推奨されます。

予約の順番待ちリストのみを利用するパートナー向けのガイドライン

予約サーバーが順番待ちリストのみに使用される場合は、次の点に注意してください。

  • 予約の順番待ちリストのみのパートナーは、「Google で予約」に空き状況フィードを提供していません。
  • 予約の順番待ちリストのみのパートナーは、予約サーバーに予約メソッドを実装しません。代わりに、順番待ちリストの実装の手順に沿って予約サーバーを実装してください。
  • 予約の順番待ちリストのみのパートナーは、Google に対して API 呼び出しを行いません。つまり、予約の順番待ちリストのみを使用するパートナーは、クラウド プロジェクトを設定したり、デベロッパーのメールアドレスを指定したりする必要はありません。リアルタイムの API 更新を完了する必要はありません。ただし、販売者フィードとサービスフィードはアクション センターに提供する必要があります。

販売者が順番待ちリストへの追加を手動で承認または拒否する必要があるパートナー向けのガイドライン

販売者が Google からの順番待ちリストへの新規追加を手動で承認または拒否する必要がある場合は、追加の手順が必要です。

  • 手動での確認が必要な人数の場合は、wait_estimatewaitlist_confirmation_modeWAITLIST_CONFIRMATION_MODE_ASYNCHRONOUS に設定します。BatchGetWaitEstimateResponseGetWaitlistEntryResponse で設定する必要があります。
  • ユーザーがリクエストしたものの、販売者がまだ承認していない順番待ちリストのエントリは、PENDING_MERCHANT_CONFIRMATION 状態になります。

予約の順番待ちリストのテストケース

Google では、予約サーバーの実装における順番待ちリスト メソッドの機能を確認するために、次のユースケースをテストしています。また、Google はレイテンシのテストとモニタリングも行っています。公開前にこれらのテストにすべて合格する必要があります。

WaitEstimate の取得

  • 推定待ち時間は、BatchGetWaitEstimatesRequest でリクエストされた人数ごとに返されます。
  • 順番待ちリストへの新規追加を承認または拒否できる人数の場合は、waitlist_confirmation_mode を WAITLIST_CONFIRMATION_MODE_ASYNCHRONOUS に設定します。

順番待ちリストエントリの作成

  • 順番待ちリストのエントリは CreateWaitlistEntry リクエストから作成できます。
  • 順番待ちリストのエントリの作成に失敗すると、レスポンスにビジネス ロジック エラーが表示されます。
  • CreateWaitlistEntry が成功した場合、同じ CreateWaitlistEntry を再度受信したときに同じレスポンスが返されます。
  • CreateWaitlistEntry の試行が失敗した場合、同じ CreateWaitlistEntry を再度受信したときにサーバーは再試行します。
  • 順番待ちリストエントリは販売者のインターフェースに表示されます。
  • GetWaitlistEntry を呼び出すと、作成された順番待ちリストのエントリが正常に返されます。

順番待ちリストエントリのステータスとタイムスタンプ

  • 順番待ちリストの各エントリの状態が、GetWaitlistEntry レスポンスの順番待ちリスト エントリで適切に返されることを確認します。
  • GetWaitlistEntry レスポンスの順番待ちリストエントリの適切なタイムスタンプ フィールドに、各状態のタイムスタンプが設定されていることを確認します。

順番待ちリストエントリの削除

  • 既存の順番待ちリストエントリは削除できます。削除が成功した場合、レスポンスは空の proto {} である必要があります。

オプトアウト

順番待ちリストのサービス フィードのサンプル(JSON)

順番待ちリストのサービス フィード

販売者のオプトアウト

以前にウェイティング リストを有効にしていてオプトアウトにした販売者については、一定の回答が得られることを期待しています。

緊急のオプトアウト

通常のオプトアウト

  • 販売者が予約をオプトアウトしていない場合は、販売者のサービス フィードから waitlist_rules を削除します。
  • 販売者がすべての Google 統合を無効にしている場合は、販売者フィードから販売者を削除します。