แนวทางปฏิบัติแนะนำ

คู่มือนี้จะเน้นข้อกำหนดและตัวอย่างของข้อเสนอการสั่งอาหาร

การมีสิทธิ์และนโยบาย

ส่วนนี้จะไฮไลต์เกณฑ์การมีสิทธิ์ที่สำคัญซึ่งพาร์ทเนอร์ต้องปฏิบัติตามเมื่อเสนอข้อเสนอ คุณควรทดสอบข้อเสนอทุกประเภทที่วางแผนจะเปิดตัวระหว่างการทดสอบฟีดแซนด์บ็อกซ์ หากไม่แน่ใจว่าข้อเสนอมีสิทธิ์หรือไม่ โปรดติดต่อตัวแทนติดต่อ Google ของคุณ

ยกเว้นข้อเสนอที่ปรับตามโปรไฟล์ของผู้ใช้และข้อเสนอแบบใช้ครั้งเดียว

พาร์ทเนอร์ต้องไม่ รวมข้อเสนอที่จำกัดไว้สำหรับผู้ใช้บางกลุ่มเพื่อให้ผู้ใช้ได้รับประสบการณ์การใช้งานที่มีคุณภาพสูงและสม่ำเสมอ ข้อเสนอที่ปรับเปลี่ยนในแบบของคุณ ซึ่งสร้างขึ้นสำหรับผู้ใช้บางรายเท่านั้นจะไม่มีสิทธิ์ เราอนุญาตให้ใช้ข้อเสนอระดับแพลตฟอร์ม ที่มีสิทธิ์สำหรับผู้ใช้ทั้งหมด เช่น ผู้ใช้ที่ใช้เป็นครั้งแรกหรือผู้ที่สั่งซื้อเป็นครั้งแรกที่ร้านอาหาร แห่งใดแห่งหนึ่ง ได้ หากข้อเสนอแสดงใน หน้า Landing Page ของข้อเสนอสำหรับผู้ใช้ทั้งหมด ต้องระบุเงื่อนไขของข้อเสนออย่างชัดเจนใน ชื่อข้อเสนอและในหน้า Landing Page ของ URL ของข้อเสนอ ข้อเสนอต้องปรากฏใน หน้า Landing Page ของข้อเสนอสำหรับผู้ใช้ทุกคนเมื่อออกจากระบบหรือเข้าสู่ระบบเว็บไซต์หรือ แอป

ข้อเสนอที่มีรหัสคูปอง

ข้อเสนอบางอย่างกำหนดให้ผู้ใช้ป้อนรหัสคูปอง เช่น "ใช้รหัส SAVE20 เพื่อรับส่วนลด 20% สำหรับยอดเรียกเก็บเงินทั้งหมด" โปรดทราบว่า Google ไม่แสดงรหัสคูปองจากคำจำกัดความของคูปอง พาร์ทเนอร์อาจรวมข้อมูลนี้ไว้ใน OfferDetails.offer_display_text เพื่อแสดงต่อผู้ใช้ โดยทั่วไปแล้ว ข้อเสนอที่อิงตามคูปองจะแบ่งออกเป็น 2 หมวดหมู่ ดังนี้

  • ข้อเสนอที่ระบบแสดงคูปองโดยอัตโนมัติที่จุดชำระเงินต่อผู้ใช้ที่มาจาก Google ซึ่งได้รับอนุญาต
  • ไม่อนุญาตให้ใช้ข้อเสนอที่กำหนดให้ผู้ใช้ป้อนรหัสคูปองที่จุดชำระเงิน แต่ไม่ได้ ระบุวิธีการใช้รหัสคูปองในหน้า Landing Page ของ URL ข้อเสนอ หรือไม่ได้ใช้คูปองโดยอัตโนมัติเมื่อทำตาม URL ข้อเสนอ

เสนอเนื้อหาและโครงสร้าง

ส่วนนี้จะอธิบายรายละเอียดข้อกำหนดสำหรับเนื้อหาและโครงสร้างของ ข้อเสนอที่ระบุไว้ในฟีด รวมถึงตัวอย่างข้อมูลเมตาที่มีโครงสร้าง

