Review Mining

¿Cómo descargar reseñas de la App Store de iOS?

By Axel

Si quieres descargar reseñas de App Store, hay dos escenarios posibles: tienes acceso a la aplicación de la que quieres descargarlas, o no lo tienes. 

En este artículo repasamos soluciones y estrategias para acceder a reseñas de App Store en ambos casos, valorando precio, tiempo y escalabilidad en cada una.

Pero antes de entrar en las soluciones para exportar datos de reseñas de App Store, hay algunas cosas que debes saber.

Cómo funcionan realmente las reseñas de iOS

Si buscas reseñas en App Store, puede que sepas o no que hay dos objetos distintos en juego:

  • Reseñas
  • Valoraciones

En una plataforma como Google My Business hay un único objeto: la reseña. Tiene contenido, o no lo tiene.

En iOS es un poco distinto. 

Una reseña sin contenido se convierte en una valoración. Un objeto de reseña, en cambio, tiene contenido y una valoración asociada.

El problema es que la mayoría de las valoraciones no están disponibles. Si alguien afirma que te da acceso a las valoraciones, o miente, o se lo inventa a partir de información agregada disponible públicamente.

Puedes hacer ingeniería inversa con la información que ofrecen en las páginas públicas de las aplicaciones, como la de aquí abajo 👇

Algunas APIs incluso venden esos datos.

En la práctica es poco fiable, así que te recomendamos fijarte solo en las reseñas. Las reseñas deberían ser una muestra representativa de las valoraciones, y son mucho más fáciles de usar y medir con precisión.

Una palabra sobre países e idiomas

Es posible que ya sepas que cada aplicación aparece en una lista concreta de países dentro de App Store. 

Algunas aplicaciones están disponibles en todos los países posibles, mientras que otras solo lo están en Corea, Estados Unidos, Francia, o en cualquier combinación de los 116 países de la tienda.

App Store tiene algunos puntos problemáticos con la geografía. El principal es que las reseñas están asociadas a un país, pero no a un idioma.

No he encontrado ningún endpoint "global", y sospecho que simplemente no existe. 

Esto significa que, para conseguir todas las reseñas, tienes que obtenerlas país por país. También puedes limitarte a algunos países, pero entonces te arriesgas a perder alguna reseña. 

App Store cuenta con 116 países. 

Aquí tienes la lista.

Puedes descargarla como CSV aquí.

Buscar un ID de aplicación

Casi todas las soluciones que vemos a continuación necesitan el ID de la aplicación para acceder a las reseñas correctas, incluida la propia API de App Store Connect. 

#1 Buscar tu ID de aplicación en el panel de App Store Connect

Si tienes acceso al panel de App Store Connect, tienes suerte.

Es muy sencillo: inicia sesión en la consola, selecciona la aplicación correcta y busca el ID de Apple.

#2 Buscar tu ID de aplicación en la App Store pública

El ID también aparece en las URL públicas de las páginas que genera App Store. Puedes entrar en la App Store, buscar tu aplicación y sacar el ID de la URL.

Por ejemplo, en Instagram la URL es así https://apps.apple.com/us/app/instagram/id389801252, y el ID es la parte que va después de "id", en este caso 389801252.

Personalmente, no me gusta usar su buscador, así que suelo buscar en Google con un simple filtro de sitio.

La búsqueda de Instagram sería: site:apps.apple.com instagram.

#3 Buscar el ID de cualquier aplicación de forma programática

También puedes usar la búsqueda de iTunes de Apple de forma programática, si prevés que vas a necesitar muchos IDs de aplicaciones. Todo esto es público y Apple lo documenta aquí.

Para buscar, ejecuta lo siguiente:

