支払いリダイレクトの URL テンプレート

特定の料金で空きスロットを予約すると、ユーザーは、お客様が定義した URL を使用して予約ページにリダイレクトされます。以下の手順では、次の方法について説明します。

  1. URL テンプレートを定義します。
  2. フィードに URL テンプレートを設定します。
  3. 予約枠ごとにリンクアウトを有効にします。
  4. アクション センターのフィールドを確認します。

1. URL テンプレートの定義」へようこそ。

URI テンプレートは、Internet Engineering Task Force(IETF)RFC6570 レベル 2 URI テンプレートの仕様に準拠しています。詳細については、datatracker.ietf.org をご覧ください。URL は、その予約に関連する情報で動的に入力されるパラメータを使用して設定します。次の表に、 URI テンプレートで使用可能な必須パラメータと省略可能なパラメータ。

`https://reservation-provider.com/examplerestaurant/book?date={availability_slot_start_seconds}&num_guests={resources_party_size}`

URL テンプレートに使用可能な値

テンプレート パラメータ 必須 / 省略可 フィード フィールド 値の例
availability_slot_start_seconds 必須 稼働率 start_sec 4152695841
resources_party_size 必須 availability.resources party_size 2
availability_slot_availability_tag 省略可 稼働率 availability_tag res-123
availability_slot_duration_seconds 省略可 稼働率 duration_sec 3600
resources_room_id 省略可 availability.resources room_id bar_123

2. フィードで URI テンプレートを設定します。

次のセクションでは、既存のサービスフィードとのライブ E2E 統合があることを前提としています。定義した URL は サービス フィードの場合、そのフィールドの定義が以下に含まれます。

message Service {
  // ..
  UriTemplate uri_template = 38;
}

URI テンプレートの定義

// A template specifying how Google should generate URLs to external site.
message UriTemplate {
  // The uri template must follow the RFC6570, see
  // https://datatracker.ietf.org/doc/html/rfc6570.
  // Supports Level 2 templates.
  // These parameters will be resolved to their values specified in their
  // respective entities.
  //
  // 5 available parameters for Dining Reservation Linkout:
  // 1) (required) {availability_slot_start_seconds} :: populated from start_sec
  //   field in availability feed
  // 2) (required) {availability_slot_duration_seconds} :: populated from
  //   duration_sec field in availability feed
  // 3) (optional) {resources_party_size} :: populated from party_size field in
  //   availability feed
  // 4) (optional) {availability_availability_tag} :: populated from
  //   availability_tag field in availability feed
  // 5) (optional) {resources_room_id} :: populated from room_id field in
  //   availability feed
  //
  // Example usage:
  // http://example.com/book/restaurant?start={availability_slot_start_seconds}
  // &num_guests={resources_party_size}
  // * start_sec = 123456
  // * party_size = 2
  // https://example.com/book/restaurant?start=123456&num_guests=2
  string uri_template = 1;
}

サービス サンプル定義

{
  "metadata": {
    "processing_instruction": "PROCESS_AS_COMPLETE",
    "shard_number": 0,
    "total_shards": 1,
    "nonce": "12484913",
    "generation_timestamp": 1530432018
  },
  "service": [
    {
      "merchant_id": "dining-A",
      "service_id": "reservation",
      "uri_template": {
        "uri_template": "https://reservation-provider.com/examplerestaurant/book?date={availability_slot_start_seconds}&num_guests={resources_party_size}"
      },
      "localized_service_name": {
        "value": "Reservation",
        "localized_value": [
          {
            "locale": "en",
            "value": "Reservation"
          }
        ]
      }
    }
  ]
}

次のセクションでは、既存の E2E 統合が存在することを前提としています。 空き情報フィード。URL テンプレートを どの予約枠をサービス フィードで 必要があります。

そのためには、値が PAYMENT_REQUIREDlinkout_required_reason フィールドを追加します。

リンクアウト理由の定義

message Availability {
  // ..
  LinkoutRequiredReason linkout_required_reason = 19;
}
  // The reason why a slot requires a linkout. Currently only used for Dining
  // Reservations Payment Redirect Partners.
  enum LinkoutRequiredReason {
    // Default value: Do not use, equates to unknown.
    LINKOUT_REQUIRED_REASON_UNSPECIFIED = 0;
    // Slot requires payment in the partner platform to be booked.
    PAYMENT_REQUIRED = 1;
  }

リンクアウトの理由の例の定義

{
  "metadata": {
    "processing_instruction": "PROCESS_AS_COMPLETE",
    "shard_number": 0,
    "total_shards": 1,
    "nonce": "11203880",
    "generation_timestamp": 1543875200
  },
  "service_availability": [
    {
      "availability": [
        {
          "merchant_id": "dining-A",
          "service_id": "reservation",
          "linkout_required_reason": "PAYMENT_REQUIRED",
          "start_sec": 1535853600,
          "duration_sec": 2700,
          "spots_total": 2,
          "spots_open": 2,
          "resources": {
            "room_id": "A-dining-room",
            "room_name": "Dining Room",
            "party_size": 2
          }
        }
      ]
    }
  ]
}

4. アクション センターのフィールドを確認する

フィードが正常に送信され、フィードにエラーがなくなると、 次の手順でフィールドを確認できます。

在庫ビューアの URL テンプレート

URL テンプレートの定義は、販売者の在庫ビューの [サービス] セクションで確認できます。テンプレートは [フィード スニペット] にありますできます。 販売者とパブリッシャーについて詳しくは、広告枠ビューをご覧ください。 サービスビュー。

<ph type="x-smartling-placeholder">
</ph> 図 1: アクション センターで URL を検索する例

空き情報ビューア内のリンクアウトの理由

linkout_reason_required フィールドは、空き状況ビューで特定の空き状況スロットを確認すると表示されます。

<ph type="x-smartling-placeholder">
</ph> 図 1: アクション センター内で URL を見つける例