Optional · Wettbewerber · nur Apple · Schritt für Schritt
Apple veröffentlicht für jede App einen Feed mit den jüngsten Rezensionen und eine Bewertungsübersicht, beides ohne Anmeldung. Das Skript liest sie für die Apps, die du als Wettbewerber einträgst, legt sie getrennt von deinen eigenen ab und stellt sie im Bericht daneben: Store-Note, Rezensionen, dieselbe Ampel, dieselben Themen, dieselbe KI. Ohne Einträge ändert sich am Bericht nichts.
config.jsonWettbewerber ● VitaKasse App [Wettbewerber] VitaKasse Store 4,4 188 neu Ø 1,84 79 % 1–2 ★ ● Medivo Kasse [Wettbewerber] Medivo Store 3,8 120 neu Ø 2,10 70 % 1–2 ★ Eigene Apps zum Vergleich ● Kasse Nord App eigene App Store 4,5 13 neu Ø 3,62 31 % 1–2 ★ ● Kasse Nord Bonus eigene App Store 4,0 10 neu Ø 4,60 10 % 1–2 ★ Was die Nutzer sagen (KI) VitaKasse App Lob: Krankmeldung in Sekunden hochgeladen. Kritik: Anmeldung seit dem Update fehlgeschlagen. Quelle: öffentlicher Apple-Feed, jüngste 500 je Land · Ampel nach denselben Regeln
Warum
Ob 3,6 Sterne gut oder schlecht sind, hängt davon ab, was die anderen Apps derselben Branche bekommen. Und ob eine Beschwerde an deiner App liegt oder an der Sache, zeigt sich, wenn die Nutzer der anderen dasselbe schreiben.
Apple stellt den Feed für Kundenrezensionen und die Bewertungsübersicht selbst bereit, für jede App, für jeden Besucher. Das Skript liest nur das. Kein Auslesen von Webseiten, kein Umgehen von Schutzmechanismen, kein Zugang zu fremden Konten.
Wettbewerber laufen durch dieselbe Auswertung wie deine Apps: Ampel mit denselben Regeln, Themen aus denselben Wortlisten, Zusammenfassung von derselben KI. So ist der Vergleich fair, soweit die Daten es hergeben.
Fremde Rezensionen liegen in einem eigenen Ordner, stehen nicht im App-Filter und fließen nie in deine Zahlen ein: Überblick, Ampel, Kennzahlen und Diagramme zeigen nur deine Apps. Sie lösen keine Benachrichtigung aus. Ohne Einträge in der Konfiguration gibt es keinen Reiter.
Für Google Play gibt es das bewusst nicht. Die Play Developer API liefert nur Rezensionen eigener Apps, und das Auslesen der Store-Webseite verstößt gegen deren Nutzungsbedingungen. Das Skript lehnt einen Google-Eintrag bei Wettbewerbern deshalb ab.
Einrichten · Schritt 1 bis 3
Die Vorlage steht in config/config.example.json. Zugangsdaten brauchst du keine; der Feed ist öffentlich.
Die App im App Store öffnen, den Link kopieren. Die Zahl hinter id ist die App-ID. Für jedes Land, das dich interessiert, brauchst du den zweistelligen Code (DE, AT, CH); der Feed liefert Rezensionen je Land.
https://apps.apple.com/de/app/meine-barmer/id956752981
App-IDAm einfachsten in der Einrichtung im Browser, Schritt Wettbewerber. Von Hand in config/config.json beim Kunden, neben apps, eine Liste competitors. Die id ist frei wählbar und wird zum Ordnernamen; vendor ist der Hersteller für die Tabelle. countries ist Pflicht.
"competitors": [
{ "id": "barmer", "name": "Meine BARMER", "enabled": true,
"vendor": "BARMER",
"apple": { "appId": "956752981", "countries": ["DE", "AT", "CH"] } },
{ "id": "tk-app", "name": "TK-App", "enabled": true,
"vendor": "Techniker Krankenkasse",
"apple": { "appId": "1163694230", "countries": ["DE"] } }
]Der erste Lauf holt bis zu 500 Rezensionen je Land und die Store-Note. Danach ist der Abruf Teil von all und daily; er endet, sobald eine Seite nichts Neues mehr enthält. Im Menü: „Daten abrufen“ → „Wettbewerber abrufen“.
./ratings.sh competitors --dry-run # prüfen, nichts speichern ./ratings.sh competitors # abrufen ./ratings.sh report # Reiter „Wettbewerber“ ✔ Meine BARMER · Wettbewerber: 503 neu · 15 Anfragen · 1,5 s ✔ TK-App · Wettbewerber: 506 neu · 15 Anfragen · 1,8 s
Im Bericht
Alles, was mit Wettbewerbern zu tun hat, erscheint erst, wenn welche eingetragen und abgerufen sind. Deine bisherigen Ansichten bleiben, wie sie sind.
Zwei Tabellen: oben die Wettbewerber, darunter „Eigene Apps zum Vergleich“ (deine Apple-Apps). Je Zeile Ampel, Hersteller, Store-Note mit Zahl der Bewertungen, Rezensionen und Durchschnitt der letzten 90 Tage, Anteil 1–2 ★, aktuelle Version und der Ampelgrund. Sortierbar. Der Filter ist auf diesem Reiter ausgeblendet, damit der Vergleich immer vollständig ist.
Je App eine Karte mit Lob, Kritik und der Zusammenfassung in drei Sätzen, deine Apps und die der Konkurrenz nebeneinander. Jede Karte trägt die Marke „KI“ mit Anbieter, Modell und Datum.
Ein Fenster nur für diese App: Kennzahlen, Sternverteilung der Textrezensionen, Verlauf der Store-Note, je Version, je Land, Themen, Lob und Kritik der KI, die neuesten 1–2-★-Rezensionen mit den „hilfreich“-Stimmen aus dem Store. Dazu der Steckbrief aus dem iTunes Lookup: Hersteller, Genre, Preis, im Store seit, Version mit Datum, Größe, Mindest-iOS, Altersfreigabe, Sprachen, Neuerungen, Beschreibung, Link in den App Store. Verglichen wird in der Tabelle, nicht im Fenster.
Wettbewerber lassen sich im Filter nicht wählen. So können sie keine Summe, keinen Durchschnitt und keine Ampel deiner eigenen Apps verfälschen. Alles zu einer fremden App steht im Fenster des Reiters „Wettbewerber“.
Ein Abschnitt „Wettbewerber“ am Ende der Übersicht, eine Zeile je fremder App. Keine eigene Datei je Wettbewerber.
Neue 1–2-★-Rezensionen fremder Apps und ihre Ampel lösen nie eine Nachricht aus. Die Benachrichtigung bleibt bei deinen Apps.
Grenzen
Der Bericht nennt diese Grenzen auch unter „Wie vollständig sind die Daten?“. Sie gelten für jeden, der denselben Feed liest; es gibt keinen Weg daran vorbei.
Zum Ausprobieren. Das Debug-Menü (./debugmenu.sh) legt mit den Testdaten fünf erfundene Kassen-Apps als Wettbewerber an und ruft nichts von Apple ab. Der Bericht trägt dann oben das Kennzeichen „Demodaten · erfunden“.
Fair vergleichen. Die Rezensionen einer App mit Millionen Nutzern sind nicht dasselbe wie die einer App mit zehntausend. Der Durchschnitt der letzten 90 Tage ist ein Hinweis, kein Urteil; die offizielle Store-Note mit ihrer Zahl der Bewertungen ist die belastbarere Zahl. Und ein Thema, das bei allen Apps der Branche auftaucht, liegt eher an der Sache als an einer App.
Einstellungen
Die Tabelle steht auch in README.md (Abschnitt Konfiguration) und in API-APPLE.md, Abschnitt 4a.
| Feld | Bedeutung | Pflicht |
|---|---|---|
competitors[].id | eigene Kennung, wird Ordnername; eindeutig, auch gegenüber apps | ja |
name | Anzeigename im Bericht | ja |
enabled | Eintrag an oder aus | nein, Standard true |
vendor | Hersteller für die Spalte in der Tabelle; fehlt er, nimmt der Bericht den Namen aus dem Store | nein |
audience | Größe der Zielgruppe, wie bei eigenen Apps | nein |
apple.appId | numerische App-ID aus dem Store-Link | ja |
countries (beim Kunden) | Länder, zweistellig; gilt für alles Länderbezogene; der Feed liefert je Land, jedes Land kostet bis zu elf Anfragen je Lauf | ja |
ai.analyzeCompetitors | Wettbewerber mit analysieren, wenn ein KI-Anbieter aktiv ist; nie Antwortentwürfe oder Maßnahmen für fremde Apps | nein, Standard true |
Welche Daten fließen
Der Abruf spricht nur mit itunes.apple.com, derselben Adresse, die schon die Store-Note deiner eigenen Apps liefert. Es gibt keinen Zwischenschritt über uns.
data/customers/<kunde>/competitors/, nur für dich lesbarMit KI. Ist ein Anbieter aktiv und analyzeCompetitors nicht ausgeschaltet, gehen die Rezensionen der Wettbewerber mit denselben Feldern an denselben Anbieter wie deine eigenen (siehe KI einrichten). Das kostet Tokens je App; der erste Lauf mit sechs Wettbewerbern und je 500 Rezensionen ist der teuerste, danach werden nur neue Rezensionen gesendet.
Wenn etwas nicht klappt
Das Log liegt in data/logs/collect.log. Ein Fehler bei einem Wettbewerber hält die anderen nicht auf.
Beim Kunden fehlt die Liste competitors, oder alle Einträge stehen auf "enabled": false. In all und daily ist das kein Fehler, der Schritt wird still übersprungen.
Die App-ID stimmt nicht, oder die App ist in diesem Land nicht im Store. Link noch einmal kopieren, Land prüfen. Was vor dem Fehler geholt wurde, bleibt gespeichert (Status „partial“).
Der Feed liefert je Land, deshalb ist mindestens ein Code Pflicht: ["DE"].
Wettbewerber gibt es nur für Apple. Den Schlüssel google aus dem Eintrag entfernen.
Die App hat in diesem Land schlicht nicht mehr. Kleine Apps liefern oft nur eine oder zwei Seiten.
Es wurde noch nichts abgerufen, oder der Bericht ist älter als der Abruf. ./ratings.sh competitors, dann ./ratings.sh report.