以下のベスト プラクティスは、Actions Center のローカル サービス広告のエンドツーエンド統合に適用され、ユーザビリティとパフォーマンスの問題を回避するために活用できます。データ品質が低いと、広告枠が削除される可能性があります。
フィード
- サービスに長さが設定されていない場合は、空き状況フィードで 
duration_secを次のいずれかに設定します。- サービスを合理的な方法で実行するのにかかる秒数。
 - 
        
サービスを完了するために必要な平均秒数。
 
 - 販売者のフィード内の 
Categoryフィールド入力を具体的にします。たとえば、レストランの場合は、フランス料理や日本料理など、特定の種類を指定することも可能です。詳しくは、カテゴリの値の候補に関するプレイスタイプをご覧ください。 - 
    
販売者フィード内の
Termsフィールドに販売者固有の利用規約を設定すると、[予約] ボタンの下に次の注記が表示されます。続行すると、<merchant> の利用規約に同意したことになります。
この場合、「利用規約」のリンクをクリックすると、[利用規約] テキスト フィールドに設定されたテキストが表示されます。 - 
    
gzipを使用してフィードを圧縮する 
予約サーバー
Maps Booking API の統合を最適化するには、次の操作を行います。
- 必ず UTC 形式の UNIX タイムスタンプを使用してください。
 - 
      
CreateBookingAPI で新しい予約が呼び出されたときに、一意の予約 ID を生成します。 
リアルタイム アップデート
予約プロセスで最適なユーザー エクスペリエンスを実現するには、次の手順を行います。
- 標準の実装では、BookingNotifications API を使用して、予約の開始時間、所要時間、予約ステータス(キャンセルやノーショーなど)を変更します。
 - お客様側で Actions Center の予約を変更した場合は、必ず BookingNotification API を使用してシステムからリアルタイムで予約の更新を送信し、Actions Center 側でデータが古くならないようにしてください。たとえば、Actions Center のシステムから予約のキャンセル、スケジュール変更、更新を行うことができます。
 UpdateBookingRequestからの予約更新ごとに、UpdateBookingResponse値に予約 ID が含まれていること、更新されたすべてのフィールドに新しい値が反映されていることを確認します。- 
    Inventory RTU が実装されている場合
    
- 空き状況は、API 呼び出しごとに 100 ~ 1,000 個のスロット単位でのみ更新してください。
 - 
        
*Restrict(startTimeRestrictなど)フィールドを使用して編集対象を絞り込み、ペイロードのサイズを削減し、変更されていないデータの再送信を回避します。 - 
        複数のスレッドをスピンオフする場合は、スロットル エラーを防ぐために指数バックオフを実装します。指数バックオフを正しく実装しないと、
RESOURCE_EXHAUSTED割り当てエラーが発生する可能性があります。指数バックオフを再試行して処理できますが、ReplaceServiceAvailabilityの実行時にサーバーが割り当て容量に達することが頻繁にある場合は、空き状況の一括置換するようにサーバーを構成します。このソリューションは、サーバー側で行う API 呼び出しの数を減らすため、割り当てエラーを防ぐことができます。 
 - API 呼び出しの応答時間の上限を 1 秒未満に設定します。サーバーが、95% 以上の確率で 5 つのクエリを 1 秒未満のレイテンシで処理できることを確認します。