Detección y entrega de elementos integrados en la app

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.
Una captura de pantalla por determinar Una captura de pantalla por determinar Una captura de pantalla por determinar Una captura de pantalla por determinar

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.

  1. En la devolución de llamada onResume() del juego, llama al método queryPurchases() para recuperar una lista de elementos a fin de determinar cuáles no se procesaron.

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

  3. Si hay elementos propios, pero no se procesaron durante la compra, hazlo con consumeAsync() para los elementos consumibles, o bien usa acknowledgePurchase() para los elementos no consumibles.

  4. 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:

Una captura de pantalla en la que se muestra el botón Canjear puntos mientras el juego está en ejecución

Para que esta situación sea compatible con la Biblioteca de Facturación Google Play, haz lo siguiente:

  1. Google Play llama al método onPurchasesUpdated() para notificar a tu juego que hay un nuevo elemento pendiente.

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

  3. Reconoce la compra con consumeAsync() para elementos consumibles o con acknowledgePurchase() para elementos no consumibles.

  4. 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 de productId.

  • 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 valores productId.

  • Revisa las siguientes prácticas recomendadas para verificar si necesitas hacer cambios adicionales:

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.