مستعجل؟ احسب حجم كلماتك المفتاحية بالبايت مباشرة في متصفحك: مجانًا، دون تسجيل، ودون رفع أي شيء.
ما تقوله Apple (وما يلاحظه المطورون)
صفحات Apple نفسها لا تتفق على الجواب:
- يصف مرجع App Store Connect حقل Keywords هكذا: «You can provide up to 100 bytes of content.»، والوحدة هنا البايت.
- وتتحدث صفحة Creating Your Product Page عن 100 حرف.
- وفي منتديات المطورين، عام 2022، اختبر أحد أعضاء فريق Apple كلمات مفتاحية تايلاندية عبر الـAPI: مرّت 100 حرف، ورُفضت 106. و100 حرف تايلاندي تزن أكثر بكثير من 100 بايت.
إذن تقول الوثائق المرجعية «بايت»، وتُظهر ملاحظة واحدة على الأقل أن العدّ يتم بالحروف. وإلى أن تحسم Apple الأمر، عليك اختيار قاعدة.
لماذا يهم الفرق
في UTF-8، يشغل الحرف اللاتيني غير المشكول بايتًا واحدًا، والحرف المشكول أو العربي بايتين، والحرف الياباني أو التايلاندي ثلاثة.
| الكلمة المفتاحية | الحروف | البايتات |
|---|---|---|
| shopping | 8 | 8 |
| épicerie | 8 | 9 |
| supermarché | 11 | 12 |
| Einkaufsliste | 13 | 13 |
| تسوق | 4 | 8 |
| 買い物リスト | 6 | 18 |
| รายการ | 6 | 18 |
للإنجليزية، لا يُطرح السؤال أصلًا. وللفرنسية أو الإسبانية، الفرق بضعة بايتات على قائمة كاملة. أما للعربية، فكل حرف يشغل بايتين: يتسع الحقل لنصف النص إذا عددت بالبايت. ولليابانية أو التايلاندية، يتسع الحقل نفسه لثلث النص.
العدّ بنفسك
في الطرفية (terminal)، على ملف 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 الحروف وفق إعدادات اللغة (locale) في طرفيتك؛ ومع إعداد غير 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 بايت» أثناء الكتابة.
لهذه القاعدة ثمن في العربية واليابانية والصينية والكورية والتايلاندية: قد تترك مساحة غير مستخدمة. إذا كانت هذه الأسواق مهمة لك، فجرّب قائمة أطول في App Store Connect: فهو يرفض الحقل الزائد فورًا، فتعرف ما يمر اليوم.
ما لا يتعلق بوحدة العدّ
- فواصل دون مسافات حولها. كل مسافة بعد فاصلة تستهلك بايتًا دون فائدة.
- لا تكرار لاسم التطبيق والعنوان الفرعي. تنصح معظم أدلة ASO بعدم تكرار ما يقوله هذان الحقلان في الكلمات المفتاحية.
- ملف لكل لغة. مع fastlane، لكل لغة ملفها
fastlane/metadata/<locale>/keywords.txt. ونادرًا ما تعطيك ترجمة القائمة الإنجليزية حرفيًا المصطلحات التي يكتبها الناس فعلًا: انطلق من البحث في اللغة الهدف.