บัตรของขวัญ (หรือที่เรียกว่าบัตรกำนัล)

คู่มือนี้สรุปข้อกำหนด คำแนะนำในการสร้างโมเดลข้อมูล และแนวทางปฏิบัติแนะนำสำหรับการใช้บัตรของขวัญ (หรือที่เรียกว่าบัตรกำนัล) ในฟีดข้อเสนอ คำแนะนำเหล่านี้จะเสริมเอกสารประกอบมาตรฐานของศูนย์การดำเนินการและกล่าวถึงแง่มุมของการผสานรวมที่เฉพาะเจาะจงกับบัตรของขวัญ

โหมดข้อเสนอและการจัดหมวดหมู่

เมื่อส่งสินค้าคงคลังบัตรของขวัญ โปรดตรวจสอบว่าได้กำหนดค่าแอตทริบิวต์หลักต่อไปนี้อย่างถูกต้อง

  • โหมดข้อเสนอ: offer_modes ต้องตั้งค่าเป็นอาร์เรย์ Singleton ที่มี "OFFER_MODE_GIFT_CARD_PURCHASE" เสมอ

    "offer_modes": ["OFFER_MODE_GIFT_CARD_PURCHASE"]
    
  • บัตรกำนัลแบบเก็บมูลค่าเทียบกับส่วนลดทันทีสำหรับลูกค้าที่เข้ามาใช้บริการ:

    • gift_card_info สงวนไว้สำหรับบัตรกำนัลแบบเก็บมูลค่าและบัตรของขวัญที่ซื้อไว้ล่วงหน้า (OFFER_MODE_GIFT_CARD_PURCHASE) เท่านั้น
    • หากลูกค้าชำระเงินที่เคาน์เตอร์ของร้านค้าจริงโดยตรงเพื่อรับส่วนลดทันทีโดยไม่ต้องซื้อรหัสบัตรกำนัลเพื่ออ้างสิทธิ์หรือแลกสิทธิ์ในภายหลัง ให้สร้างโมเดลข้อเสนอเป็นส่วนลดมาตรฐานสำหรับลูกค้าที่เข้ามาใช้บริการ (OFFER_MODE_WALK_IN) และละเว้นข้อความ gift_card_info ทั้งหมด
  • การสร้างโมเดลมูลค่า: มูลค่าของบัตรของขวัญควรแสดงถึงสิ่งที่ บัตรกำนัลมีมูลค่า (สิ่งที่แลกสิทธิ์ได้) ไม่ใช่ สิ่งที่ผู้ใช้ ชำระ (ผู้ใช้ชำระราคาที่มีส่วนลด)

  • การรวมมูลค่าหลายรายการ: บัตรกำนัลหลายรายการที่มี เปอร์เซ็นต์ส่วนลดและข้อกำหนดเดียวกันทุกประการ แต่มีมูลค่าที่ระบุไว้แตกต่างกันต้อง จัดกลุ่มไว้ในรายการข้อเสนอเดียว เนื่องจาก denomination_type ทำงานเป็น oneof พาร์ทเนอร์จึงต้องเลือกระหว่างการตั้งค่า fixed_denominations หรือ custom_range

    • มูลค่าคงที่: ใช้เมื่อมีการเสนอจำนวนเงินบัตรของขวัญที่แยกกันและกำหนดไว้ล่วงหน้า (เช่น ₹500, ₹1,000 และ ₹2,000 ทั้งหมดมีส่วนลด 10% แบบคงที่) ตรวจสอบว่าได้ยกเว้นมูลค่าคงที่ที่ขายหมดแล้วหรือไม่พร้อมให้บริการในหน้า Landing Page ออกจากการส่งฟีดอย่างชัดเจน
    • ช่วงที่กำหนดเอง: ใช้เฉพาะในกรณีที่ผู้ใช้ป้อนมูลค่าที่ระบุไว้ได้โดยอิสระภายในขอบเขตที่กำหนดในหน้าการซื้อ (เช่น มูลค่าใดก็ได้ ระหว่าง ₹100 ถึง ₹5,000 ที่มีส่วนลด 5%) หากหน้า Landing Page ปลายทางเสนอจำนวนเงินที่แยกกันและกำหนดไว้ล่วงหน้า ให้สร้างโมเดลสินค้าคงคลังภายใต้ fixed_denominations เท่านั้น นอกจากนี้ หากมีทั้งมูลค่าคงที่และมูลค่าที่กำหนดเองสำหรับข้อเสนอ พาร์ทเนอร์ควรตั้งค่าช่วงที่กำหนดเองแบบยืดหยุ่น

