Tarjetas de regalo (también conocidas como cupones)

En esta guía, se describen los requisitos, las recomendaciones de modelado de datos y las prácticas recomendadas para implementar tarjetas de regalo (también conocidas como cupones) en tu feed de ofertas. Estas recomendaciones complementan la documentación estándar del Actions Center y abordan aspectos de la integración específicos de las tarjetas de regalo.

Modo de oferta y categorización

Cuando envíes el inventario de tarjetas de regalo, asegúrate de que los siguientes atributos principales estén configurados correctamente:

  • Offer Mode: offer_modes siempre debe establecerse como un array singleton que contenga "OFFER_MODE_GIFT_CARD_PURCHASE":

    "offer_modes": ["OFFER_MODE_GIFT_CARD_PURCHASE"]
    
  • Cupones de valor almacenado frente a descuentos instantáneos para clientes sin reserva:

    • gift_card_info se reserva estrictamente para los cupones y las tarjetas de regalo de valor almacenado comprados previamente (OFFER_MODE_GIFT_CARD_PURCHASE).
    • Si un cliente paga directamente en el mostrador de la tienda física en el momento por un descuento inmediato sin comprar un código de cupón para reclamar o canjear más tarde, modela la oferta como un descuento estándar para clientes que ingresan a la tienda (OFFER_MODE_WALK_IN) y omite por completo el mensaje gift_card_info.
  • Modelado de la denominación: La denominación de la tarjeta de regalo debe representar el valor del cupón (por qué se puede canjear), no lo que paga el usuario (el usuario paga el precio con descuento).

  • Consolidación de múltiples denominaciones: Los múltiples cupones que comparten el mismo porcentaje de descuento y las mismas condiciones, pero que difieren en el valor nominal, deben agruparse en una sola entrada de oferta. Dado que denomination_type funciona como un oneof, los socios deben elegir entre establecer fixed_denominations o un custom_range:

    • Denominaciones fijas: Se usan cuando se ofrecen cantidades discretas y preestablecidas de tarjetas de regalo (p.ej., INR 500, INR 1,000 y INR 2,000, todas con un descuento fijo del 10%). Asegúrate de que las denominaciones fijas que estén agotadas o no disponibles en la página de destino se excluyan explícitamente de los envíos de feeds.
    • Rango personalizado: Úsalo solo cuando los usuarios puedan ingresar libremente cualquier valor nominal arbitrario dentro de los límites definidos en la página de compra (p.ej., cualquier valor entre ₹100 y ₹5,000 con un 5% de descuento). Si la página de destino ofrece cantidades discretas preestablecidas, modela el inventario estrictamente según fixed_denominations. Además, si hay denominaciones fijas y personalizadas disponibles para una oferta, los socios deben establecer el rango personalizado flexible.

Cómo administrar cadenas de varias ubicaciones

En el caso de los cupones de regalo que se aplican en grandes cadenas de restaurantes o tiendas minoristas en las que las condiciones son idénticas en varios puntos de interés (POI), no proporciones un objeto Offer independiente para cada ubicación de la tienda. En su lugar, usa un enfoque de feeds agregados proporcionando un solo objeto Offer que contenga una lista de todos los IDs de entidades de la tienda participantes (entity_ids).

Desarrollo de la marca del portal (brand_id)

Algunos cupones se ofrecen a través de portales específicos de bancos o de lealtad (p.ej., programas de lealtad de bancos o plataformas de socios) en lugar del sitio principal del comercio. Para garantizar la precisión de la marca en estos portales, los socios deben completar el campo brand_id en los objetos Offer de nivel superior.

Si bien omitir brand_id establece de forma predeterminada la marca principal de la cuenta (y brand_id no es obligatorio cuando se usa la marca predeterminada de la cuenta), completar brand_id de forma explícita asocia con precisión el inventario con su portal de marca correspondiente, lo que garantiza que se muestren a los usuarios los nombres y logotipos correctos específicos del socio. Puedes encontrar más instrucciones para configurar marcas en Configuración de marcas.

Estructura de validez (ValidityScope)

Las tarjetas de regalo tienen una estructura de validez única que distingue el período para comprar la oferta de la duración para canjear la tarjeta. Los socios siempre deben usar los valores de enumeración de ValidityScope pertinentes:

  • VALIDITY_SCOPE_CLAIM: Define el período durante el que la oferta de tarjetas de regalo está disponible para su compra en la plataforma del socio. Esta entrada siempre debe estar presente. Cuando envíes feeds, completa el período de validez del reclamo a partir de la fecha exacta de envío del feed. Además, nunca dejes los períodos de reclamo abiertos si la página de destino anuncia explícitamente una fecha de finalización de la campaña. Haz coincidir valid_through_time con la fecha de vencimiento anunciada.
  • VALIDITY_SCOPE_REDEEM: Define la duración del canje posterior a la compra (el período que tienen los usuarios para canjear el cupón en la tienda después de comprarlo, que se puede especificar como una duración o un período).

Asignación de tipos de acciones

