Comptez vos mots-clés en octets directement dans le navigateur avec un outil gratuit, sans compte et sans envoi de données.
Ce que dit Apple (et ce qu'on observe)
Les sources d'Apple ne disent pas la même chose :
- La référence d'App Store Connect décrit le champ Keywords ainsi : « You can provide up to 100 bytes of content » (100 octets).
- La page Creating Your Product Page parle de 100 caractères.
- Sur les forums développeurs, en 2022, un membre de l'équipe Apple a testé des mots-clés en thaï via l'API : 100 caractères passaient, 106 étaient refusés. Or 100 caractères thaïs pèsent bien plus de 100 octets.
La documentation de référence annonce donc des octets, alors qu'au moins une observation montre un comptage en caractères. Tant qu'Apple ne tranche pas, il faut choisir une règle.
Pourquoi la différence compte
En UTF-8, les lettres latines sans accent occupent un octet, une lettre accentuée deux, un caractère japonais ou thaï trois.
| Mot-clé | Caractères | Octets |
|---|---|---|
| courses | 7 | 7 |
| épicerie | 8 | 9 |
| supermarché | 11 | 12 |
| Einkaufsliste | 13 | 13 |
| 買い物リスト | 6 | 18 |
| รายการ | 6 | 18 |
En français, une liste pleine d'accents ne prend que quelques octets de plus, alors qu'en japonais ou en thaï le même champ contient trois fois moins de texte si l'on compte en octets.
Compter soi-même
Dans un terminal, sur le fichier fastlane ($(cat …) retire le retour à la ligne final) :
printf '%s' "$(cat fastlane/metadata/fr-FR/keywords.txt)" | wc -c # octets
printf '%s' "$(cat fastlane/metadata/fr-FR/keywords.txt)" | wc -m # caractères
wc -m compte les caractères selon la locale du terminal ; avec une locale non UTF-8, il renverra le même nombre que wc -c. En Dart :
import 'dart:convert';
final keywords = 'courses,épicerie,liste,famille,partagée';
print(utf8.encode(keywords).length); // 41 octets
print(keywords.runes.length); // 39 caractères
La règle que nous appliquons
Comptez en octets. C'est la règle de la documentation de référence et la plus stricte : un champ qui tient en 100 octets tient forcément en 100 caractères, donc il ne sera jamais refusé. LocalePilot l'applique dans son écran Fiche App Store, qui affiche par exemple « 94 / 100 octets » pendant la saisie.
Pour le japonais, le chinois, le coréen ou le thaï, cette règle peut laisser de la place inutilisée. Si ces marchés comptent pour vous, faites l'essai dans App Store Connect avec une liste plus longue : l'interface refuse immédiatement un champ trop long, vous saurez ce qui passe aujourd'hui.
Ce qui ne dépend pas de l'unité
- Séparez les mots-clés par des virgules, sans espace : chaque espace après une virgule consomme un octet pour rien.
- La plupart des guides ASO conseillent de ne pas répéter dans les mots-clés ce qui figure déjà dans le nom et le sous-titre.
- Avec fastlane, chaque localisation a son
fastlane/metadata/<locale>/keywords.txt. Traduire mot à mot la liste anglaise donne rarement les termes que les gens tapent réellement : partez de la recherche dans la langue cible.