การจัดการเชนร้านค้าที่มีหลายสถานที่ตั้ง

สำหรับบัตรกำนัลที่ใช้ได้กับเชนร้านค้าปลีกหรือร้านอาหารขนาดใหญ่ที่มีข้อกำหนดเหมือนกันในจุดสนใจ (POI) หลายแห่ง ไม่ต้อง ระบุออบเจ็กต์ข้อเสนอแยกกันสำหรับสถานที่ตั้งร้านค้าแต่ละแห่ง แต่ให้ใช้วิธีการส่งข้อมูลแบบรวมโดยระบุออบเจ็กต์ข้อเสนอเดียวที่มีรายการรหัสเอนทิตีร้านค้าทั้งหมดที่เข้าร่วม (entity_ids)

การสร้างแบรนด์พอร์ทัล (brand_id)

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

แม้ว่าการละเว้น brand_id จะตั้งค่าเริ่มต้นเป็นแบรนด์หลักของบัญชี (และไม่จำเป็นต้องใช้ brand_id เมื่อใช้แบรนด์เริ่มต้นของบัญชี) แต่การป้อนข้อมูลใน brand_id อย่างชัดเจนจะเชื่อมโยงสินค้าคงคลังกับพอร์ทัลที่มีแบรนด์ที่เกี่ยวข้องอย่างถูกต้อง ซึ่งจะช่วยให้มั่นใจได้ว่าระบบจะแสดงโลโก้และชื่อที่เฉพาะเจาะจงของพาร์ทเนอร์ต่อผู้ใช้ ดูวิธีการเพิ่มเติมเกี่ยวกับการกำหนดค่าแบรนด์ได้ที่ การกำหนดค่าแบรนด์

โครงสร้างความถูกต้อง (ValidityScope)

บัตรของขวัญมีโครงสร้างความถูกต้องที่ไม่ซ้ำกัน ซึ่งแยกกรอบเวลาในการซื้อดีลออกจากระยะเวลาในการแลกสิทธิ์บัตร พาร์ทเนอร์ต้องใช้ค่า enum ValidityScope ที่เกี่ยวข้องเสมอ

  • VALIDITY_SCOPE_CLAIM: กำหนดกรอบเวลาที่ข้อเสนอบัตรของขวัญพร้อมให้ซื้อในแพลตฟอร์มพาร์ทเนอร์ รายการนี้ต้องมีอยู่เสมอ เมื่อส่งฟีด ให้ป้อนระยะเวลาความถูกต้องของการอ้างสิทธิ์โดยเริ่มจากวันที่ส่งฟีดที่แน่นอน นอกจากนี้ อย่าปล่อยให้ระยะเวลาการอ้างสิทธิ์ไม่มีกำหนดหากหน้า Landing Page โฆษณาวันที่สิ้นสุดแคมเปญอย่างชัดเจน ให้ตั้งค่า valid_through_time ให้ตรงกับวันที่หมดอายุที่โฆษณา
  • VALIDITY_SCOPE_REDEEM: กำหนดระยะเวลาการแลกสิทธิ์หลังการซื้อ (กรอบเวลาที่ผู้ใช้ต้องแลกสิทธิ์บัตรกำนัลที่ร้านค้าหลังจากซื้อ ซึ่งระบุเป็นระยะเวลาหรือกรอบเวลาได้)

การแมปประเภทการดำเนินการ

