استهداف مواد العرض حسب البلد

ما المقصود باستهداف مواد العرض حسب البلد؟

يسمح لك استهداف مواد العرض حسب البلد بتقديم نُسخ مختلفة (مثل درجات الدقة) لمادة العرض نفسها على الأجهزة حسب البلد ومكان وجود المستخدم. على سبيل المثال، يمكنك اختيار تقديم الأصول إلى البلدان المختلفة التي يتوفّر فيها تطبيقك، وكل ذلك بدون أي زيادة في الحجم الكلي للعبة من خلال تقديم الأصول الضرورية للمستخدمين الأجهزة. هذا يبني على مفهوم حِزم مواد العرض في عرض المواد في Play. وكما ستلاحظ أدناه، يمكنك تحديد معايير الاستهداف لما يصل إلى 20 بلدًا. مجموعات. في هذا السياق، بلد الجهاز هو يتم تحديدها عادةً من خلال عنوان إرسال الفواتير الخاص بالمستخدم المسجَّل في حساب Play.

كما هو الحال مع ميزة "عرض المواد في Play"، يتوافق الاستهداف حسب البلد مع الإصدار 4.1 من نظام التشغيل Android (مستوى واجهة برمجة التطبيقات). 16) وأعلى. ومع ذلك، بالنسبة إلى الأجهزة التي تعمل بنظام التشغيل Android 4.4 (المستوى 19 لواجهة برمجة التطبيقات) أو الإصدارات الأقدم، يتم عرض مجموعة البلدان التلقائية بغض النظر عن الموقع الجغرافي للمستخدم.

رحلة المطوّر

على مستوى عالٍ، لدمج الاستهداف حسب البلد في لعبتك الحالية، اتّبِع الخطوات التالية:

  1. دمج الاستهداف حسب البلد (وبالتالي، عرض المواد في Play) داخل لعبتك
    • دمج ميزة "عرض المواد في Play" في لعبتك (إذا لم يسبق لك إجراء ذلك قد قمت بذلك بالفعل)
    • تقسيم مواد العرض إلى حِزم مواد عرض
    • جمع الرمز البرمجي ومواد العرض معًا للحصول على النتيجة النهائية عناصر "مجموعة حزمات تطبيق Android" التي سيتم تحميلها إلى Play
  2. إنشاء إعدادات "استهداف الأجهزة" حتى يعرف Play كيفية تقديم مواد العرض إلى أجهزة المستخدمين.
    • إعداد واجهة برمجة التطبيقات Google Play Developer API (في حال عدم اكتمالها بعد) وهو ما ستستخدمه لإرسال إعدادات الاستهداف إلى Play
    • اتّبع الخطوات اللازمة لإنشاء إعدادات الاستهداف.
  3. يمكنك تحميل ملف AAB على Play واختباره للتأكّد من تم إعداده بشكل صحيح

Gradle هو نظام التصميم الموصى به لألعاب Java والألعاب الأصلية. بالنسبة إلى الألعاب التي تم إنشاؤها باستخدام منصّة Gradle، اتّبِع الخطوات التالية لضبط نظام التصميم. لإنشاء AAB من خلال إتاحة استهداف البلدان

إذا صدّرت لعبتك إلى Gradle ثم أنهيت عملية الإنشاء هناك، نوصي باتباع هذه التعليمات (على سبيل المثال، ألعاب الوحدة التصدير إلى Gradle)).

إعداد استهداف مواد العرض حسب البلد داخل تطبيقك

دمج ميزة "عرض المواد في Play" في لعبتك (إذا لم يسبق لك إكمالها)

تتيح لك ميزة "عرض المواد في Play" (PAD) تقديم محتوى لعبتك بشكل ديناميكي الأصول أثناء التثبيت أو وقت التشغيل، ويمكنك قراءة نظرة عامة حول هذا الموضوع هنا. مع الاستهداف حسب البلد، سيعرض Play محتوى حِزم مواد العرض استنادًا إلى في إعدادات مجموعة البلدان التي تحدِّدها للمواقع الجغرافية المختلفة للمستخدمين يوصى باتباع الإرشادات أدناه ودمج PAD في لعبتك (أي إنشاء حِزم مواد العرض وتنفيذ الاسترداد في لعبتك) ثم تعديل رمز المشروع لتفعيل الاستهداف حسب البلد