ข้อความที่แสดงของข้อเสนอและข้อกำหนดของข้อเสนอ

OfferDetails.offer_display_text เป็นฟิลด์ที่ต้องระบุซึ่งทำหน้าที่เป็นพาดหัวแบบย่อเพื่อให้มองเห็นได้ทันที ในส่วนข้อเสนอบน Google Search เช่น "ลด ฿100" หรือ "ประหยัด 15%"

OfferDetails.offer_specification เป็นฟิลด์"อย่างใดอย่างหนึ่ง" ที่ต้องระบุภายใน OfferDetails ซึ่งหมายความว่าต้องระบุฟิลด์ใดฟิลด์หนึ่งต่อไปนี้เพื่อระบุดีล

  • discount_value
  • discount_percentage
  • other_offer_details_text

ฟิลด์ OfferDetails.other_offer_details_text เป็นฟิลด์ข้อความแบบอิสระที่ใช้เพื่อเสริม offer_display_text เมื่อไม่สามารถแสดงข้อเสนอเป็นมูลค่าส่วนลดคงที่หรือเปอร์เซ็นต์ หาก offer_display_text เพียงพอที่จะสื่อข้อมูลที่จำเป็นทั้งหมด เกี่ยวกับข้อเสนอแล้ว ให้ป้อนข้อความเดียวกันกับ offer_display_text ในช่อง other_offer_details_text อย่างไรก็ตาม สำหรับดีลที่ซับซ้อน ฟิลด์นี้ควรระบุคำอธิบายที่เฉพาะเจาะจงของรางวัล

ฟิลด์ข้อมูลเมตาที่มีโครงสร้าง

หากต้องการปรับปรุงความชัดเจนของข้อเสนอและช่วยให้การจัดอันดับและการกรองดีขึ้น พาร์ทเนอร์ต้อง ระบุข้อมูลเมตาของข้อเสนอในฟิลด์ที่มีโครงสร้างที่เกี่ยวข้อง ต้องระบุฟิลด์ terms.terms_and_conditions ค่าควรมีเงื่อนไขเกี่ยวกับวิธีแลกรับข้อเสนอ ตัวอย่างเช่น คุณอาจป้อนข้อมูลในฟิลด์นี้ด้วยข้อกำหนดโดยละเอียดที่ แสดงต่อผู้ใช้ในหน้า Landing Page ของข้อเสนอ

ข้อเสนอที่เฉพาะเจาะจงสำหรับชุดย่อยของสินค้าต้องใช้ฟิลด์ terms.terms_and_conditions หรือฟิลด์ offer_restrictions.inclusions และ offer_restrictions.exclusions เพื่อกำหนดสินค้าที่มีสิทธิ์

ตัวอย่าง JSON ของข้อเสนอ

ส่วนลดคงที่ $20

ตัวอย่าง: ส่วนลด 200 บาทในวันอังคารเมื่อใช้จ่ายขั้นต่ำ 150 บาท

{
  "offer_id": "offer-example-1-takeout",
  "offer_source": "OFFER_SOURCE_AGGREGATOR",
  "action_type": "ACTION_TYPE_FOOD_TAKEOUT",
  "offer_modes": ["OFFER_MODE_ONLINE_ORDER"],
  "offer_category": "OFFER_CATEGORY_BASE_OFFER",
  "offer_details": {
    "offer_display_text": "$20 off on Tuesdays",
    "discount_value": {
      "currency_code": "USD",
      "units": 20
    },
    "min_spend_value": {
      "currency_code": "USD",
      "units": 15
    }
  },
  "validity_periods": [
    {
      "valid_period": {
        "valid_from_time": { "seconds": 1768953600 },
        "valid_through_time": { "seconds": 1795219200 }
      },
      "time_of_day": [
        {
          "time_windows": {
            "open_time": { "hours": 9 },
            "close_time": { "hours": 20, "minutes": 59, "seconds": 59 }
          },
          "day_of_week": ["TUESDAY"]
        }
      ]
    }
  ],
  "offer_restrictions": {
    "combinable_with_other_offers": false
  },
  "terms": {
    "terms_and_conditions": "For use only at the participating restaurant location on qualifying delivery or takeout orders with $15 minimum spend. Single use per order. Offer may not be combined with any other offers, discounts, or promotions. Valid only on Tuesdays."
  },
  "entity_ids": ["dining-1"],
  "offer_url": "https://www.example-restaurant.com/offer/base_offer_1"
}