Los socios suelen categorizar los cupones con estructuras como "canjeable en línea o sin conexión", "en línea o en la tienda" o "en la tienda". En los envíos de feeds, esto se debe asignar al enum ActionType para definir con precisión cómo se consume el producto:

  • Vertical de comida y restaurantes: Asigna las tarjetas de regalo de "Comer en el lugar" a ACTION_TYPE_DINING. Asigna las tarjetas de regalo de "Entrega" a ACTION_TYPE_FOOD_DELIVERY. Asigna las tarjetas de regalo de "Comida para llevar" a ACTION_TYPE_FOOD_TAKEOUT.
  • Vertical de comercio minorista de Shopping: Asigna las tarjetas de regalo "En la tienda" a ACTION_TYPE_SHOPPING_IN_STORE. (Nota: No se admiten los cupones de venta minorista solo en línea).
  • Asignación de un solo canal: Cada offer_id puede pertenecer a exactamente un ActionType. Si un artículo del inventario admite varios canales de cumplimiento (p.ej., envío y retiro de comida), crea objetos Offer distintos con IDs únicos para cada modo.

Descuentos por niveles y ofertas de complementos

  • Descuentos por niveles en todas las formas de pago: Si se ofrecen diferentes porcentajes de descuento según el instrumento de pago específico que se use (p.ej., un descuento más alto para una billetera electrónica que para las tarjetas de crédito), estos se deben modelar como objetos Offer separados. Los socios deben proporcionar una cobertura promocional exhaustiva en todos los instrumentos de pago admitidos (p.ej., billeteras electrónicas, tarjetas de crédito, tarjetas de débito, banca en línea) para garantizar una experiencia de ahorro confiable. Si una oferta se aplica de forma universal a todas las formas de pago aceptadas en la plataforma, no se debe configurar el campo del instrumento de pago.
  • Objeto de ofertas de complemento: Para representar beneficios combinados, como puntos de recompensa específicos del banco o reembolsos adicionales aplicables a la compra de una tarjeta de regalo, envíalos como ofertas de complemento completamente independientes con el enum OfferCategory adecuado: OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER. Describe la recompensa dentro de OfferDetails.other_offer_details_text (p.ej., "Hasta 5 veces más puntos de recompensa") y vincúlala a la oferta de la tarjeta de regalo básica completando OfferRestrictions.combinable_offer_ids con el offer_id de la tarjeta de regalo básica.

Términos y Condiciones Especiales

Los socios deben confiar en terms.terms_and_conditions para proporcionar los Términos y Condiciones legales completos de la tarjeta de regalo o el cupón. Consolida todas las instrucciones para el usuario y los lineamientos de uso en este campo.

Si las restricciones críticas requieren una prominencia dedicada en la IU (como el vencimiento del saldo de un solo uso, la no reembolsabilidad o los límites de combinación de transacciones, como "Se pueden combinar un máximo de 2 cupones por factura"), destácalas en offer_restrictions.special_conditions.

Recomendaciones de títulos de ofertas

La longitud del título de la oferta debe ser estrictamente inferior a 40 caracteres. Quita los nombres de las marcas de los comercios de offer_display_text, ya que las ofertas se muestran directamente en la ficha de comercio dedicada del comercio. Te recomendamos los siguientes formatos de títulos:

Caso de uso Título recomendado
Descuento fijo en cupones X% off on Gift Cards
Descuento variable según la forma de pago X% off on Gift Cards using {e-wallet}
Descuentos variables en diferentes denominaciones X% off on Gift Cards (Envía diferentes descuentos como ofertas separadas)
Tarjetas de regalo B2B2C X% off on Gift Cards (La marca se muestra a través de la miniatura con brand_id)
Ofertas complementarias Flat/Up to 5X reward points/ <Platform> coins

Requisito de la página de destino

Cada offer_url promocionado debe devolver HTTP 200 OK directamente, sin redireccionamientos intermedios, y resolverse en una página de destino activa que respalde la oferta.

El feed no debe incluir denominaciones agotadas o no disponibles. Mantén una sincronización estricta del inventario entre los campos de denominación del feed y las opciones de compra en vivo en la página de destino.

En la página de destino, se debe mencionar claramente que la oferta se aplica específicamente a las tarjetas de regalo o los cupones.

Por ejemplo, si una página de destino del socio solo muestra llamadas a la acción de pago genéricas, como "Pagar la factura", sin indicar explícitamente por adelantado que completar la transacción emite un comprobante de tarjeta de regalo de valor almacenado, los usuarios que se redireccionen desde Google con la intención de comprar una tarjeta de regalo pueden confundirse o abandonar la compra. Incluso si aparece un aviso de cupón en un paso posterior de la confirmación de compra, se requiere claridad por adelantado en la página de destino inicial.

Ofertas con códigos de cupón

Algunas ofertas requieren que el usuario ingrese un código de cupón, como "Aplica el código AHORRA20 para obtener un 20% de descuento en la factura total". Es importante tener en cuenta que Google no muestra los códigos de cupón de la definición de cupón. Los socios pueden incluir esta información en OfferDetails.offer_display_text para que se muestre a los usuarios. Por lo general, las ofertas basadas en cupones se dividen en dos categorías:

  • Ofertas en las que el cupón se presenta automáticamente en la confirmación de compra a cualquier usuario que llegue desde Google. Se permiten.
  • No se permiten las ofertas que requieren que el usuario ingrese el código de cupón en la confirmación de compra, pero no proporcionan instrucciones para aplicar el código de cupón en la página de destino de la URL de la oferta ni aplican automáticamente el cupón cuando se sigue la URL de la oferta.

Ejemplo de JSON de oferta de tarjeta de regalo

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