Opportunités à valeur ajoutée

Arrière-plan

Vous pouvez désormais mettre à jour les objets et les classes pour inclure des modules d'opportunités à valeur ajoutée. Les modules s'affichent sur la page d'informations et peuvent renvoyer vers le contenu de l'émetteur. Ce document décrit les principales étapes à suivre pour activer et utiliser des modules à l'aide de l'API Google Wallet.

Exemple de fonctionnalité

Exemple unique de module d'opportunité de valeur Exemple de liste de modules d'opportunités de valeur
Vue unique Liste

Ce guide suppose que vous maîtrisez les concepts de base de Google Wallet et que vous avez déjà rempli les conditions préalables recommandées. Pour toute question ou tout commentaire, veuillez contacter votre point de contact Google Wallet.

Procédure d'intégration

Pour ajouter un module, vous devez mettre à jour l'objet et/ou la classe pour inclure ValueAddedModuleData. ValueAddedModuleData comporte les champs suivants :

[Obligatoire] En-tête LocalizedString

En-tête affiché sur le module. Le nombre de caractères est limité à 60. Les chaînes plus longues seront tronquées. Exemple d'en-tête d'opportunité de valeur

Corps LocalizedString

Corps affiché sur le module. Le nombre de caractères est limité à 50. Les chaînes plus longues seront tronquées.
Exemple de corps d'opportunité de valeur

Image image

Image affichée sur le module. Le format d'image recommandé est 1:1. Les images seront redimensionnées pour s'adapter à ce format.
Exemple d'image d'opportunité de valeur

[Required] string uri

URI vers lequel le module redirige l'utilisateur lorsqu'il clique dessus. Il peut s'agir d'un lien Web ou d'un lien profond.

ModuleViewConstraints viewConstraints

Contraintes à respecter pour que le module s'affiche. ModuleViewConstraints comporte le champ suivant :

TimeInterval displayInterval

Période pendant laquelle le module sera affiché aux utilisateurs. Vous pouvez définir à la fois une `startTime` et une `endTime`. Le module s'affiche immédiatement après l'insertion, sauf si une `startTime` est définie. Le module s'affiche indéfiniment si `endTime` n'est pas défini.

int32 sortIndex

Index permettant de trier les modules. Les modules affichant les index les plus bas s'affichent avant ceux affichant les index les plus hauts. Si l'index de tri n'est pas spécifié, il est considéré comme INT_MAX. Le mode de tri de deux modules affichant le même index n'est pas défini.

Exemple de ValueAddedModuleData :

  {
    "valueAddedModuleData": [
      {
        "header": {
          "defaultValue": {
            "language": "en-US",
            "value": "10% off merch"
          }
        },
        "body": {
          "defaultValue": {
            "language": "en-US",
            "value": "Shirts, caps, mugs, and more"
          }
        },
        "image": {
          "sourceUri": {
            "uri": "http://www.images.google.com/opportunity"
          }
        },
        "uri": "http://www.google.com/opportunity",
        "viewConstraints": {
          "displayInterval": {
            "start": {
              "date": "2024-08-01T18:30:00"
            },
            "end": {
              "date": "2025-08-01T18:30:00"
            }
          }
        },
        "sortIndex": 0
      },
      {
        "header": {
          "defaultValue": {
            "language": "en-US",
            "value": "10% off concessions"
          }
        },
        "uri": "http://www.google.com/new_opportunity"
      }
    ]
  }

Comportement attendu

Une fois l'objet et/ou la classe mis à jour, les modules s'affichent sur le pass correspondant. Si vous n'avez ajouté qu'un seul module, il s'affichera à l'avant de la carte.

Consignes concernant les modules d'opportunités à valeur ajoutée

Les modules vous permettent d'améliorer l'expérience utilisateur avec des actions supplémentaires. Lorsque vous créez et gérez les modules, tenez compte des points suivants :

  • Les modules doivent être définis avec un langage approprié pour indiquer qu'ils sont cliquables et aider les utilisateurs à le comprendre.
  • Les modules doivent comporter les images appropriées qui leur sont propres.
  • Vous contrôlez les modules et devez gérer de manière proactive leur ordre de priorité en fonction de leur importance et de leur pertinence.
  • Vous ne devez afficher aux utilisateurs que les modules actifs. Vous pouvez contrôler cela en définissant displayInterval sur le module ou en l'ajoutant ou en le supprimant de manière proactive de la classe ou de l'objet.

Gestion des exceptions

Message Motif
ValueAddedModuleData doit contenir un en-tête. ValueAddedModuleData ne comporte pas d'en-tête.
ValueAddedModuleData doit contenir un URI non vide. ValueAddedModuleData ne comporte pas d'URI non vide.
Vous pouvez ajouter jusqu'à 15 modules à valeur ajoutée par classe. Réduire le nombre de modules à valeur ajoutée dans le cours.
Vous ne pouvez pas définir plus de 15 modules à valeur ajoutée par objet. Vous devez réduire le nombre de modules à valeur ajoutée sur l'objet.