Als je reviews van de App Store wilt downloaden, heb je ofwel toegang tot de app waarvan je reviews wilt downloaden, of niet.
In dit bericht bespreken we oplossingen en strategieën om toegang te krijgen tot App Store-reviews in beide gevallen, waarbij we telkens prijs, tijd en schaalbaarheid afwegen.
Maar eerst zijn er een paar dingen die je moet weten voordat we ingaan op oplossingen voor het exporteren van App Store-reviewgegevens.
Hoe iOS reviews eigenlijk werken
Als je reviews in de app store bekijkt, weet je misschien wel of niet dat er twee verschillende objecten in het spel zijn:
- Reviews
- Beoordelingen
Op een platform als Google Mijn Bedrijf is er een enkel object genaamd review. En het heeft wel of geen inhoud.
Op iOS werkt het net even anders.
Een review zonder inhoud wordt een beoordeling. En een review-object heeft inhoud en een beoordeling die eraan is gekoppeld.
Het probleem is dat ratings meestal niet beschikbaar zijn. Iedereen die beweert dat ze je toegang geven tot ratings, is ofwel aan het liegen, ofwel aan het verzinnen op basis van openbaar beschikbare geaggregeerde informatie.
Je kunt het als het ware reverse-engineeren met behulp van de informatie die ze verstrekken op openbaar beschikbare app-pagina's, net als hieronder 👇

Sommige API's verkopen die data zelfs.
Realistisch gezien is het zeer onbetrouwbaar, en ik zou aanraden om alleen naar reviews te kijken. Reviews zouden een representatieve subset van beoordelingen moeten zijn, en ze zijn veel gemakkelijker te gebruiken en nauwkeurig te meten.
Een woord over landen & talen
Je weet misschien ook dat een app op een selecte lijst van landen in de App Store staat.
Sommige apps zullen beschikbaar zijn in elk mogelijk land, terwijl andere alleen beschikbaar zullen zijn in Korea, of in de VS, of in Frankrijk, of in een combinatie van de 116 landen die beschikbaar zijn in de Store.
Er zijn een paar addertjes onder het gras met betrekking tot geo's in de App Store, de belangrijkste is dat reviews zijn gekoppeld aan een land, maar niet aan een taal.
Ik heb geen "globaal" eindpunt gevonden, en ik vermoed dat die er simpelweg niet is.
Dit betekent dat je reviews uit elk land moet ophalen om alle reviews te krijgen. Je kunt er ook voor kiezen om slechts een paar landen op te halen, maar dan mis je mogelijk een aantal reviews.
Er zijn 116 landen in de App Store.
Hier is een lijst.
Je kunt het hier als CSV downloaden.
Een App ID vinden
In bijna elke oplossing die hieronder wordt vermeld, is de ID van de app vereist om toegang te krijgen tot de juiste reviews. Inclusief hun eigen App Store Connect API.
#1 Je app-ID vinden op het App Store Connect-dashboard
Als je toegang hebt tot het APp Store Connect dashboard, zit je goed.
Het is vrij eenvoudig, log in op de console, selecteer de juiste app en zoek de Apple ID.

#2 Je app-ID vinden in de openbare App Store
De ID staat ook in de openbare URL's op de openbare pagina's die door de App Store worden gegenereerd. Je kunt naar de App Store gaan, je app zoeken en vinden en de ID uit de URL halen
Voor Instagram ziet de URL er bijvoorbeeld zo uit: https://apps.apple.com/us/app/instagram/id389801252, en de ID is het gedeelte na “id”, dus 389801252.
Ik heb er persoonlijk een hekel aan om hun zoekfunctie te gebruiken, dus ik zoek vaak op Google met een eenvoudig sitefilter.
De zoekopdracht voor instagram zou zijn: site:apps.apple.com instagram.

#3 Programmatisch de ID van een app vinden
Je kunt ook Apple's iTunes-zoekprogramma programmatisch gebruiken als je verwacht veel app-ID's te moeten vinden. Dit is allemaal openbaar en gedocumenteerd door Apple hier.
Om te zoeken, voer het volgende uit:
Als je zoekt naar mobiele apps, is de entiteit “software”.
De query is je zoekterm, URL-gecodeerd.
En de landcode is een ISO 3166-1 (2 letter) code voor het land. Let op: dit is om de een of andere reden niet de standaard die door de App Store Connect API wordt gebruikt (zij gebruiken 3 letter codes).
Leuk weetje: de app-ID's worden op dat endpoint "trackIDs" genoemd (iTunes legacy).
#1 Met behulp van Apple's App Store Connect API