قاعدة مخروطية

بالنسبة إلى الألعاب التي تم إنشاؤها باستخدام Gradle، يمكنك استخدام هذه التعليمات إنشاء حِزم مواد العرض باستخدام Gradle ثم اتّبع تعليمات دمج أداة استرداد حِزم مواد العرض داخل لعبتك:

إنشاء أدلة محدَّدة حسب البلد

في حال استخدام Gradle

ستقوم الآن بتقسيم مواد العرض بين مجموعات البلدان (20 كحد أقصى) والتعريف لاحقًا. أنشئ الأدلة المستهدفة من خلال اتباع الخطوات الحالية أدلة حزم مواد العرض التي تم إنشاؤها في الخطوة الأخيرة، وبعد إصلاح المجلد المناسب (كما هو موضح أدناه) مع #countries_latam, #countries_na، وما إلى ذلك. عند استخدام حِزم مواد العرض في لعبتك، لن تحتاج إلى مجلدات العناوين بواسطة التصحيح (بعبارة أخرى، يتم إنشاء التعديل الختامي تلقائيًا أثناء عملية التصميم).

بعد الخطوة السابقة، قد يبدو ذلك كما يلي:

...
.../level1/src/main/assets/character-textures#countries_latam/
.../level1/src/main/assets/character-textures#countries_na/
.../level1/src/main/assets/character-textures/
...

