תבניות של כתובות URL להפניה אוטומטית לתשלום

אחרי שהמשתמש יבצע הזמנה של משבצת זמן פנויה במחיר מסוים, הוא יופנה לדף ההזמנה שלכם באמצעות כתובת URL שאתם מגדירים. בשלבים הבאים מוסבר איך:

  1. מגדירים את תבנית כתובת ה-URL.
  2. מגדירים את תבנית כתובת ה-URL בפידים.
  3. הפעלת קישור לאתר של המוכר לכל משבצת זמן פנויה.
  4. מאמתים את השדות במרכז הפעולות.

1. הגדרת תבנית כתובת URL.

תבנית ה-URI פועלת לפי מפרט תבנית ה-URI ברמה 2 של Internet Engineering Task Force ‏ (IETF) RFC6570. פרטים נוספים זמינים בכתובת 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 חובה availability start_sec 4152695841
resources_party_size חובה availability.resources party_size 2
availability_slot_availability_tag אופציונלי availability availability_tag res-123
availability_slot_duration_seconds אופציונלי availability duration_sec 3600

2. מגדירים את תבנית ה-URI בפיד.

בקטע הבא מניחים שיש לכם אינטגרציה פעילה מקצה לקצה עם פיד שירותים קיים. כתובת ה-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.
  //
  // 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;
}

Service Sample Definition

{
  "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"
          }
        ]
      }
    }
  ]
}

בקטע הבא מניחים שיש לכם אינטגרציה פעילה מקצה לקצה עם פיד זמינות קיים. אחרי שמגדירים את תבנית כתובת ה-URL בפיד השירות, צריך לציין אילו משבצות זמינות יפנו לאתר שלכם.

כדי לעשות זאת, מוסיפים את השדה linkout_required_reason עם הערך PAYMENT_REQUIRED.

הגדרה של הסיבה להפניה לאתר חיצוני

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. אימות השדות ב-Actions Center

אחרי ששולחים את הפידים בהצלחה ואין שגיאות בהיסטוריית הפידים, אפשר לאמת את השדות באמצעות השלבים הבאים.

תבנית של כתובת URL בכלי לבדיקת מלאי שטחי פרסום

ההגדרה של תבנית כתובת ה-URL מופיעה בקטע 'שירותים' בתצוגת המלאי של מוכר. התבנית נמצאת בקטע 'קטע קוד של פיד'. פרטים נוספים על תצוגת המוכר ותצוגת השירות זמינים במאמר בנושא תצוגת המלאי.

איור 1: דוגמה לאיתור כתובת URL במרכז הפעולות

הסיבה להפניה לקישור בכלי לבדיקת זמינות

אפשר לראות את השדה linkout_required_reason כשמציגים את משבצת הזמינות הספציפית בתצוגת הזמינות.

איור 1: דוגמה לאיתור כתובת URL במרכז הפעולות