Oportunidades de valor agregado

Segundo plano

Ahora puedes actualizar objetos y clases para incluir módulos de oportunidades de valor agregado. Los módulos se mostrarán en la página de detalles y podrán vincularse al contenido del emisor. En este documento, se explican los pasos clave necesarios para habilitar y usar módulos con la API de Google Wallet.

Ejemplo de componente

Ejemplo único del módulo de oportunidad de valor Ejemplo de lista de módulos de oportunidades de valor
Vista individual Vista de lista

En la siguiente guía, se da por sentado que conoces los conceptos básicos de la Billetera de Google y que ya completaste los requisitos previos recomendados. Si tienes preguntas o comentarios, envíalos a tu POC de Google Wallet.

Pasos para la integración

Para agregar un módulo nuevo, deberás actualizar el objeto o la clase para incluir ValueAddedModuleData. ValueAddedModuleData tiene los siguientes campos:

[Obligatorio] encabezado LocalizedString

Es el encabezado que se muestra en el módulo. El límite de caracteres es de 60, y se truncarán las cadenas más largas. Ejemplo de encabezado de oportunidad de valor

Cuerpo de LocalizedString

El cuerpo que se muestra en el módulo. El límite de caracteres es de 50, y se truncarán las cadenas más largas.
Ejemplo del cuerpo de la oportunidad de valor

Image image

Es la imagen que se muestra en el módulo. La proporción de imagen recomendada es de 1:1, y se ajustará el tamaño de las imágenes para que se ajusten a esta proporción.
Ejemplo de imagen de oportunidad de valor

[Obligatorio] URI de cadena

Es el URI al que dirige el módulo cuando se hace clic en él. Puede ser un vínculo web o un vínculo directo.

ModuleViewConstraints viewConstraints

Son las restricciones que se deben cumplir para que se muestre el módulo. ModuleViewConstraints tiene el siguiente campo:

TimeInterval displayInterval

Es el período durante el cual se mostrará el módulo a los usuarios. Puede definir un "startTime" y un "endTime". El módulo se muestra inmediatamente después de la inserción, a menos que se establezca un "startTime". El módulo se mostrará de forma indefinida si no se establece "endTime".

int32 sortIndex

Es el índice para ordenar los módulos. Los módulos con un índice de ordenamiento más bajo se muestran antes que los módulos con un índice de ordenamiento más alto. Si no se especifica, se supone que el índice de orden es INT_MAX. Para dos módulos con el mismo índice, el comportamiento de ordenamiento no está definido.

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

Comportamiento esperado

Después de actualizar correctamente el objeto o la clase, verás los módulos en el pase correspondiente. Si solo agregaste un módulo, lo verás en la parte frontal del pase.

Lineamientos sobre los módulos de oportunidades de valor agregado

Los módulos son oportunidades para que mejores la experiencia del pase de los usuarios con acciones adicionales. Cuando crees y administres los módulos, deberías tener en cuenta lo siguiente:

  • Los módulos deben definirse con el lenguaje adecuado para indicar que se pueden realizar acciones en ellos y ayudar a los usuarios a comprender que se puede hacer clic en ellos.
  • Los módulos deben tener definidas las imágenes adecuadas que se relacionen con el módulo específico.
  • Tienes el control de los módulos y debes administrar de forma proactiva la priorización de los módulos según su importancia y relevancia.
  • Solo debes mostrarles a los usuarios los módulos que estén activos. Para controlar esto, configura el displayInterval en el módulo o agrégalo o quítalo de forma proactiva de la clase o el objeto.

Manejo de excepciones

Mensaje Motivo
ValueAddedModuleData debe contener un encabezado. ValueAddedModuleData no tiene un encabezado.
ValueAddedModuleData debe contener un URI no vacío. ValueAddedModuleData no tiene un URI que no esté vacío.
Se permite un máximo de 10 módulos de valor agregado por clase. Se deben reducir los módulos de valor agregado en la clase.
Se permite un máximo de 10 módulos de valor agregado por objeto. Se deben reducir los módulos de valor agregado en el objeto.