Hai fretta? Conta i byte delle tue parole chiave direttamente nel browser: gratis, senza registrazione, niente viene caricato.
Cosa dice Apple (e cosa si osserva)
Le pagine di Apple non sono d'accordo tra loro:
- Il riferimento di App Store Connect parla di 100 byte per il campo Keywords: "You can provide up to 100 bytes of content."
- La pagina Creating Your Product Page parla di 100 caratteri.
- Sui forum per sviluppatori, nel 2022, un membro del team Apple ha provato parole chiave in thai tramite l'API: 100 caratteri sono passati, 106 sono stati rifiutati. E 100 caratteri thai pesano molto più di 100 byte.
Quindi la documentazione di riferimento dice byte, e almeno un'osservazione mostra che si contano i caratteri. Finché Apple non chiarisce, bisogna scegliere una regola.
Perché la differenza conta
In UTF-8 le lettere latine senza accento occupano un byte, una lettera accentata due, un carattere giapponese o thai tre.
| Parola chiave | Caratteri | Byte |
|---|---|---|
| shopping | 8 | 8 |
| épicerie | 8 | 9 |
| supermarché | 11 | 12 |
| Einkaufsliste | 13 | 13 |
| 買い物リスト | 6 | 18 |
| รายการ | 6 | 18 |
Per l'inglese la questione non si pone. Per l'italiano, il francese o lo spagnolo, la differenza è di pochi byte su un elenco completo. Per il giapponese o il thai, lo stesso campo contiene tre volte meno testo se conti i byte, ed è lì che la scelta della regola pesa davvero.
Contare da soli
In un terminale, sul tuo file fastlane ($(cat …) elimina il ritorno a capo finale):
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 conta i caratteri secondo la locale del terminale; con una locale non UTF-8 restituisce lo stesso numero di 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
La regola che applichiamo
Contiamo i byte: è quello che dice la documentazione di riferimento, ed è l'opzione più rigorosa: un campo che sta in 100 byte sta necessariamente in 100 caratteri, quindi non verrà mai rifiutato. LocalePilot la applica nella schermata della scheda App Store, che mostra per esempio "94 / 100 byte" mentre scrivi.
Per giapponese, cinese, coreano o thai questa regola ha un costo: potresti lasciare spazio inutilizzato. Se quei mercati sono importanti per te, prova un elenco più lungo in App Store Connect: rifiuta subito un campo troppo lungo, così saprai cosa passa oggi.
Cosa non dipende dall'unità
- Virgole, senza spazi attorno. Ogni spazio dopo una virgola costa un byte per niente.
- Nessuna ripetizione di nome e sottotitolo. La maggior parte delle guide ASO sconsiglia di ripetere nelle parole chiave quello che questi due campi già dicono.
- Un file per lingua. Con fastlane, ogni localizzazione ha il proprio
fastlane/metadata/<locale>/keywords.txt. Tradurre l'elenco inglese parola per parola raramente dà i termini che le persone digitano davvero: parti dalle ricerche nella lingua di destinazione.