用于付款重定向的网址模板

用户预订了具有特定价格的空闲时段后,系统会使用您定义的网址将用户重定向到您的预订页面。以下步骤将展示如何执行以下操作:

  1. 定义网址模板。
  2. 在 Feed 中设置网址模板。
  3. 针对每个空闲时段启用链接。
  4. 验证 Action Center 中的字段。

1. 定义网址模板。

URI 模板遵循互联网工程任务组 (IETF) RFC6570 Level 2 URI 模板规范,详情请访问 datatracker.ietf.org。 该网址由您设置,其中包含的参数会动态填充与相应预订相关的信息。下表列出了 URI 模板可用的必需参数和可选参数。

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

网址模板的可用值

模板参数 必需 / 可选 Feed 字段 示例值
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

2. 在 Feed 中设置 URI 模板。

以下部分假设您已与现有服务 Feed 建立有效的端到端集成。您定义的网址将设置在服务 Feed 中,以下内容包含该字段的定义。

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.
  //
  // Available parameters for Dining Reservation Linkout:
  // 1) (required) {availability_slot_start_seconds} :: populated from start_sec
  //   field in availability feed
  // 2) (required) {resources_party_size} :: populated from party_size field in
  //   availability feed
  // 3) (optional) {availability_slot_duration_seconds} :: populated from
  //   duration_sec field in availability feed
  // 4) (optional) {availability_slot_availability_tag} :: populated from
  //   availability_tag 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"
          }
        ]
      }
    }
  ]
}

以下部分假定您已通过现有的商品目录 Feed实现了完整的端到端集成。在服务 Feed 中设置网址模板后,您需要指定哪些可用性空档需要进行链接跳转。

为此,您可以添加值为 PAYMENT_REQUIREDlinkout_required_reason 字段。

Linkout 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. 验证 Action Center 中的字段

成功提交 Feed 且 Feed 历史记录中没有错误后,您可以按照以下步骤验证字段。

产品目录查看器中的网址模板

您可以在商家商品目录视图的“服务”部分中找到网址模板定义。您可以在“Feed 代码段”部分下找到该模板。 如需详细了解商家视图和服务视图,请参阅广告资源视图

图 1:在操作中心内查找网址的示例

“可用性查看器”中的“链接到外部网站的原因”

空闲情况视图中查看特定空闲时段时,您会看到 linkout_required_reason 字段。

图 1:在操作中心内查找网址的示例