Oportunidades de valor agregado

Fondo

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 pueden 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 función

Ejemplo único del módulo Value Opportunity Ejemplo de lista de módulos de Value Opportunity
Vista individual Vista de lista

En la siguiente guía, se supone que conoces los conceptos básicos de Google Wallet y que ya cumpliste con los requisitos previos recomendados. Envía tus preguntas o comentarios a tu PDC de la Billetera de Google.

Pasos de 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 de 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

Es 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

Imagen de imagen

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

[Obligatorio] string uri

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 que se mostrará el módulo a los usuarios. Se pueden 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 muestra de forma indefinida si no se establece `endTime`.

int32 sortIndex

Í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 ordenamiento 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 módulos en el pase correspondiente. Si agregaste solo un módulo, lo verás en el frente del pase.

Lineamientos sobre los módulos de oportunidades de valor agregado

Los módulos son oportunidades para aumentar la experiencia de pase del usuario con acciones adicionales. Cuando crees y administres los módulos, debes tener en cuenta lo siguiente:

  • Los módulos deben definirse con un lenguaje adecuado para indicar que son interactivos y ayudar a los usuarios a comprender que se puede hacer clic en ellos.
  • Los módulos deben tener definidas las imágenes adecuadas relacionadas con el módulo específico.
  • Tú controlas los módulos y debes administrar de forma proactiva la priorización del módulo según su importancia y relevancia.
  • Solo debes mostrar a los usuarios los módulos que estén activos. Puedes controlar esto configurando el displayInterval en el módulo o agregándolo o quitándolo 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 no vacío.
Se permite un máximo de 15 módulos de valor agregado por clase. Es necesario reducir los módulos de valor agregado en la clase.
Se permite un máximo de 15 módulos de valor agregado por objeto. Se deben reducir los módulos de valor agregado en el objeto.