概要

予約の順番待ちリスト プログラムに参加しているパートナーは、利用を開始する前にアカウントの設定を完了する必要があります。ただし、順番待ちリストの機能では、全般ガイドの一部の手順は必要ありません。このページのガイドラインでは、「Google で予約」の順番待ちリスト機能を使用するパートナー向けの手順について説明します。統合手順に入る前に、この概要をお読みになることをおすすめします。

公開プロセス

図 1 は、Actions Center で順番待ちリスト対応の販売者情報を公開するプロセスの概要を示しています。

図 1: 大まかな統合手順
図 1: 大まかな統合手順

図 2 には、販売者(パートナー)と Google の間の主なデータの流れがまとめられています。

図 2: 統合のデータフローの図
Figure 2: 統合時のデータの流れの図

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

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

  • すべての予約順番待ちリストの販売者のサービスには、入力済みの waitlist_rules が必要です。
    • ウェイティング リストと予約の両方に同じサービスを使用する必要があります。つまり、レストランで予約も可能にしている場合は、予約サービスの待機リスト関連のメタデータを追加するだけです。
  • 順番待ちリストの実装では、次の場合に SMS の最新情報を送信する必要があります。
    • お客様が順番待ちリストに正常に登録されたことを確認します。
    • テーブルの準備ができたことをユーザーに通知します。
    • 順番待ちリストへの登録がキャンセルされたことをユーザーに通知する。
  • SMS メッセージには、ユーザーが順番待ちのステータスを確認できるページへのリンクを含める必要があります。
  • 順番待ちリストのみを利用する販売者は、Actions Center に空き情報フィードを提供する必要はありません。
  • 予約サーバーでは、予約サーバーの実装に記載されている順番待ちリスト用の手順をすべて完了する必要があります。予約と順番待ちリストの両方を利用するパートナーは、既存の予約サーバーに新しいメソッドを追加できます。
  • Actions Center は、予約サーバーの順番待ちリストを対象に、一連のテストケースを実行します。

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

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

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

一般的なエッジケース

以下は、予約の順番待ちリストの統合における一般的なエッジケースと推奨される解決策です。

  • 待ち時間がないため、順番待ちリストの新規追加を受け付けない人数の場合は、BatchGetWaitEstimates レスポンスで、すべての人数の WaitEstimates を返し、ユーザーがその人数で、待ち時間なしで順番待ちリストに参加できるようにすることをおすすめします。0 parties_ahead_countWaitLength を返すか、start_seconds が 0 で end_seconds が 0 の estimated_seat_time_range を返します。party_size が待機状態でない場合に使用します。
  • 待ち時間が長すぎて、順番待ちリストの新規追加を受け付けない人数の場合は、BatchGetWaitEstimates レスポンスで、その人数の WaitEstimates を省略します。

販売者の順番待ちリストが完全にオープンになっていない場合でも、ユーザーに選択肢を与えることができるため、これらの方法が推奨されます。

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

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

  • 予約の順番待ちリストのみを利用するパートナーは、「Google で予約」に空き情報フィードは提供しません。
  • 予約と順番待ちリストのみを利用するパートナーは、予約サーバーに予約メソッドを実装しません。代わりに、順番待ちリストの実装手順に従い、予約サーバーを実装します。
  • 予約の順番待ちリストのみを利用するパートナーは、Google に対して API 呼び出しを実行することはありません。つまり、予約の順番待ちリストのみを利用するパートナーは、クラウド プロジェクトを設定したり、デベロッパーのメールアドレスを指定したりする必要はありません。リアルタイムの API 更新を行う必要はありません。ただし、販売者フィードとサービス フィードは引き続き Actions Center に提供する必要があります。

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

販売者が、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 サービスのすべての統合をオプトアウトしている場合は、販売者フィードからその販売者を削除します。