Mots-clés App Store : 100 octets ou 100 caractères ?

Mis à jour le · LocalePilot

Le champ Keywords d'App Store Connect est limité à 100… octets ou caractères, selon la page d'Apple que vous lisez. Pour une liste en anglais, les deux reviennent au même ; pour le français, le japonais ou le thaï, ce n'est pas le cas.

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

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.

Questions fréquentes

Combien d'octets fait une lettre accentuée ?

Deux en UTF-8 (é, è, à, ç…). Un caractère japonais, chinois ou thaï en fait trois.

Faut-il mettre des espaces après les virgules ?

Non : séparez les mots-clés par des virgules sans espace, chaque espace consomme de la place.

Où se trouve le fichier des mots-clés avec fastlane ?

Dans fastlane/metadata/<locale>/keywords.txt, un fichier par langue.