พาร์ทเนอร์มักจะจัดหมวดหมู่บัตรกำนัลโดยใช้โครงสร้างต่างๆ เช่น "แลกสิทธิ์ออนไลน์/ออฟไลน์" "ออนไลน์/ร้านค้า" หรือ "ในร้านค้า" ในการส่งฟีด คุณต้องแมปโครงสร้างเหล่านี้กับ enum ActionType เพื่อกำหนดวิธีใช้ผลิตภัณฑ์อย่างถูกต้อง

  • หมวดหมู่ร้านอาหาร / อาหาร: แมปบัตรของขวัญ "รับประทานที่ร้าน" กับ ACTION_TYPE_DINING แมปบัตรของขวัญ "จัดส่ง" กับ ACTION_TYPE_FOOD_DELIVERY แมปบัตรของขวัญ "ซื้อกลับบ้าน" กับ ACTION_TYPE_FOOD_TAKEOUT
  • ประเภทธุรกิจการค้าปลีก: แมปบัตรของขวัญ "ในร้านค้า" กับ ACTION_TYPE_SHOPPING_IN_STORE (หมายเหตุ: ระบบไม่รองรับบัตรกำนัลสำหรับการค้าปลีกออนไลน์เท่านั้น)
  • การแมปช่องทางเดียว: offer_id แต่ละรายการเป็นของ ActionType ได้เพียงรายการเดียวเท่านั้น หากสินค้าคงคลังรองรับช่องทางการดำเนินการหลายช่องทาง (เช่น ทั้งการจัดส่งอาหารและการซื้อกลับบ้าน) ให้สร้างออบเจ็กต์ข้อเสนอที่แตกต่างกันโดยมีรหัสที่ไม่ซ้ำกันสำหรับแต่ละโหมด

ส่วนลดตามระดับและข้อเสนอเสริม

  • ส่วนลดตามระดับในวิธีการชำระเงิน: หากมีการเสนอเปอร์เซ็นต์ส่วนลดที่แตกต่างกันตามเครื่องมือการชำระเงินที่ใช้ (เช่น ส่วนลดที่สูงกว่าสำหรับอีวอลเล็ตเทียบกับบัตรเครดิต) คุณต้องสร้างโมเดลส่วนลดเหล่านี้เป็นออบเจ็กต์ข้อเสนอแยกกัน พาร์ทเนอร์ควรให้ความครอบคลุมโปรโมชันที่ครบถ้วนในเครื่องมือการชำระเงินที่รองรับทั้งหมด (เช่น กระเป๋าเงินอิเล็กทรอนิกส์ บัตรเครดิต บัตรเดบิต การโอนเงินผ่านธนาคาร) เพื่อให้ผู้ใช้ได้รับประสบการณ์การประหยัดที่เชื่อถือได้ หากข้อเสนอใช้ได้กับวิธีการชำระเงินทั้งหมดที่ยอมรับในแพลตฟอร์ม คุณไม่ควรตั้งค่าช่องเครื่องมือการชำระเงิน
  • โครงสร้างข้อเสนอเสริม: หากต้องการแสดงสิทธิประโยชน์ที่ซ้อนกัน เช่น คะแนนสะสมที่เฉพาะเจาะจงของธนาคารหรือเงินคืนเพิ่มเติมที่ใช้ได้กับการซื้อบัตรของขวัญ ให้ส่งสิทธิประโยชน์เหล่านี้เป็นข้อเสนอเสริมที่แยกกันโดยใช้ enum ที่เหมาะสม OfferCategory ซึ่งก็คือ OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER อธิบายรางวัลภายใน OfferDetails.other_offer_details_text (เช่น "คะแนนสะสมสูงสุด 5 เท่า") และลิงก์รางวัลกับดีลบัตรของขวัญพื้นฐานโดย ป้อนข้อมูล OfferRestrictions.combinable_offer_ids ด้วย ของบัตรของขวัญพื้นฐาน offer_id

ข้อกำหนดและเงื่อนไขพิเศษ

พาร์ทเนอร์ควรใช้ terms.terms_and_conditions เพื่อระบุข้อกำหนดและเงื่อนไขทางกฎหมายทั้งหมดของบัตรของขวัญหรือบัตรกำนัล รวมคำแนะนำทั้งหมดที่ผู้ใช้จะเห็นและหลักเกณฑ์การใช้งานไว้ในช่องนี้

หากข้อจำกัดที่สำคัญต้องมีการแสดง UI ที่โดดเด่น (เช่น ยอดคงเหลือที่ใช้ได้ครั้งเดียว หมดอายุ ไม่สามารถขอเงินคืน หรือการจำกัดการรวมธุรกรรม เช่น "รวมบัตรกำนัลได้สูงสุด 2 รายการต่อใบแจ้งหนี้") ให้ไฮไลต์ข้อจำกัดเหล่านั้นใน offer_restrictions.special_conditions

