브라우저에서 바로 키워드 바이트를 세어 보세요. 무료이고 가입이 필요 없으며, 아무것도 업로드되지 않습니다.
Apple의 설명(과 실제 관찰)
간단한 질문 같지만, Apple 페이지마다 답이 다릅니다.
- App Store Connect 레퍼런스는 키워드 필드를 "You can provide up to 100 bytes of content."라고 설명합니다. 바이트입니다.
- Creating Your Product Page 페이지는 100자라고 합니다.
- 개발자 포럼에서는 2022년 Apple 직원이 API로 태국어 키워드를 시험했는데, 100자는 통과하고 106자는 거부되었습니다. 태국어 100자는 100바이트를 훨씬 넘습니다.
즉, 레퍼런스 문서는 바이트라고 하고, 적어도 한 번의 관찰에서는 글자 수로 세었습니다. Apple이 정리해 주기 전까지는 규칙을 하나 골라야 합니다.
차이가 중요한 이유
UTF-8에서 악센트 없는 라틴 문자는 1바이트, 악센트가 붙은 글자는 2바이트, 한글, 일본어, 태국어 문자는 3바이트입니다.
| 키워드 | 글자 수 | 바이트 |
|---|---|---|
| shopping | 8 | 8 |
| épicerie | 8 | 9 |
| supermarché | 11 | 12 |
| Einkaufsliste | 13 | 13 |
| 장보기목록 | 5 | 15 |
| 買い物リスト | 6 | 18 |
| รายการ | 6 | 18 |
영어에서는 이 문제가 거의 생기지 않습니다. 프랑스어나 스페인어에서는 목록 전체에서 몇 바이트 차이입니다. 규칙에 따라 결과가 크게 달라지는 것은 한국어, 일본어, 태국어로, 바이트로 세면 같은 필드에 들어가는 텍스트가 3분의 1로 줄어듭니다. 100바이트에 들어가는 한글은 33자(99바이트)까지이며, 쉼표도 하나에 1바이트씩 씁니다.
직접 세어 보기
터미널에서 fastlane 파일을 셉니다($(cat …)는 끝의 줄바꿈을 없앱니다).
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은 터미널 로케일에 따라 글자 수를 셉니다. UTF-8이 아닌 로케일에서는 wc -c와 같은 숫자를 돌려줍니다. 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
우리가 적용하는 규칙
바이트로 셉니다. 레퍼런스 문서가 그렇게 말하고, 가장 엄격한 선택지이기도 합니다. 100바이트에 들어가는 필드는 반드시 100자에도 들어가므로 거부되는 일이 없습니다. LocalePilot은 App Store 등록 정보 화면에서 이 규칙을 적용하며, 입력하는 동안 예를 들어 "94 / 100 bytes"처럼 보여 줍니다.
다만 일본어, 중국어, 한국어, 태국어에서는 대가가 있습니다. 필드에 쓸 수 있는 자리가 남을 수 있습니다. 이 시장이 중요하다면 App Store Connect에서 더 긴 목록을 시도해 보세요. 너무 긴 필드는 바로 거부되므로, 지금 무엇이 통과하는지 알 수 있습니다.
단위와 상관없는 것
- 쉼표로 구분하고, 앞뒤에 공백을 넣지 않기. 쉼표 뒤의 공백은 하나마다 1바이트를 차지합니다.
- 이름과 부제를 반복하지 않기. 대부분의 ASO 가이드는 두 필드에 이미 있는 단어를 키워드에서 반복하지 말라고 권합니다.
- 언어마다 파일 하나. fastlane에서는 현지화마다
fastlane/metadata/<locale>/keywords.txt가 따로 있습니다. 영어 목록을 단어 그대로 번역하면 사람들이 실제로 입력하는 검색어와 맞는 경우가 드뭅니다. 대상 언어의 검색에서 출발하세요.