GET `https://itunes.apple.com/search?&media=software&entity=${entity}&term=${query}&country=${country.country_code}&limit=3

Si buscas aplicaciones móviles, la entidad es "software".

La consulta es tu término de búsqueda, codificado en URL.

Y el código de país es un código ISO 3166-1 de 2 letras. Ten en cuenta que, por algún motivo, no es el mismo estándar que usa la API de App Store Connect: esta utiliza códigos de 3 letras.

Dato curioso: en ese endpoint los IDs de aplicaciones se llaman "trackIDs" (herencia de iTunes).

#1 Usar la API App Store Connect de Apple

Esto solo funciona si tienes acceso a la API de App Store Connect y a la aplicación de la que quieres descargar las reseñas.

Si no, puedes saltarte este primer método.

Usar su propia API tiene básicamente tres ventajas:

  • Puedes publicar respuestas de la empresa a través de la misma conexión de API
  • Puedes contar con un esquema de datos estable y fiable en el tiempo. Por ejemplo, si quieres hacer seguimiento de reseñas consultando la API de forma periódica.
  • Puedes acceder a las reseñas de todas las regiones con una sola llamada a la API. Ya lo veremos, pero esto no es posible con otras soluciones.

El problema es que esto requiere conocimientos técnicos. 

Para autenticarte con la API de App Store Connect de Apple, tendrás que firmar JSON Web Tokens (JWT). Apple lo documenta bastante bien aquí, y si ya tienes experiencia con JWT te resultará sencillo. 

Pero si eres un negocio sin perfil técnico que solo quiere descargar una lista de sus reseñas, probablemente sea más fácil recurrir a una solución de terceros.

#2 Usar la API no documentada de Apple

Decir que no está documentada es un poco exagerado a estas alturas, porque esta URL está por todo Internet. Si buscas datos de bajo nivel y no te asusta configurar algunos proxies, puedes probarlo tú mismo sin problema.

El principal inconveniente es que tendrás que consultar cada uno de los 116 países de la tienda para buscar reseñas, y eso puede llevar tiempo. Aquí tienes de nuevo la lista de países con sus códigos, como referencia.

Para extraer reseñas de App Store, puedes usar este endpoint: `https://itunes.apple.com/{countryCode}/rss/customerreviews/page={page}/sortBy={sort}/id={app_id}/json`

Devuelve hasta 50 reseñas por llamada, en formato JSON. La verdad es que es bastante sencillo.

Puedes personalizar la consulta con estos 4 parámetros:

  • countryCode: consulta la lista de países anterior para verla completa.
  • page: si quieres obtener todas las reseñas disponibles, tendrás que implementar la paginación. Cada página devuelve 50 reseñas.
  • sortBy: el orden que quieres aplicar. Puede aceptar otros valores, pero mostRecent funciona bien, así que ¿por qué complicarse?
  • app_id: puedes conseguir el ID de la aplicación desde su página en el navegador. Por ejemplo, el ID de la aplicación de Shopify es 324684580.

Eso es todo.

Obtendrás una respuesta JSON bastante pesada, con 50 reseñas, información de paginación dentro del objeto "link" y algunos datos más.

Solo falta pasar esa salida por tu parser JSON favorito y escribir un wrapper.

Trampas a tener en cuenta

Si empiezas a llamar al endpoint sin ningún control de velocidad, las respuestas se irán ralentizando, hasta llegar a timeouts o errores 403.

Luego tienes que averiguar dónde falló todo para retomarlo desde el punto correcto. No es nada divertido.

Con un poco de control de velocidad consigues respuestas rápidas y, en conjunto, todo el proceso es mucho más rápido. Es un caso clásico de ponerte en el lugar de quien recibe tus peticiones.

Si usas la misma IP demasiadas veces (incluso IPs residenciales limpias, si lo haces en local), te bloquearán con errores 403 durante minutos u horas. Necesitarás algún tipo de rotación de proxies o un servicio para ello si quieres manejar grandes volúmenes de reseñas. Los proxies de servidor funcionan bien; al final es solo la forma en que Apple se protege de la extracción agresiva.

La forma más fácil de evitar esto es usar una API de scraping como Scrapingbee, aunque puede salir bastante caro.

Librerías y paquetes

Un par de librerías pueden ahorrarte tiempo aquí.

Esta librería de Python usa exactamente ese endpoint y se encarga de la paginación por ti. Esta librería de Node adapta la de Python a Node, y añade algunos extras como el histograma de valoraciones (poco fiable, en el mejor de los casos).

#3 Usar exportaciones de reseñas de Reviewflowz

Si no puedes o no te apetece escribir un script que recorra los 116 países, rote proxies, convierta el JSON de Apple en algo más práctico, elimine reseñas duplicadas al vuelo (la misma reseña puede aparecer en varios países), detecte el idioma, etc., nosotros nos encargamos.

Nuestras exportaciones de pago por uso te permiten descargar reseñas de cualquier aplicación, en cualquier país, en segundos.

Busca una aplicación, selecciona la que quieres, y exporta.

Puedes descargar una muestra de 25 líneas para ver qué aspecto tiene el archivo y comprobar si tiene todo lo que necesitas, y luego comprar la exportación completa a 0,10 dólares por fila.

Si tienes un volumen alto o necesidades específicas, escríbenos: normalmente podemos ayudarte, o recomendarte a alguien que pueda hacerlo.

Ready to get more reviews?

Set up in under five minutes. No demo required.