Aitor Sánchez - Blog - Mar. 26, 2024, 12:19 p.m.
Quieres ganar más dinero con tus apps. Como todos. ¿o no?
Pues mira,
no se si esta será la mejor manera, eso es cuestión de prioridades.
o la más atractiva, es va en los gustos.
Pero lo que no va ni en los gustos, ni en las prioridades, es que te estás dejando pasta por el camino si aún no haces esto.
Atiende:
Las tensiones de compras son, bajo mi experiencia, la mejor manera de incentivar a que un usuario compre suscripciones en tu aplicación.
Imagina que estás leyendo un artículo sobre como integrar los anuncios de Admob en tus apps y te encuentras con esto:
...
Y si te das de alta antes del domingo recibirás, a parte del contenido que has pagado, un audio donde te explico cuál es la manera que mejor me funciona para colocar los anuncios de mis apps y que con solo cambiarla, si no lo haces ya, vas a duplicar tus ingresos como hice yo cuando lo descubrí.
Después del domingo no podrás conseguirla nunca más.
...
Acto seguido, estás sacando la cartera para pagarme por mi audio, que no por el contenido. Eso ya va implícito y lo sabes.
Pero, lo que ha hecho que saques la cartera tan de repente, que ni Billie el niño, es la tensión generada por entender qué si no lo haces ya, te vas a quedar sin ese bonus.
Otros lo tendrán,
tú no,
otros lo aprovecharán,
tú no,
ellos ganarán más dinero,
tú no.
¿Ves cómo funciona?
Bien, entendido este concepto ¿cómo puedes utilizar esto en tus apps?
Toda esta sección de la aplicación se ha construido basándonos en este principio.
Con la idea de que tu puedas vender más suscripciones y compras in app mediante un flujo en el que tu entregarás X cosa (un PDF, un audio, o lo que quieras) a tu usuario por realizar una acción.
Tu haces,
yo te entrego esto,
simple.
Pulsamos sobre el botón "+" que hay en la parte inferior derecha de la pantalla.
Una vez dentro del asistente, tenemos que ir rellenando los siguientes datos:
Con el recurso ya creado, podemos realizar lo siguiente:
A diferencia de un contenido ofrecido en la web, la localización de nuestra aplicación es una parte muy importante.
De esta manera, y ajustándonos a los idiomas disponibles que tenemos en Google Play, puedes agregar recursos hijos, asociados al recurso padre, para cada uno de estos idiomas.
Entra en la sección de localización, selecciona un idioma y rellena los detalles.
Es un proceso más corto, porque hay detalles que selecciona desde el padre.
Ahora, en la sección de la solicitud, veremos cómo podemos recuperar cada uno de manera individual. Pero te adelanto que vas a poder recuperar cada uno dependiendo del idioma.
Una vez seleccionado el idioma, puedes ver el recurso in situ pulsando sobre el ojo que hay al lado del selector de idioma.
Cuando hayas rellenado un idioma, un mensaje de (completo) aparecerá al lado del nombre del idioma en el listado.
Ahora vas a ver como extraer los datos desde una instalación de un cliente.
Como es un detalle pequeño, y la api es muy escueta, no tengo intención de preparar una página de documentación para ello, te explico cómo se hace, y todos los posibles cases, y es suficiente para trabajar con ella.
Más adelante, en caso de que sea necesario, si que prepararé una página de documentación.
Lo primero que tenemos que entender, no me cansaré de decirlo, es que tienes que incluir en la solicitud las siguientes dos cabeceras:
La solicitud será una solicitud sencilla mediante el método GET a esta url:
https://ia-pplication.com/apps/v1/get-assets-by-lang?locale=<locale del usuario>
* Nota: Todos los locales soportados por IApplication son los mismos que tienes disponibles al rellenar una ficha de Google Play.
403: El API Key enviado no es válido, o no tienen ninguna app asociada.
{ "R0": 403, "R1": "Prohibido", "R2": ""}
404: No se ha enviado la cabecera app-package-name o el parámetro locale.
{"R0": 404, "R1": "No se ha podido completar, faltan datos", "R2": ""}
404: La app solicitada en la cabecera app-package-name no existe, el locale no existe, la tensión de compra solicitada no existe.
{"R0": 404, "R1": "No existe", "R2": ""}
200: Todo ha ido bien y aquí están los datos.
{ "R0": 200, "R1": [ { "located": { "id": 140, "id_asset_id": 7, "id_lang_id": 1, "id_app_id": 5, "name": "Prueba de descarga", "description": "RXN0byBlcyBwYXJhIHByb2JhciBzaSBzZSByZWFsaXphIGxhIGRlc2NhcmdhLg==", "path": "", "available_until": 1711839600, "created_at": 1711303196, "updated_at": 1711303196, "is_deleted": 0, "available_from": 1711234800, "uuid": "cXNlYy1ES0wwU1FraGtmRHpmZm9OMzBucVd0M2l4V0xPMEdJR1RCUl9kRT0=" }, "asset": { "id": 7, "id_app_id": 5, "name": "Habla, escribe y comunícate con precisión", "description": "RXN0byBlcyBwYXJhIHByb2JhciBzaSBzZSByZWFsaXphIGxhIGRlc2NhcmdhLg==", "path": "", "available_until": 1711839600, "created_at": 1710507677, "updated_at": 1710507677, "is_deleted": 0, "available_from": 1710457200 } } ], "R2": "" }
El "R0" siempre informará del código.
El "R1" llevará la respuesta. Si te fijas, siempre llevará el asset general y el locale. En caso de que no haya locale, solo llegará el general.
El "R2" llevará contenido adicional si fuese necesario. Ahora mismo no hay ninguna respuesta que lo lleve en esta solicitud.
Recuerda: Los recursos fuera de fecha no llegarán. Tanto si aún no ha empezado, como si ya ha terminado la fecha de disponibilidad.
Como en todas las solicitudes, necesitamos las dos cabeceras:
La URL de la solicitud será:
http://192.168.1.150:8000/apps/v1/download-asset
El método POST.
Parámetros adicionales:
Ahora vamos con las respuestas:
403: El API Key enviado no es válido, o no tienen ninguna app asociada.
{ "R0": 403, "R1": "Prohibido", "R2": ""}
404: No se ha enviado la cabecera app-package-name o el parámetro locale.
{"R0": 404, "R1": "No se ha podido completar, faltan datos", "R2": ""}
404: La app solicitada en la cabecera app-package-name no existe, la tensión de compra no existe.
{"R0": 404, "R1": "No existe", "R2": ""}
200: Todo ha ido bien, aquí tienes tu archivo
Devuelve el archivo mismo en la respuesta.
El nombre del archivo llegará en la cabecera: "filename" por si necesitas hace uso de él.
Lo que tienes que hacer para recuperarlo es cómo si descargases una imagen, o un archivo de audio, desde una URL.
El archivo estará en el cuerpo de la respuesta.
Y el tutorial ha terminado. Cómo he explicado en otros casos, haré un video donde explicaré todo de una manera más visible para que puedas implementar todo más visualmente.