ข้อเสนอซื้อ 1 แถม 1

ตัวอย่าง: ข้อเสนอซื้ออาหารเรียกน้ำย่อย 1 แถม 1 ใช้ได้ตั้งแต่วันจันทร์ถึงวันพฤหัสบดี

{
  "offer_id": "offer-example-2-delivery",
  "offer_source": "OFFER_SOURCE_AGGREGATOR",
  "action_type": "ACTION_TYPE_FOOD_DELIVERY",
  "offer_modes": ["OFFER_MODE_ONLINE_ORDER"],
  "offer_category": "OFFER_CATEGORY_BASE_OFFER",
  "offer_details": {
    "offer_display_text": "Buy one appetizer, get one free",
    "other_offer_detail_text": "Buy one appetizer, get one free"
  },
  "validity_periods": [
    {
      "valid_period": {
        "valid_from_time": { "seconds": 1768953600 },
        "valid_through_time": { "seconds": 1795219200 }
      },
      "time_of_day": [
        {
          "time_windows": {
            "open_time": { "hours": 10 },
            "close_time": { "hours": 23, "minutes": 59, "seconds": 59 }
          },
          "day_of_week": ["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY"]
        }
      ]
    }
  ],
  "offer_restrictions": {
    "combinable_with_other_offers": true,
    "inclusions": [
      {
        "description": "appetizers"
      }
    ]
  },
  "terms": {
    "terms_and_conditions": "For use only at the participating restaurant location on qualifying delivery or takeout orders. Single use per order. Valid on all menu appetizers. Offer may be combined with any other offers, discounts, or promotions. Valid Monday through Thursday."
  },
  "entity_ids": ["dining-1"],
  "offer_url": "https://www.example-restaurant.com/offer/base_offer_4"
}

ข้อเสนอส่วนลดเป็นเปอร์เซ็นต์

ตัวอย่าง: ลด 25% สำหรับแซนวิชทั้งหมด

{
  "offer_id": "offer-example-3-delivery",
  "offer_source": "OFFER_SOURCE_AGGREGATOR",
  "action_type": "ACTION_TYPE_FOOD_DELIVERY",
  "offer_modes": ["OFFER_MODE_ONLINE_ORDER"],
  "offer_category": "OFFER_CATEGORY_BASE_OFFER",
  "offer_details": {
    "offer_display_text": "25% off on all Sandwiches",
    "discount_percent": 25.0
  },
  "validity_periods": [
    {
      "valid_period": {
        "valid_from_time": { "seconds": 1768953600 },
        "valid_through_time": { "seconds": 1795219200 }
      }
    }
  ],
  "offer_restrictions": {
    "combinable_with_other_offers": true,
    "combinable_offer_ids": ["offer-example-4-delivery"],
    "inclusions": [
      "Sandwiches"
    ]
  },
  "terms": {
    "terms_and_conditions": "For use only at the participating restaurant location on qualifying delivery or takeout orders. Applies to specific items only. Single use per order. May be combined with any other offers, discounts, or promotions."
  },
  "entity_ids": ["dining-1"],
  "offer_url": "https://www.example-restaurant.com/offer/base_offer_2"
}

ข้อเสนอบริการจัดส่งฟรี

ตัวอย่างเช่น จัดส่งฟรีเมื่อมียอดสั่งซื้อมากกว่า $30 หรือคิดค่าจัดส่งที่ 7.00$