عندما تصل إلى الملفات الموجودة ضمن المجلد، يمكنك فقط استخدام نفس المسار بدون إصلاح ما بعد التثبيت، (في هذا المثال، سأشير إلى level1/assets/character-textures/ بدون أي تعديلات.

إنشاء "مجموعة حزمات تطبيق Android"

قاعدة مخروطية

في ملف build.gradle الخاص بمشروعك، اضبط الاعتماديات للحصول على الإصدارات أدناه (أو أعلى) المكوّن الإضافي لنظام Gradle المتوافق مع Android bundletool:

buildscript {
  dependencies {
    classpath 'com.android.tools.build:gradle:8.1.0-alpha01'
    classpath "com.android.tools.build:bundletool:1.14.0"
    ...
  }
  ...
}

ستحتاج أيضًا إلى تحديث إصدار Gradle إلى 8.0 أو أحدث. يمكنك تعديل هذه المعلومات في gradle/wrapper/gradle-wrapper.properties. داخل مشروعك.

distributionUrl=https://services.gradle.org/distributions/gradle-8.0-rc-1-all.zip

أخيرًا، ستحتاج إلى استخدام مكتبة عرض المواد في Play. إذا كنت لا تزال باستخدام مكتبة Play Core Library المتجانسة، يُرجى تحديثها إلى الإصدار 1.8.3 أو إصدار أحدث. ننصحك بما يلي: التبديل إلى مكتبة عرض المواد في Play والتحديث إلى أحدث إصدار إن أمكن.

dependencies {
  implementation 'com.google.android.play:asset-delivery:2.0.1'
  ...
}

في ملف build.gradle الخاص بوحدة التطبيق الرئيسية، فعِّل تقسيم استهداف البلدان:

android {
  bundle {
    countrySet {
      enableSplit true
    }
    ...
  }
  ...
}

أخيرًا، يمكنك إنشاء مجموعة حزمات تطبيق Android (AAB).

أداة الحزم

إنشاء الحزمة باستخدام أداة packagetool أو أثناء عملية تخصيص تنسيق AAB أضِف ما يلي إلى ملف BundleConfig.pb.

{
  ...
  "optimizations": {
    "splitsConfig": {
      "splitDimension": [
      ...
      {
        "value": "COUNTRY_SET",
        "negate": false,
        "suffixStripping": {
          "enabled": true,
        }
      }],
    }
  }
}

الاختبار المحلي

قبل المتابعة، ننصحك باختبار حِزمة تطبيقك محليًا من أجل فتأكد من إعداد كل شيء بشكل صحيح. استخدام bundletool (1.14.0 أو أعلى)، عليك إنشاء تطبيقك واختباره على الجهاز، مع تحديد البلد الصحيح بوضوح ستستخدم أولاً build-apks لإنشاء مجموعة من .apks ملف، ثم نشر تطبيقك على جهاز متصل باستخدام install-apks. يمكنك أيضًا تحديد مجموعة البلدان التي تريد تثبيتها عبر علم واحد (country-set) يمكنك العثور على مزيد من المعلومات حول طريقة الاختبار المحلي هذه. هنا (يُرجى ملاحظة أن لم يتم تحديث هذه الصفحة بعد لاستهدافها حسب البلد، وبالتالي لا يتم توفير هذه الصفحة علامة country-set).

bundletool build-apks --bundle=/path/to/app.aab --output=/path/to/app.apks --local-testing
bundletool install-apks --apks=/path/to/app.apks --country-set=latam

بدلاً من ذلك: يمكنك أيضًا استخدام extract-apks لاستخراج مجموعة حزمات APK لجهاز معيّن. استخدام get-device-spec إلى جانب تحديد البلد لهذا الجهاز، لا تعمل مع علامة --local-testing، مما يعني أنك لن تعمل قادرًا على اختبار حِزم مواد العرض ذات المتابعة السريعة أو عند الطلب.

bundletool get-device-spec --output=/path/to/device-spec.json --country-set=latam
bundletool extract-apks --apks=/path/to/existing_APK_set.apks --output-dir=/path/to/device_specific_APK_set.apks --device-spec=/path/to/device-spec.json

إنشاء إعدادات استهداف الأجهزة عبر Google Play Developer API

بدء استخدام Google Play Developer API (إذا لم يسبق لك إكماله)

لضبط الاستهداف حسب البلد (أي تحديد مجموعات البلدان)، عليك استخدام واجهة برمجة تطبيقات ناشر Android لتحميل إعداداتك إلى Google Play لمزيد من المعلومات عن واجهة برمجة التطبيقات على الرابط أعلاه - هناك بعض الخطوات التي عليك اتّباعها للبدء:

  1. أنشِئ (إذا لزم الأمر) واربط مشروع واجهة برمجة التطبيقات بحسابك على Google Play Console.
  2. إعداد برنامج وصول إلى واجهة برمجة التطبيقات

يمكنك العثور على مرجع واجهة برمجة التطبيقات هنا - فيما بعد، إذا اخترت تحميل تصميمك عبر واجهة برمجة التطبيقات، فستنتقل باستخدام تعديل الطرق: بالإضافة إلى ذلك، نشجع على يُرجى مراجعة هذه الصفحة قبل استخدام واجهة برمجة التطبيقات.

استخدام واجهة برمجة تطبيقات إعداد استهداف الأجهزة

يمكنك استخدام طلب البيانات التالي من واجهة برمجة التطبيقات لإنشاء إعدادات استهداف الأجهزة:

إنشاء إعداد استهداف الأجهزة

طلب HTTP POST https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/deviceTierConfigs
مَعلمات المسار لا ينطبق
نص الطلب ضبط إعدادات استهداف الأجهزة
نص الاستجابة ضبط إعدادات استهداف الأجهزة
عنصر إعداد استهداف الأجهزة
{
  "user_country_sets": [
    {
      "name": "latam",
      "country_codes": [
        "AR",
        "BR",
        ...
      ]
    },
    {
      "name": "sea",
      "country_codes": [
        "VN",
        "TW",
        ...
      ]
    }
  ]
}

الحقول:

  • device_confid_id (عدد صحيح): رقم التعريف الخاص بهذا الجهاز إعدادات الاستهداف.
  • user_country_sets (object): تعريفات مجموعة البلدان
    • name (سلسلة): اسم مجموعة البلدان (رقم تعريف سلسلة تحدده).
    • country_codes (سلسلة): البلدان التي تنتمي إلى مجموعة البلدان هذه (التنسيق: ISO 3166-1 alpha-2).

يمكنك اتباع التعليمات أدناه التحقّق من صحة إعدادات استهداف الأجهزة قبل تحميله على Google Play.

الحصول على إعدادات استهداف الأجهزة حسب رقم التعريف

يمكنك استرداد تهيئة استهداف أجهزة معينة حسب رقم التعريف باستخدام المكالمة التالية:

طلب HTTP GET https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/deviceTierConfigs/{deviceTierConfigId}
مَعلمات المسار لا ينطبق
نص الطلب لا ينطبق
نص الاستجابة ضبط إعدادات استهداف الأجهزة

الحصول على قائمة بإعدادات استهداف الأجهزة

يمكنك الحصول على آخر 10 إعدادات لاستهداف الأجهزة في المكالمة التالية (أو تحديد مجموعة من عشرة أحداث على النحو الأمثل باستخدام مَعلمة طلب البحث page_token):

طلب HTTP GET https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/deviceTierConfigs
مَعلمات المسار لا ينطبق
مَعلمات طلب البحث page_token (اختيارية) - تستخدم لتحديد مجموعة محددة مكونة من 10 أعضاء داعمين. يكون هذا مفيدًا إذا قمت بإنشاء أكثر من 10 حسابات DTC، ويريدون الاطّلاع على القيم DTC التي تم إنشاؤها قبل آخر 10.
نص الطلب لا ينطبق
نص الاستجابة قائمة بإعدادات استهداف الأجهزة

الرمز المميّز للصفحة

التحقق من إعدادات استهداف الأجهزة

يشتمل bundletool على أمرَين يساعدكان في التحقّق من أنّ جهازك. تعمل إعدادات الاستهداف على النحو المطلوب قبل تحميلها إلى Play.

باستخدام bundletool print-device-targeting-config، يمكنك التحقّق من أنّ ملف JSON الملف صحيح من الناحية التركيبية.

bundletool print-device-targeting-config --config=mydtc.json

باستخدام bundletool evaluate-device-targeting-config، يمكنك تقييم ما مجموعة الدولة مع جهاز معين. يمكنك تزويد المستخدم البلد من خلال العلم --country-code.

bundletool evaluate-device-targeting-config --config=mydtc.json --connected-device --country-code=AR

تحميل "مجموعة حزمات تطبيق Android" إلى Google Play

عبر واجهة برمجة التطبيقات

يمكنك استخدام Google Play Developer API لتحميل مجموعة حزمات تطبيق Android. بمتجر Google Play، وربط تهيئة معينة لاستهداف الأجهزة التصميم الخاص بك.

تتوفر نظرة عامة حول طرق التعديل هنا، مع أمثلة أكثر تفصيلاً حول طرح إصدارات مختلفة من اللعبة في Google Play Console (بالنسبة للرابط الأخير، سترغب في استخدام واجهات برمجة التطبيقات المتوافقة مع AAB بدلاً من واجهة برمجة التطبيقات المتوافقة مع APK المدرجة في الصفحة). لتحديد تكوين استهداف الأجهزة لـ تصميمك، عليك إضافة معرّف الإعدادات إلى deviceTierConfigId. معلَمة طلب البحث أثناء استدعاء edits.bundle.upload، كما يلي:

https://androidpublisher.googleapis.com/upload/androidpublisher/v3/applications/{packageName}/edits/{editId}/bundles?deviceTierConfigId="{deviceTierConfigId}

عبر Google Play Console

يمكنك اتّباع التعليمات هنا لتحميل مجموعة حزمات تطبيق Android. سيكون أحدث ضبط DTC تم التطبيق على حِزمة تطبيقك.

جارٍ التحقّق من إرسال مواد العرض الصحيحة

استخدِم الطريقة التالية لضمان إرسال مواد العرض الصحيحة فقط. إلى الجهاز

adb shell pm path {packageName}

من المفترض أن يظهر لك شيء مثل:

package:{...}/base.apk
package:{...}/split_config.en.apk
package:{...}/split_config.xxhdpi.apk
package:{...}/split_main_asset.apk
package:{...}/split_main_asset.config.countries_latam.apk

مساعد

البدء السريع باستخدام Curl

يوجد أدناه مثال (باستخدام أداة سطر الأوامر curl) إنشاء إعداد جديد لاستهداف الأجهزة استخدام واجهة برمجة تطبيقات التعديلات لإنشاء تعديل جديد، وتحميل تنسيق AAB جديد (بربطه مع إعداد محدد لاستهداف الأجهزة)، وتعيين تهيئة المسار/الإصدار، وتنفيذ التعديل. (وبالتالي إتاحة التغيير للجميع). تأكد من الحصول على موقع:

أولاً، أنشئ تهيئة لاستهداف الأجهزة، ولاحظ deviceTierConfigId التي ستصل إليها عند إجراء مكالمة ناجحة.

curl -H "$(oauth2l header --json $HOME/{apiKey} androidpublisher)" -XPOST -H "Content-Type: application/json" -d "{ "user_country_sets": [ { "name": "latam", "country_codes": [ "AR", "BR" ] }, { "name": "sea", "country_codes": [ "VN", "TW" ] } ] }" https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/deviceTierConfigs

بدء تعديل - فستحصل على معرف ووقت انتهاء صلاحية التعديل. حفظ معرّف المكالمات اللاحقة.

curl -H "$(oauth2l header --json $HOME/{apiKey} androidpublisher)" -XPOST https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/edits

تحميل ملف AAB لتحديد تهيئة استهداف الأجهزة كمعلمة طلب بحث - إذا تم بنجاح، سيظهر لك رمز الإصدار sha1 وsha256 للإصدار. حفظ رمز الإصدار للمكالمة التالية.

curl -H "$(oauth2l header --json $HOME/{apiKey} androidpublisher)" --data-binary @$HOME/{aabFile} -H "Content-Type: application/octet-stream" -XPOST https://androidpublisher.googleapis.com/upload/androidpublisher/v3/applications/{packageName}/edits/{editID}/bundles?deviceTierConfigId="{deviceTargetingConfigID}"

تخصيص تنسيق AAB للمقطع الصوتي المطلوب (لإجراء الاختبار، يوصى باستخدام مسار الاختبار الداخلي، ولكن يمكنك يمكنك الاطّلاع على المزيد من المعلومات حول المقاطع الصوتية المختلفة هنا)، أن نجري هنا طرحًا بسيطًا دون ملاحظات الإصدار، ولكن يمكنك قراءة هذه الصفحة لمعرفة المزيد من المعلومات حول طريقة الطرح على مراحل والإصدارات الأولية وملاحظات الإصدار. إذا كانت هذه هي المرة الأولى التي تستخدم فيها واجهة برمجة تطبيقات الناشر، نقترح عليك إنشاء كإصدار تمهيدي وإكمال الإصدار في Google Play Console للتأكّد من ضبط جميع الإعدادات بشكل صحيح

curl -H "$(oauth2l header --json $HOME/{apiKey} androidpublisher)" -XPUT -H "Content-Type: application/json" -d "{ releases: [{status: '{status}'</code>, <code><strong>versionCodes</strong></code>: <code>['{versionCode}']</code> <code><strong>}]}</strong></code>" <code>https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/edits/{editID}/tracks/{track}

الالتزام بالتغييرات (يُرجى المتابعة بحذر، لأنّ ذلك سيؤدي إلى نشر جميع التغييرات على Play إلى المسار المطلوب)

curl -H "$(oauth2l header --json $HOME/{apiKey} androidpublisher)" -XPOST https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/edits/{editID}:commit