Cartes cadeaux (ou bons d'achat)

Ce guide décrit les exigences, les recommandations de modélisation des données et les bonnes pratiques pour implémenter les cartes cadeaux (également appelées bons d'achat) dans votre flux d'offres. Ces recommandations complètent la documentation standard du Centre d'actions et abordent les aspects d'intégration spécifiques aux cartes cadeaux.

Mode Offre et catégorisation

Lorsque vous envoyez l'inventaire de cartes, assurez-vous que les attributs principaux suivants sont correctement configurés :

  • Mode Offre : offer_modes doit toujours être défini comme un tableau singleton contenant "OFFER_MODE_GIFT_CARD_PURCHASE" :

    "offer_modes": ["OFFER_MODE_GIFT_CARD_PURCHASE"]
    
  • Bons à valeur stockée et remises immédiates sans rendez-vous :

    • gift_card_info est strictement réservé aux bons et cartes cadeaux prépayés (OFFER_MODE_GIFT_CARD_PURCHASE).
    • Si un client paie directement à la caisse du magasin physique pour bénéficier d'une remise immédiate sans acheter de bon d'achat à utiliser ultérieurement, modélisez l'offre comme une remise standard sans rendez-vous (OFFER_MODE_WALK_IN) et omettez complètement le message gift_card_info.
  • Modélisation de la valeur : la valeur de la carte doit correspondre à la valeur du bon d'achat (ce pour quoi il peut être utilisé), et non à ce que l'utilisateur paie (l'utilisateur paie le prix réduit).

  • Regrouper plusieurs valeurs nominales : plusieurs bons partageant exactement le même pourcentage de remise et les mêmes conditions, mais dont la valeur nominale diffère, doivent être regroupés dans une seule offre. Étant donné que denomination_type fonctionne comme un oneof, les partenaires doivent choisir entre définir fixed_denominations ou un custom_range :

    • Montants fixes : à utiliser lorsque des montants de cartes cadeaux prédéfinis et distincts sont proposés (par exemple, 500 ₹, 1 000 ₹ et 2 000 ₹, tous avec une remise fixe de 10 %). Assurez-vous que toutes les coupures fixes qui sont en rupture de stock ou indisponibles sur la page de destination sont explicitement exclues des flux envoyés.
    • Plage personnalisée : à utiliser uniquement lorsque les utilisateurs peuvent saisir librement n'importe quelle valeur faciale dans les limites définies sur la page d'achat (par exemple, n'importe quelle valeur entre 100 ₹ et 5 000 ₹ avec une remise de 5 %). Si la page de destination propose des montants prédéfinis et distincts, modélisez l'inventaire strictement sous fixed_denominations. De plus, si des montants fixes et personnalisés sont disponibles pour une offre, les partenaires doivent définir la plage personnalisée flexible.

Gérer les chaînes multi-établissements

Pour les bons cadeaux valables dans de grandes chaînes de magasins ou de restaurants dont les conditions sont identiques dans plusieurs points d'intérêt (POI), ne fournissez pas un objet "Offer" distinct pour chaque magasin. Utilisez plutôt une approche d'agrégation des flux en fournissant un seul objet "Offer" contenant une liste de tous les ID d'entités de magasin participants (entity_ids).

Branding du portail (brand_id)

Certains bons sont proposés sur des portails bancaires ou de fidélité spécifiques (par exemple, des programmes de fidélité bancaires ou des plates-formes partenaires) plutôt que sur le site principal du marchand. Pour garantir une image de marque précise pour ces portails, les partenaires doivent renseigner le champ brand_id dans les objets Offre de premier niveau.

Si vous omettez brand_id, la marque principale du compte est utilisée par défaut (et brand_id n'est pas obligatoire lorsque vous utilisez la marque par défaut du compte). Toutefois, si vous renseignez explicitement brand_id, l'inventaire est associé avec précision au portail de marque correspondant, ce qui garantit que les logos et les noms spécifiques au partenaire sont affichés correctement aux utilisateurs. Pour en savoir plus sur la configuration des marques, consultez Configuration des marques.

Structure de validité (ValidityScope)

Les cartes cadeaux ont une structure de validité unique qui distingue la période d'achat de l'offre de la durée de validité de la carte. Les partenaires doivent toujours utiliser les valeurs d'énumération ValidityScope appropriées :

  • VALIDITY_SCOPE_CLAIM : définit la période pendant laquelle l'offre de carte cadeau peut être achetée sur la plate-forme partenaire. Cette entrée doit toujours être présente. Lorsque vous envoyez des flux, renseignez la période de validité de la réclamation à partir de la date exacte d'envoi du flux. De plus, ne laissez jamais les périodes de demande ouvertes si la page de destination indique explicitement une date de fin de la campagne. Faites correspondre valid_through_time à la date d'expiration annoncée.
  • VALIDITY_SCOPE_REDEEM : définit la durée de validité du bon après l'achat (période pendant laquelle les utilisateurs peuvent l'utiliser en magasin après l'avoir acheté, qui peut être spécifiée sous forme de durée ou de période).

Mappage des types d'actions

Les partenaires catégorisent souvent les bons d'achat à l'aide de constructions telles que "utilisable en ligne/hors connexion", "en ligne/en magasin" ou "en magasin". Dans les envois de flux, cette valeur doit être mappée à l'énumération ActionType pour définir précisément la façon dont le produit est consommé :

  • Secteur de la restauration / de l'alimentation : mappez les cartes cadeaux "Repas sur place" sur ACTION_TYPE_DINING. Associez les cartes "Livraison" à ACTION_TYPE_FOOD_DELIVERY. Associez les cartes cadeaux "Vente à emporter" à ACTION_TYPE_FOOD_TAKEOUT.
  • Verticale du commerce de détail pour le shopping : mappez les cartes cadeaux "En magasin" sur ACTION_TYPE_SHOPPING_IN_STORE. (Remarque : Les bons d'achat en ligne uniquement ne sont pas acceptés.)
  • Mappage à un seul canal : chaque offer_id ne peut appartenir qu'à un seul ActionType. Si un article d'inventaire est compatible avec plusieurs canaux de traitement (par exemple, la livraison de repas et la vente à emporter), créez des objets Offer distincts avec des ID uniques pour chaque mode.

Remises par paliers et offres supplémentaires

  • Remises par niveau pour les modes de paiement : si différents pourcentages de remise sont proposés en fonction de l'instrument de paiement spécifique utilisé (par exemple, une remise plus élevée pour un e-portefeuille que pour une carte de crédit), ils doivent être modélisés en tant qu'objets Offer distincts. Les partenaires doivent proposer une couverture promotionnelle exhaustive pour tous les instruments de paiement acceptés (par exemple, les portefeuilles électroniques, les cartes de crédit, les cartes de débit, les services bancaires en ligne) afin de garantir une expérience d'économies fiable. Si une offre s'applique universellement à tous les modes de paiement acceptés sur la plate-forme, le champ du mode de paiement ne doit pas être défini.
  • Structure des offres complémentaires : pour représenter des avantages cumulés, tels que des points de fidélité spécifiques à une banque ou un cashback supplémentaire applicable à l'achat d'une carte cadeau, envoyez-les en tant qu'offres complémentaires entièrement distinctes en utilisant l'enum OfferCategory approprié : OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER. Décrivez la récompense dans OfferDetails.other_offer_details_text (par exemple, "Jusqu'à 5 fois plus de points de fidélité") et associez-la à l'offre de carte cadeau de base en renseignant OfferRestrictions.combinable_offer_ids avec le offer_id de la carte cadeau de base.

Conditions d'utilisation et conditions particulières

Les partenaires doivent s'appuyer sur terms.terms_and_conditions pour fournir l'intégralité des conditions d'utilisation légales de la carte ou du bon d'achat. Regroupez toutes les instructions destinées aux utilisateurs et les consignes d'utilisation dans ce champ.

Si des restrictions critiques nécessitent une mise en évidence spécifique dans l'UI (comme l'expiration du solde à usage unique, la non-remboursabilité ou les limites de combinaison de transactions comme "Vous pouvez combiner au maximum deux bons d'achat par facture"), mettez-les en évidence dans offer_restrictions.special_conditions.

Recommandations de titres d'offres

Le titre de l'offre doit comporter moins de 40 caractères. Supprimez les noms de marque des marchands de offer_display_text, car les offres sont directement affichées sur la fiche dédiée du marchand. Nous vous recommandons d'utiliser les formats de titres suivants :

Cas d'utilisation Titre recommandé
Remise forfaitaire sur les bons d'achat X% off on Gift Cards
Remise variable en fonction du mode de paiement X% off on Gift Cards using {e-wallet}
Remises variables sur différentes valeurs X% off on Gift Cards (envoyer différentes remises sous forme d'offres distinctes)
Cartes cadeaux B2B2C X% off on Gift Cards (L'image de marque est affichée dans la miniature à l'aide de brand_id)
Offres supplémentaires Flat/Up to 5X reward points/ <Platform> coins

Exigences concernant la page de destination

Chaque offer_url annoncé doit renvoyer directement le code HTTP 200 OK, sans redirections intermédiaires, et rediriger vers une page de destination active qui justifie l'offre.

Le flux ne doit pas inclure de montants complets ou indisponibles. Maintenez une synchronisation stricte de l'inventaire entre les champs de dénomination du flux et les options d'achat en direct sur la page de destination.

La page de destination doit clairement indiquer que l'offre s'applique spécifiquement aux cartes ou bons cadeaux.

Par exemple, si une page de destination d'un partenaire n'affiche que des incitations à l'action génériques pour le paiement, comme "Payer la facture", sans indiquer explicitement au préalable que la transaction émet un bon pour une carte-cadeau à valeur stockée, les utilisateurs redirigés depuis Google qui s'attendent à acheter une carte-cadeau peuvent être déroutés ou abandonner leur achat. Même si une notification de bon d'achat s'affiche à une étape ultérieure du règlement, la page de destination initiale doit être claire.

Offres avec codes promotionnels

Certaines offres exigent que l'utilisateur saisisse un code promotionnel, par exemple "Appliquez le code SAVE20 pour obtenir 20% de réduction sur le montant total". Il est important de noter que Google n'affiche pas les codes promotionnels de la définition coupon. Les partenaires peuvent inclure ces informations dans OfferDetails.offer_display_text pour qu'elles soient affichées aux utilisateurs. Les offres basées sur des bons de réduction appartiennent généralement à deux catégories :

  • Offres où le bon de réduction est automatiquement présenté lors du règlement à tout utilisateur provenant de Google. Elles sont autorisées.
  • Les offres qui exigent que l'utilisateur saisisse le code promotionnel au moment du paiement, mais qui ne fournissent pas d'instructions sur la façon d'appliquer le code promotionnel sur la page de destination de l'URL de l'offre ou qui n'appliquent pas automatiquement le bon de réduction lorsque l'utilisateur accède à l'URL de l'offre, ne sont pas autorisées.

Exemple de code JSON pour une offre de carte cadeau

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