Tel je trefwoorden in bytes, direct in je browser: gratis, zonder account, er wordt niets geüpload.
Wat Apple zegt (en wat mensen zien)
Een eenvoudige vraag, maar de pagina's van Apple zijn het er zelf niet over eens:
- De referentie van App Store Connect beschrijft het veld Keywords als: "You can provide up to 100 bytes of content." Bytes.
- De pagina Creating Your Product Page heeft het over 100 tekens.
- Op de ontwikkelaarsforums testte een medewerker van Apple in 2022 Thaise trefwoorden via de API: 100 tekens gingen erdoor, 106 werden geweigerd. En 100 Thaise tekens wegen veel meer dan 100 bytes.
De referentiedocumentatie zegt dus bytes, en minstens één waarneming laat zien dat er tekens worden geteld. Zolang Apple geen uitsluitsel geeft, moet je een regel kiezen.
Waarom het verschil ertoe doet
In UTF-8 nemen Latijnse letters zonder accent één byte in, een letter met accent twee en een Japans of Thais teken drie.
| Trefwoord | Tekens | Bytes |
|---|---|---|
| shopping | 8 | 8 |
| épicerie | 8 | 9 |
| supermarché | 11 | 12 |
| Einkaufsliste | 13 | 13 |
| 買い物リスト | 6 | 18 |
| รายการ | 6 | 18 |
Voor Engels speelt de vraag niet, en voor Nederlands zelden. Voor Frans of Spaans scheelt het een paar bytes over een volle lijst. Voor Japans of Thais past er in hetzelfde veld drie keer minder tekst als je bytes telt.
Zelf tellen
In een terminal, op je fastlane-bestand ($(cat …) laat het afsluitende regeleinde weg):
printf '%s' "$(cat fastlane/metadata/fr-FR/keywords.txt)" | wc -c # bytes
printf '%s' "$(cat fastlane/metadata/fr-FR/keywords.txt)" | wc -m # characters
wc -m telt tekens volgens de locale van je terminal; met een niet-UTF-8-locale geeft het hetzelfde getal als wc -c. In Dart:
import 'dart:convert';
final keywords = 'courses,épicerie,liste,famille,partagée';
print(utf8.encode(keywords).length); // 41 bytes
print(keywords.runes.length); // 39 characters
De regel die wij toepassen
Tel bytes. Dat zegt de referentiedocumentatie, en het is de strengste optie: een veld dat in 100 bytes past, past zeker in 100 tekens en wordt dus nooit geweigerd. LocalePilot past die regel toe op het App Store-scherm, dat tijdens het typen bijvoorbeeld "94 / 100 bytes" toont.
Voor Japans, Chinees, Koreaans of Thais heeft dat een prijs: misschien laat je ruimte onbenut. Zijn die markten belangrijk voor je, probeer dan een langere lijst in App Store Connect: een te lang veld wordt meteen geweigerd, dus je weet direct wat vandaag geaccepteerd wordt.
Wat niet van de eenheid afhangt
- Komma's, zonder spaties eromheen. Elke spatie na een komma kost een byte die niets oplevert.
- Geen herhaling van naam en ondertitel. De meeste ASO-gidsen raden af om in de trefwoorden te herhalen wat die twee velden al zeggen.
- Eén bestand per taal. Met fastlane heeft elke lokalisatie een eigen
fastlane/metadata/<locale>/keywords.txt. De Engelse lijst woord voor woord vertalen levert zelden de termen op die mensen echt intypen: ga uit van hoe mensen in de doeltaal zoeken.