礼品卡(也称为礼券)

本指南概述了在商品目录中实现礼品卡(也称为代金券)的要求、数据建模建议和最佳实践。这些建议是对标准 Action Center 文档的补充,并介绍了礼品卡专属的集成方面。

优惠模式和分类

提交礼品卡商品目录时,请确保正确配置以下核心属性:

  • 优惠模式offer_modes 必须始终设置为包含 "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_denominationscustom_range

    • 固定面额:当提供离散的预设礼品卡金额时使用(例如 ₹500、₹1,000 和 ₹2,000,均享受 10% 的固定折扣)。确保从 Feed 提交中明确排除着陆页上已售完或无法购买的任何固定面额。
    • 自定义范围:仅当用户可以在购买页面上自由输入定义范围内的任意面值时使用(例如,₹100 到 ₹5,000 之间的任意值,并享受 5% 的折扣)。如果目标着陆页提供离散的预设金额,请严格按照 fixed_denominations 对库存进行建模。此外,如果某优惠同时提供固定面额和自定义面额,合作伙伴应设置灵活的自定义范围。

处理多营业地点连锁店

对于适用于大型零售或餐饮连锁店的礼券,如果其条款在多个兴趣点 (POI) 中都相同,请为每个实体店位置提供单独的 Offer 对象。请改为使用汇总 Feed 方法,即提供一个包含所有参与商店实体 ID (entity_ids) 列表的 Offer 对象。

门户网站品牌宣传 (brand_id)

部分优惠券是通过特定银行或会员门户网站(例如银行会员计划或合作伙伴平台)而非主要商家网站提供的。为确保这些门户网站的品牌宣传准确无误,合作伙伴必须填充顶级 Offer 对象中的 brand_id 字段。

虽然省略 brand_id 会默认使用账号的主品牌(使用账号的默认品牌时,无需提供 brand_id),但明确填充 brand_id 可将广告资源与相应的品牌门户网站准确关联,确保向用户显示正确的合作伙伴专用徽标和名称。如需了解有关配置品牌的更多说明,请参阅品牌配置

有效性结构 (ValidityScope)

礼品卡具有独特的有效期结构,可区分购买优惠的时限和兑换礼品卡的期限。合作伙伴必须始终使用相关的 ValidityScope 枚举值:

  • VALIDITY_SCOPE_CLAIM:定义礼品卡优惠在合作伙伴平台上的可购买时间范围。此条目必须始终存在。提交 Feed 时,请从确切的 Feed 提交日期开始填充声明有效期限。此外,如果着陆页明确宣传了营销活动的结束日期,则切勿将声明期设置为无结束日期;请将 valid_through_time 与宣传的到期日期保持一致。
  • VALIDITY_SCOPE_REDEEM:定义购买后兑换期限(用户在购买凭证后在商店兑换凭证的时间范围,可以指定为时长或时间范围)。

操作类型映射

合作伙伴通常会使用“可在线兑换/可线下兑换”“线上/实体店”或“实体店”等结构对优惠券进行分类。在 Feed 提交中,此属性必须映射到 ActionType 枚举,以准确定义商品的消费方式:

  • 餐饮 / 食品类别:将“堂食”礼品卡映射到 ACTION_TYPE_DINING。将“送货”礼品卡映射到 ACTION_TYPE_FOOD_DELIVERY。将“外卖”礼品卡映射到 ACTION_TYPE_FOOD_TAKEOUT
  • 购物零售垂直行业:将“实体店”礼品卡映射到 ACTION_TYPE_SHOPPING_IN_STORE。(注意:不支持仅限在线使用的零售优惠券)。
  • 单渠道映射:每个 offer_id 只能属于一个 ActionType。如果某个商品支持多个履单渠道(例如,外卖和自提),请为每种模式创建具有唯一 ID 的不同 Offer 对象。

分级折扣和附加优惠

  • 不同支付方式对应的分级折扣:如果根据所用的具体支付工具提供不同的折扣百分比(例如,电子钱包的折扣高于信用卡),则必须将这些折扣建模为单独的 Offer 对象。合作伙伴应在所有支持的付款方式(例如电子钱包、信用卡、借记卡、网上银行)中提供全面的促销覆盖范围,以确保可靠的省钱体验。如果优惠普遍适用于平台接受的所有付款方式,则不应设置支付方式字段。
  • 附加优惠结构:如需表示叠加的福利(例如适用于礼品卡购买交易的银行专属奖励积分或额外返现),请使用适当的 OfferCategory 枚举 (OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER) 将它们作为完全独立的附加优惠提交。 在 OfferDetails.other_offer_details_text 中描述奖励(例如“最高可享 5 倍奖励积分”),并通过使用基础礼品卡的 offer_id 填充 OfferRestrictions.combinable_offer_ids,将奖励与基础礼品卡交易相关联。

条款和特殊条件

合作伙伴应依靠 terms.terms_and_conditions 提供礼品卡或礼券的完整法律条款及条件。将所有面向用户的说明和使用指南整合到此字段中。

如果关键限制需要专用界面突出显示(例如单次使用的余额过期、不可退款或交易合并上限,如“每张账单最多可合并 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

着陆页要求

每个宣传的 offer_url 都必须直接返回 HTTP 200 OK,而无需中间重定向,并且解析为可证实相应优惠的有效目标网页。

Feed 不得包含已售罄或无法使用的面额。在 Feed 面额字段与目标着陆页上的实时购买选项之间保持严格的商品目录同步。

目标着陆页应明确提及相应优惠仅适用于礼品卡或礼券。

例如,如果合作伙伴着陆页仅显示“支付账单”等通用付款号召性用语,而未明确预先说明完成交易会发放储值礼品卡凭证,那么从 Google 重定向过来的用户如果期望购买礼品卡,可能会感到困惑或放弃购买。 即使在后续结账步骤中显示了优惠券通知,也必须在初始着陆页上清晰说明。

提供优惠券代码的优惠

某些优惠需要用户输入优惠券代码,例如“使用代码 SAVE20 可享受账单总额 8 折优惠”。请务必注意,Google 不会显示来自优惠券定义的优惠券代码。合作伙伴可以在 OfferDetails.offer_display_text 中添加此信息,以便向用户显示。基于优惠券的优惠通常分为两类:

  • 优惠:系统会在结账时自动向通过 Google 访问的任何用户显示优惠券。这些都是允许的。
  • 如果优惠要求用户在结账时输入优惠券代码,但未在优惠网址着陆页上提供有关如何应用优惠券代码的说明,或者在用户访问优惠网址时未自动应用优惠券,则不允许提供此类优惠。

礼品卡优惠 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"
    }
  ]
}