Słowa kluczowe App Store: 100 bajtów czy 100 znaków?

Zaktualizowano · LocalePilot

Pole Keywords w App Store Connect jest ograniczone do 100… bajtów albo znaków, zależnie od tego, którą stronę Apple czytasz. Dla angielskiej listy to to samo. Dla polskiego, japońskiego czy tajskiego już nie.

Spieszysz się? Policz bajty słów kluczowych od razu w przeglądarce: za darmo, bez rejestracji, nic nie jest wysyłane.

Co mówi Apple (i co obserwują deweloperzy)

Pytanie wydaje się proste, ale same strony Apple podają różne wartości:

  • Dokumentacja App Store Connect opisuje pole Keywords tak: „You can provide up to 100 bytes of content.” Bajty.
  • Strona Creating Your Product Page mówi o 100 znakach.
  • Na forum deweloperów w 2022 roku pracownik Apple przetestował tajskie słowa kluczowe przez API: 100 znaków przeszło, 106 zostało odrzuconych. A 100 tajskich znaków zajmuje dużo więcej niż 100 bajtów.

Dokumentacja referencyjna mówi więc o bajtach, a co najmniej jedna obserwacja pokazuje liczenie znaków. Dopóki Apple tego nie rozstrzygnie, trzeba wybrać regułę.

Dlaczego ta różnica ma znaczenie

W UTF-8 litery łacińskie bez znaków diakrytycznych zajmują jeden bajt, litera z akcentem lub polskim znakiem dwa, a znak japoński czy tajski trzy.

Słowo kluczoweZnakiBajty
shopping88
épicerie89
supermarché1112
Einkaufsliste1313
買い物リスト618
รายการ618

Dla angielskiego problem w ogóle nie występuje. Dla polskiego, francuskiego czy hiszpańskiego różnica to kilka bajtów na całą listę (każde ą, ć, ł czy ż to bajt więcej). Dla japońskiego lub tajskiego to samo pole mieści trzy razy mniej tekstu, jeśli liczyć bajty, i tu wybór reguły naprawdę ma znaczenie.

Policz to sam

W terminalu, na pliku fastlane ($(cat …) usuwa końcowy znak nowej linii):

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 liczy znaki zgodnie z ustawieniami regionalnymi terminala; przy locale innym niż UTF-8 zwraca tę samą liczbę co wc -c. W 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

Reguła, którą stosujemy

Licz bajty. Tak mówi dokumentacja referencyjna i to najostrzejsza opcja: pole, które mieści się w 100 bajtach, na pewno mieści się w 100 znakach, więc nigdy nie zostanie odrzucone. LocalePilot stosuje ją na ekranie opisu App Store, który podczas pisania pokazuje na przykład „94 / 100 bajtów”.

W japońskim, chińskim, koreańskim czy tajskim ta ostrożność kosztuje: część miejsca może zostać niewykorzystana. Jeśli te rynki są dla Ciebie ważne, wypróbuj dłuższą listę w App Store Connect: od razu odrzuca za długie pole, więc dowiesz się, co dziś przechodzi.

Co nie zależy od jednostki

  • Przecinki, bez spacji wokół nich. Każda spacja po przecinku niepotrzebnie zajmuje bajt.
  • Bez powtarzania nazwy i podtytułu. Większość poradników ASO odradza powtarzanie w słowach kluczowych tego, co mówią już te dwa pola.
  • Jeden plik na język. W fastlane każda lokalizacja ma własny fastlane/metadata/<locale>/keywords.txt. Tłumaczenie angielskiej listy słowo w słowo rzadko daje frazy, które ludzie faktycznie wpisują: zacznij od wyszukiwań w języku docelowym.

Najczęściej zadawane pytania

Ile bajtów zajmuje litera z polskim znakiem?

Dwa w UTF-8 (ą, ę, ł, ż, ó…). Znak japoński, chiński lub tajski zajmuje trzy.

Czy po przecinkach wstawiać spacje?

Nie: oddzielaj słowa kluczowe przecinkami bez spacji, każda spacja zabiera miejsce.

Gdzie jest plik słów kluczowych w fastlane?

W fastlane/metadata/<locale>/keywords.txt, po jednym pliku na język.