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
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.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.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.[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. |