En este documento, se describe la detección y entrega de productos integrados en la aplicación de tu juego una vez que los jugadores los compren con Puntos de Play en la app de Google Play.
Cuando los usuarios canjean sus Puntos de Play por un producto integrado en la aplicación en la app de Google Play, los elementos deben entregarse de inmediato en tu juego. A continuación, se muestran los pasos para comprar elementos con Puntos de Play.
1. Haz clic en Puntos de Play. | 1. Haga clic en la pestaña Usar para ver los elementos. | 2. Selecciona un elemento y haz clic en Usar puntos para completar la compra. | 3. Recibe el elemento. |
En el ejemplo, el juego no se ejecuta mientras se compra el producto. Los usuarios también pueden intercambiar Puntos de Play por productos cuando el juego no está instalado en su dispositivo. Por lo tanto, debes diseñar tu juego para manejar la entrega de elementos integrados en la app desde fuera de la tienda del juego.
Antes de comenzar
Antes de detectar y entregar un producto integrado en la aplicación, debes crear el producto y las promociones de Puntos de Play.
Requisitos de la entrega
Cuando entregas productos integrados en la aplicación en tu juego mediante una promoción de Puntos de Play, debes cumplir con los requisitos que se mencionan esta sección.
Tiempo de entrega
Cuando un jugador intercambia Puntos de Play por un producto integrado en la aplicación, debes entregar el elemento de inmediato sin que el jugador tenga que reiniciar el juego. En los casos en que el contenido del juego debe completarse con anticipación, como cuando se completa un instructivo, el elemento se debe entregar de inmediato.
Mensaje de entrega
Cuando el usuario regrese a tu juego después de haber comprado un producto integrado en la aplicación fuera de él, debes mostrar una confirmación de que el producto se canjeó correctamente dentro del juego. El mensaje debe aparecer como un diálogo emergente o un mensaje integrado en el juego. Los usuarios no deberían tener que realizar ningún paso adicional para recibir el elemento.
Este es el formato de mensajería requerido:
Un mensaje claro que indique que se recibió el elemento.
Menciona el nombre del elemento con claridad y haz referencia a los "Puntos de Play" para asegurarte de que los usuarios puedan distinguirlo de otro contenido que reciban.
Si existen elementos similares con varias denominaciones, el nombre del elemento también debe incluir la denominación correcta del elemento.
El usuario debería poder ver el diálogo emergente, el mensaje o la notificación dentro del juego hasta que haga clic en una confirmación, como Continuar o Aceptar. No debe haber un botón de cancelación, ya que este mensaje solo tiene como objetivo notificar a los usuarios sobre el elemento que recibieron en el juego. Si no hay un botón de confirmación, el mensaje debe ser visible para los usuarios durante al menos 3 segundos antes de desaparecer para garantizar que sepan que recibieron su elemento.
El siguiente es un ejemplo de mensaje:
"Elemento recibido. Acabas de recibir 100 gemas con Puntos de Play. Continúa."
Los usuarios deberían ver una animación o confirmación visual que muestre el aumento en el saldo de la moneda del juego. Si el elemento es uno integrado en la app duradero o consumible, se debe dirigir a los usuarios a la ubicación en la que se desbloqueó o está disponible dentro del juego.
Detecta los elementos que se recibieron fuera del juego
Si tu juego usa la Biblioteca de Facturación Google Play, realiza los siguientes cambios para detectar los productos integrados en la aplicación que se reciben fuera del juego.
En la devolución de llamada
onResume()
del juego, llama al métodoqueryPurchases()
para recuperar una lista de elementos a fin de determinar cuáles no se procesaron.Si tu juego tiene un servidor, te recomendamos que verifiques la compra en tu servidor con la API de Subscriptions y la de In-App Purchases.
Si hay elementos propios, pero no se procesaron durante la compra, hazlo con
consumeAsync()
para los elementos consumibles, o bien usaacknowledgePurchase()
para los elementos no consumibles.Otorga derecho al elemento comprado dentro del juego.
Detecta elementos recibidos en el modo de pantalla dividida
Si tu juego admite el modo multiventana, los usuarios pueden canjear Puntos de Play y recibir el elemento mientras ejecutan la app de Play Store y tu juego al mismo tiempo. En esta captura de pantalla, se muestra un ejemplo:
Para que esta situación sea compatible con la Biblioteca de Facturación Google Play, haz lo siguiente:
Google Play llama al método
onPurchasesUpdated()
para notificar a tu juego que hay un nuevo elemento pendiente.Si tu juego tiene un servidor, te recomendamos que verifiques la compra en tu servidor con la API de Subscriptions y la de In-App Purchases.
Reconoce la compra con
consumeAsync()
para elementos consumibles o conacknowledgePurchase()
para elementos no consumibles.Otorga derecho al elemento comprado dentro del juego.
Muestra una confirmación de entrega
Cuando los usuarios canjean Puntos de Play y reciben un elemento de intercambio, esperan que el juego muestre un mensaje dentro del juego o use algún tipo de notificación para informarles que el juego recibió y procesó correctamente el elemento. Estas son algunas opciones de confirmación de entrega:
Muestra una ventana emergente en el juego.
Envía el mensaje a una casilla de mensajes dentro del juego y especifica claramente que hay un mensaje nuevo en la casilla.
Usa un mensaje de notificación del SO.
Es posible que el juego se encuentre en diferentes estados cuando se recibe el elemento promocional, incluso puede no estar instalado en el dispositivo. Debes detectar los elementos promocionales independientemente del estado en el que se encuentre el juego cuando se reciba el elemento. Sin embargo, hay algunas excepciones en las que es aceptable no notificar de inmediato al usuario que se recibió el elemento. Por ejemplo:
Durante escenas de acción en el juego, ya que mostrar un mensaje puede distraer al usuario. En este caso, debes notificar al usuario una vez finalizada la escena.
Durante las escenas cinemáticas, ya que mostrar un mensaje puede distraer al usuario. En este caso, debes notificar al usuario después de que termine la escena.
Durante el instructivo inicial y las partes de configuración del juego. Te recomendamos notificar a los usuarios nuevos sobre la recompensa inmediatamente después de que abran el juego o durante la configuración inicial del usuario. Sin embargo, es aceptable esperar hasta que la secuencia principal del juego esté disponible para notificar al usuario.
Si la app tiene varios personajes o cuentas a los que se podría aplicar el elemento, te recomendamos solicitar al usuario que seleccione qué cuenta recibe los elementos promocionales.
Piensa en los usuarios cuando decidas cuándo y cómo notificarlos sobre los elementos promocionales. Cada vez que un usuario no recibe una notificación de inmediato, puede confundirse, dejar de jugar, comunicarse con el equipo de asistencia del usuario o presentar un reclamo en las redes sociales.
Actualizaciones para motores de juegos específicos
Estas son algunas consideraciones que debes tener en cuenta para los motores de juegos específicos:
Si tu juego se compiló con Unity, te recomendamos verificar si la implementación de CDA que estás usando ya admite promociones de Puntos de Play.
Si tu juego se compiló con Cocos2d-x o Unreal Engine (C/C++), es probable que debas escribir el código JNI que llama a las API de Java desde tu código C/C++.
Prácticas recomendadas del servidor
Esta sección contiene prácticas recomendadas del servidor que puedes usar para las promociones de Puntos de Play:
Si llamas a
Purchases.products: get
en tu servidor, verifica si necesitas procesar por separado los elementos de intercambio de recompensas de Play y otros productos integrados en la aplicación según los valores deproductId
.Si usas
Inappproducts: list
en tu servidor, verifica si necesitas separar los elementos de intercambio de recompensas de Play de otros productos integrados en la aplicación mediante valoresproductId
.Revisa las siguientes prácticas recomendadas para verificar si necesitas hacer cambios adicionales:
- Referencia:
- Implementa la verificación de firma del servidor.
- Asegúrate de que los valores
purchaseToken
yorderId
sean únicos y no se hayan usado antes.
Solución de problemas
En esta sección, se incluyen recomendaciones para situaciones que pueden generar consultas de los clientes.
Múltiples cuentas de usuario
Si un usuario tiene varias Cuentas de Google en su dispositivo y canjea Puntos de Play en la cuenta incorrecta, Google no puede transferir los elementos a esas otras cuentas. Del mismo modo, tu app no puede transferir el elemento mediante una llamada al método getPurchases()
. En esta situación, considera proporcionar los elementos integrados en la app de forma manual al usuario mediante tus operaciones de asistencia al cliente.
Faltan elementos o hay elementos retrasados
Si los jugadores notan que faltan elementos o que hay elementos retrasados, consulta la guía de solución de problemas para compras directas desde la aplicación en la documentación de ayuda de Google Play.