คำแนะนำเกี่ยวกับชื่อข้อเสนอ

ความยาวของชื่อข้อเสนอควรไม่เกิน 40 ตัวอักษร นำชื่อแบรนด์ของผู้ขายออกจาก offer_display_text เนื่องจากข้อเสนอจะแสดงโดยตรงในข้อมูลสถานที่ที่เฉพาะเจาะจงของผู้ขาย เราขอแนะนำรูปแบบชื่อต่อไปนี้

กรณีการใช้งาน ชื่อที่แนะนำ
ส่วนลดแบบคงที่สำหรับบัตรกำนัล X% off on Gift Cards
ส่วนลดแบบผันแปรตามวิธีการชำระเงิน X% off on Gift Cards using {e-wallet}
ส่วนลดแบบผันแปรสำหรับมูลค่าต่างๆ X% off on Gift Cards (ส่งส่วนลดต่างๆ เป็นข้อเสนอแยกกัน)
บัตรของขวัญ B2B2C X% off on Gift Cards (การสร้างแบรนด์จะ แสดงผ่านภาพขนาดย่อโดยใช้ brand_id)
ข้อเสนอเสริม Flat/Up to 5X reward points/ <Platform> coins

ข้อกำหนดของหน้า Landing Page

offer_url ที่โฆษณาทุกรายการต้องแสดงผล HTTP 200 OK โดยตรงโดยไม่มีการเปลี่ยนเส้นทางระดับกลาง และต้องแสดงหน้าปลายทางที่ใช้งานได้ซึ่งสนับสนุนข้อเสนอ

ฟีดต้องไม่รวมมูลค่าที่ขายหมดแล้วหรือไม่พร้อมให้บริการ รักษาสินค้าคงคลังให้ซิงค์กันอย่างเคร่งครัดระหว่างช่องมูลค่าของฟีดกับตัวเลือกการซื้อจริงในหน้า Landing Page ปลายทาง

หน้า Landing Page ปลายทางควรระบุอย่างชัดเจนว่าข้อเสนอใช้ได้กับบัตรของขวัญหรือบัตรกำนัลโดยเฉพาะ

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

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

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

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

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

{
  "data": [
    {
      "offer_id": "example-dining-gift-card-10off",
      "entity_ids": [
        "dining-1",
        "dining-2"
      ],
      "offer_modes": [
        "OFFER_MODE_GIFT_CARD_PURCHASE"
      ],
      "action_type": "ACTION_TYPE_DINING",
      "offer_source": "OFFER_SOURCE_AGGREGATOR",
      "offer_category": "OFFER_CATEGORY_BASE_OFFER",
      "offer_details": {
        "offer_display_text": "10% off on Gift Cards",
        "discount_percent": 10.0,
        "gift_card_info": {
          "fixed_denominations": {
            "amounts": [
              {
                "units": 500,
                "currency_code": "INR"
              },
              {
                "units": 1000,
                "currency_code": "INR"
              },
              {
                "units": 2000,
                "currency_code": "INR"
              }
            ]
          }
        }
      },
      "offer_restrictions": {
        "combinable_with_other_offers": false,
        "special_conditions": [
          "Single-use balance expiration applies",
          "Maximum 2 gift card vouchers can be combined per bill",
          "No cash refund will be provided against this voucher"
        ]
      },
      "terms": {
        "restricted_to_certain_users": false,
        "terms_and_conditions": "1. Redeemable exclusively at participating dining outlets.\n2. Single-use balance expiration applies.\n3. Maximum 2 gift card vouchers can be combined per bill.\n4. No cash refund will be provided against this voucher."
      },
      "validity_periods": [
        {
          "valid_period": {
            "valid_from_time": {
              "seconds": "1774934350"
            },
            "valid_through_time": {
              "seconds": "1806470350"
            }
          },
          "validity_scope": "VALIDITY_SCOPE_CLAIM"
        },
        {
          "validity_duration_in_days": 365,
          "validity_scope": "VALIDITY_SCOPE_REDEEM"
        }
      ],
      "offer_url": "https://www.example-portal.com/dining-gift-cards/buy"
    }
  ]
}