Dit werkt alleen als je toegang hebt tot de App Store Connect API, en als de app waarvan je reviews hoopt te downloaden er een is waar je toegang toe hebt.
Zo niet, dan kun je deze eerste methode overslaan.
Het gebruik van hun eigen API biedt in wezen drie voordelen
- Je kunt reacties terugsturen via dezelfde API-verbinding
- Je kunt consistente en betrouwbare dataschema's verwachten in de loop van de tijd. Bijvoorbeeld als je van plan bent om je reviews te monitoren door regelmatig te pollen.
- Je hebt toegang tot reviews in alle regio's met één API-aanroep. We komen er zo op, maar dat kan niet met andere oplossingen.
Het probleem is dat je technisch moet worden.
Om te authenticeren met Apple's App Store Connect API, moet je JSON Web Tokens (JWT's) ondertekenen. Dit is vrij grondig gedocumenteerd hier en als je ervaring hebt met JWT's zou het vrij eenvoudig moeten zijn.
Maar als je een niet-technische marketeer bent die een lijst van je reviews wil downloaden, kan het eigenlijk makkelijker zijn om via een externe oplossing te gaan.
#2 Apple's niet-gedocumenteerde API gebruiken
Ondocumenteerd is op dit punt een beetje overdreven, aangezien deze URL overal op internet te vinden is. Als je op zoek bent naar data op laag niveau en je bent niet bang om een paar proxies in te stellen, dan kun je dit makkelijk zelf proberen.

Het grootste nadeel hier is dat je alle 116 landen in de store moet controleren op reviews, wat een tijdje kan duren. Hier is de landenlijst met hun codes nogmaals ter referentie.
To scrap App Store reviews, you can leverage this endpoint: `https://itunes.apple.com/{countryCode}/rss/customerreviews/page={page}/sortBy={sort}/id={app_id}/json`
Het geeft elke keer maximaal 50 reviews terug, in JSON-formaat. Best simpel eigenlijk.
Er zijn 4 parameters om je query aan te passen
- countryCode: Zie de bovenstaande landenlijst voor een complete lijst.
- pagina: Je moet pagineringlogica implementeren als je alle beschikbare reviews wilt ophalen. Elke pagina retourneert 50 reviews
- sortBy: De sorteervolgorde die je wilt. Het kan waarschijnlijk een paar waarden aannemen, maar mostRecent werkt, dus waarom iets anders gebruiken?
- app_id: Je kunt de app ID ophalen van de app pagina in je browser. Shopify's app ID is bijvoorbeeld 324684580
Dat is het.
Je krijgt een behoorlijk zware JSON-output met 50 reviews, paginering informatie onder het "link" object, en een paar andere datapunten.
Het enige wat overblijft is de output in jouw favoriete JSON-parser te dumpen en een wrapper te schrijven.
Aandachtspunten
Als je de endpoint begint te bestoken zonder enige throttling, zal het langzamer reageren, wat uiteindelijk leidt tot timeouts of 403-fouten.
Je blijft achter om uit te zoeken waar het misging om op de juiste plek opnieuw te beginnen. Geen pretje.
Met een beetje throttling kun je snelle reacties behouden, en het is uiteindelijk een stuk sneller. Een klassiek geval van: verplaats jezelf in de schoenen van degene die je scraapt.
Gebruik je een IP te veel (inclusief schone residentiële IP's als je dit lokaal doet), dan krijg je een paar minuten of uren 403-fouten. Je hebt een soort proxy rotatie logica of service nodig als je grote hoeveelheden reviews wilt verwerken. Server proxies werken prima, het is eigenlijk gewoon een kwestie van Apple die zichzelf beschermt tegen agressief scrapen.
De gemakkelijkste manier om dit te omzeilen is het gebruik van scraping API's zoals Scrapingbee, maar dat kan behoorlijk duur uitpakken.
Libraries & packages
Er zijn een paar libraries die je hier wat tijd kunnen besparen.
Deze python library maakt gebruik van dat exacte endpoint en handelt paginering voor je af. Deze node library past de python library aan naar node en voegt ook een paar extra's toe, zoals het beoordelingshistogram (wat op zijn best... onbetrouwbaar is).
#3 Review exports gebruiken van Reviewflowz
Als je niet in staat bent – of geen zin hebt – om een script te schrijven dat door 116 landen loopt, proxies roteert, Apple's JSON in iets praktischers verpakt, reviews on the fly dedupliceert (dezelfde review kan in verschillende landen staan), taal detecteert, enz. dan hebben wij je gedekt.

Onze Pay As You Go-exports stellen je in staat om binnen enkele seconden reviews te downloaden van elke app, in elk land.
Zoek naar een App, selecteer degene die je wilt en exporteer.
Je kunt een voorbeeld van 25 regels downloaden om te kijken hoe het bestand eruitziet en of het alles bevat wat je nodig hebt, en vervolgens de export kopen voor $0,10 per rij.
Als je een hoog volume of specifieke eisen hebt, neem dan gerust contact op, we kunnen meestal helpen, of iemand anders aanbevelen die dat wel kan.