Parole chiave App Store: 100 byte o 100 caratteri?

Aggiornato il · LocalePilot

Il campo Parole chiave di App Store Connect è limitato a 100… byte o caratteri, a seconda della pagina di Apple che leggi. Per un elenco in inglese è la stessa cosa. Per l'italiano, il giapponese o il thai, no.

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 chiaveCaratteriByte
shopping88
épicerie89
supermarché1112
Einkaufsliste1313
買い物リスト618
รายการ618

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.

Domande frequenti

Quanti byte occupa una lettera accentata?

Due in UTF-8 (à, è, é, ù…). Un carattere giapponese, cinese o thai ne occupa tre.

Devo mettere spazi dopo le virgole?

No: separa le parole chiave con virgole e senza spazi, ogni spazio costa posto.

Dov'è il file delle parole chiave con fastlane?

In fastlane/metadata/<locale>/keywords.txt, un file per lingua.