{
  "offer_id": "offer-example-4-delivery",
  "offer_source": "OFFER_SOURCE_AGGREGATOR",
  "action_type": "ACTION_TYPE_FOOD_DELIVERY",
  "offer_modes": ["OFFER_MODE_ONLINE_ORDER"],
  "offer_category": "OFFER_CATEGORY_BASE_OFFER",
  "offer_details": {
    "offer_display_text": "Free delivery on orders over $30",
    "discount_value": {
      "currency_code": "USD",
      "units": 7
    },
    "min_spend_value": {
      "currency_code": "USD",
      "units": 30
    }
  },
  "validity_periods": [
    {
      "valid_period": {
        "valid_from_time": { "seconds": 1768953600 },
        "valid_through_time": { "seconds": 1795219200 }
      }
    }
  ],
  "offer_restrictions": {
    "combinable_with_other_offers": true
  },
  "terms": {
    "terms_and_conditions": "For use only at the participating restaurant location on qualifying delivery orders with $30 minimum spend. Delivery is $7.00 otherwise. Single use per order. May be combined with any other offers, discounts, or promotions."
  },
  "entity_ids": ["dining-1"],
  "offer_url": "https://www.example-restaurant.com/offer/base_offer_3"
}

ตัวอย่างข้อเสนอพื้นฐานที่มีข้อเสนอส่วนเสริม

ตัวอย่าง: ร้านอาหารเสนอส่วนลด 10% สำหรับมื้อกลางวันในวันธรรมดาเท่านั้น และส่วนลด 5% ทุกเวลาเมื่อชำระเงินด้วยบัตรเครดิตที่เฉพาะเจาะจง

[
  {
    "offer_id": "offerId1",
    "offer_source": "OFFER_SOURCE_AGGREGATOR",
    "action_type": "ACTION_TYPE_FOOD_TAKEOUT",
    "offer_modes": ["OFFER_MODE_ONLINE_ORDER"],
    "offer_category": "OFFER_CATEGORY_BASE_OFFER",
    "offer_details": {
      "offer_display_text": "10% off",
      "discount_percent": 10.0
    },
    "validity_periods": [
      {
        "valid_period": {
          "valid_from_time": { "seconds": 1768953600 },
          "valid_through_time": { "seconds": 1795219200 }
        },
        "time_of_day": [
          {
            "day_of_week": ["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY"]
          }
        ]
      }
    ],
    "offer_restrictions": {
      "combinable_with_other_offers": true,
      "combinable_offer_categories": ["OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER"]
    },
    "terms": {
      "terms_and_conditions": "For use only at the participating restaurant location on qualifying delivery or takeout orders. Single use per order. Offer may be combined with any other offers, discounts, or promotions."
    },
    "entity_ids": ["dining-1"],
    "offer_url": "https://www.example-restaurant.com/offer/base_offer_5"
  },
  {
    "offer_id": "offerId2",
    "offer_source": "OFFER_SOURCE_AGGREGATOR",
    "action_type": "ACTION_TYPE_FOOD_TAKEOUT",
    "offer_modes": ["OFFER_MODE_ONLINE_ORDER"],
    "offer_category": "OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER",
    "offer_details": {
      "offer_display_text": "5% off",
      "discount_percent": 5.0
    },
    "validity_periods": [
      {
        "valid_period": {
          "valid_from_time": { "seconds": 1768953600 },
          "valid_through_time": { "seconds": 1795219200 }
        },
        "time_of_day": [
          {
            "day_of_week": ["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY"]
          }
        ]
      }
    ],
    "offer_restrictions": {
      "combinable_with_other_offers": true,
      "combinable_offer_ids": ["offerId1"]
    },
    "payment_instrument": {
      "items": [
        { "type": "PAYMENT_INSTRUMENT_CREDIT_CARD", "name": "Participating Credit Card" }
      ],
      "provider_name": "Card Provider"
    },
    "terms": {
      "terms_and_conditions": "For use only at the participating restaurant location on qualifying delivery or takeout orders. Single use per order. Offer may be combined with any other offers, discounts, or promotions."
    },
    "entity_ids": ["dining-1"],
    "offer_url": "https://www.example-restaurant.com/offer/addon_offer_1"
  }
]

การดำเนินการตามคำสั่งซื้อและข้อจำกัด

ส่วนนี้จะอธิบายรายละเอียดข้อกำหนดและแนวทางปฏิบัติแนะนำที่เกี่ยวข้องกับข้อกำหนดในการแลกรับข้อเสนอและข้อจำกัดที่เกี่ยวข้อง

โหมดการดำเนินการ (การนำส่งและซื้อกลับบ้าน)

หากดีลเดียวใช้ได้ทั้งการนำส่งและซื้อกลับบ้าน ดีลนั้นต้องมีข้อเสนอ 2 รายการ ในฟีด โดยแต่ละรายการต้องมี ActionType เฉพาะ ดังนี้

  • ACTION_TYPE_FOOD_DELIVERY
  • ACTION_TYPE_FOOD_TAKEOUT

ซึ่งจะช่วยให้ผู้ใช้ที่เข้าสู่เว็บไซต์ของพาร์ทเนอร์ได้รับ บริบทการปฏิบัติตามคำสั่งที่ถูกต้อง

กรอบเวลา

ระบบคาดหวังให้แสดงข้อเสนอในหน้า Landing Page ของข้อเสนอต่อผู้ใช้ทั้งหมดเมื่อ ไม่ได้เข้าสู่ระบบหรือเข้าสู่ระบบเว็บไซต์หรือแอป หากข้อเสนอใช้ได้ในช่วงเวลาที่ เฉพาะเจาะจง คุณต้องระบุฟิลด์ validity_periods.valid_period เพื่อระบุระยะเวลาที่ข้อเสนอใช้ได้ ซึ่งจะช่วยป้องกันไม่ให้ข้อเสนอแสดง นอกช่วงเวลาดังกล่าว นอกจากนี้ คุณต้องตั้งค่ากรอบเวลาด้วยหากข้อเสนอแสดงใน URL ของข้อเสนอในช่วงเวลาหนึ่งๆ ของวัน ตัวอย่างเช่น หากหน้า Landing Page ไม่แสดงข้อเสนอเมื่อร้านอาหารปิด คุณต้องระบุเวลาเปิดและปิดของ TimeOfDayWindow

จัดการกรอบเวลาที่ข้ามเที่ยงคืน

ข้อเสนอที่ครอบคลุมช่วงเที่ยงคืน (เช่น ใช้ได้ตั้งแต่เวลา 22:00 น. วันอังคารถึง 02:00 น. วันพุธ) ต้องแบ่งส่วนเพื่อให้ไปป์ไลน์การส่งผ่านข้อมูลประมวลผลได้อย่างถูกต้อง ข้อกำหนด: ใช้ฟิลด์ TimeOfDayWindow เพื่อแบ่งช่วงเวลาออกเป็น 2 ส่วนที่แตกต่างกัน ดังนี้

  • กลุ่ม 1: 22:00 น. ถึง 23:59:59 น. ในวันเริ่มต้น (เช่น วันอังคาร)
  • ช่วงที่ 2: 00:00 น. ถึง 02:00 น. ของวันถัดไป (เช่น วันพุธ)

ซึ่งจะช่วยให้มั่นใจได้ว่าระบบจะแสดงความถูกต้องของข้อเสนออย่างแม่นยำตลอดทั้ง ระยะเวลา

ข้อกำหนดค่าธรรมเนียม

คุณระบุค่าธรรมเนียมสำหรับการนำส่งและซื้อกลับบ้านได้โดยใช้ฟิลด์ OfferDetails.additional_fees ควรระบุค่าธรรมเนียมโดยใช้ OfferDetails.convenience_fee ใช้ค่าช่วงค่าธรรมเนียมสำหรับค่าธรรมเนียมแบบผันแปร เช่น หากค่าธรรมเนียมการนำส่งเปลี่ยนแปลง ตามสถานที่ตั้งของผู้ใช้