Ülkeye Göre Öğe Hedefleme

Ülkeye Göre Öğe Hedefleme nedir?

Ülkeye göre öğe hedefleme, farklı sürümler yayınlamanıza olanak tanır (ör. çözünürlük) Kullanıcının bulunduğu konum. Örneğin, Yeşil Ofis projenizde uygulamanızın kullanıma sunulduğu farklı ülkelere gönderebilirsiniz. Hem de hiçbir yalnızca mobil cihazlarda yalnızca o kadar gerekli öğeler için cihazlar. Bu, çalışma kavramını Öğe Teslimatı ile ilgili daha fazla bilgi edinin. Aşağıda göreceğiniz gibi hedefleme ölçütlerini en fazla 20 ülke ile tanımlayabilirsiniz. belirler. Bu bağlamda cihazın ülkesi kullanıcının Google Hesaplarında kayıtlı fatura adresine göre belirlenir. Play hesabı.

Play Asset Delivery gibi ülkeye göre hedefleme de Android 4.1'i (API düzeyi) destekler. 16) ve üzeri. Ancak Android 4.4 (API düzeyi 19) veya önceki sürümleri çalıştıran cihazlarda Varsayılan ülke ayarı, kullanıcının konumundan bağımsız olarak yayınlanır.

Geliştirici Yolculuğu

Özetle, ülkeye göre hedeflemeyi mevcut oyununuza entegre etmek için: şu adımları uygulayın:

  1. Hedeflemeyi ülkeye (ve uzantıya göre) Play Asset Delivery ile entegre edin oyununuzun içinde
    • Play Asset Delivery'yi oyununuza entegre edin (henüz çoktan yapıldı)
    • Öğelerinizi öğe paketlerine bölün
    • Nihai hedef için kodunuzu ve öğelerinizi Play'e yükleyeceğiniz Android App Bundle yapısı.
  2. Play'in bilmesi için cihaz hedefleme yapılandırmanızı oluşturun nasıl sunacağınızı öğreneceğiz.
    • Google Play Developer API'yi ayarlayın (henüz tamamlanmadıysa). Bu yapılandırma, hedefleme yapılandırmalarını Play'e göndermek için kullanırsınız.
    • Hedefleme yapılandırmasını oluşturma adımlarını uygulayın.
  3. AAB'nizi Play'e yükleyin ve her şeyin doğru olduğundan emin olmak için test edin doğru yapılandırıldı

Gradle, Java ve yerel oyunlar için önerilen derleme sistemidir. Gradle kullanılarak oluşturulan oyunlarda derleme sistemini yapılandırmak için aşağıdaki adımları uygulayın ülke hedefleme desteğiyle AAB'nizi oluşturun.

Oyununuzu Gradle'a aktardıktan sonra derlemenizi burada bitirirseniz bu talimatları uygulamanızı öneririz (ör. Unity oyunları Gradle'a aktarıldı) kaldırın.

Uygulamanızda ülkeye göre öğe hedeflemeyi ayarlama

Play Asset Delivery'yi oyununuza entegre etme (henüz tamamlanmadıysa)

Play Asset Delivery (PAD), oyununuzun öğelerini dinamik olarak yayınlamanızı sağlar. öğeler olduğunu görebilir, böylece yükleme zamanında veya çalışma zamanında istenen öğeleri buradaki genel bakışa göz atın. Entegre Play, öğe paketlerinizin içeriğini ülkeye göre gösterir. ülke ayarı yapılandırmalarında değişiklik yapma. Aşağıdaki rehberliği uygulamanız ve PAD'yi (ör. öğe paketleri oluşturma, oyunda veri alımı uygulama) ardından ülkeye göre hedeflemeyi etkinleştirmek üzere proje kodunu değiştirin.

Gradle

Gradle ile geliştirilen oyunlarda Gradle ile öğe paketlerinizi oluşturun, ardından öğe paketi alımını entegre etme talimatlarını uygulayın. :

Ülkeye özgü dizinler oluşturma

Gradle kullanıyorsanız

Şimdi öğelerinizi ülke grupları arasında paylaştıracaksınız (maks. 20). tanımlayabileceksiniz. Mevcut son adımda oluşturulan öğe paketi dizinlerini ve son adımdaki uygun klasör (aşağıda açıklandığı gibi) ile #countries_latam, #countries_na, vb. unutmayın. Oyununuzda öğe paketlerini kullanırken son eke göre ekleyin (başka bir deyişle, sonek otomatik olarak çıkarmanıza yardımcı olabilir.

Önceki adımdan sonra bu durum aşağıdaki gibi görünebilir:

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

Klasörün altındaki dosyalara eriştiğinizde aynı düzeltmeyi içermeyen bir yol (bu örnekte - sonek olmadan level1/assets/character-textures/) kaldırın.

Android App Bundle'ı oluşturma

Gradle

Projenizin build.gradle dosyasında bağımlılıklarınızı şunun için aşağıdaki (veya üzeri) sürümler: Android Gradle eklentisi ve bundletool:

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

Ayrıca, Gradle sürümünüzü 8.0 veya sonraki bir sürüme güncellemeniz gerekir. Bunu gradle/wrapper/gradle-wrapper.properties bölümünde güncelleyebilirsiniz üzerine konuşacağız.

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

Son olarak, Play Asset Delivery Kitaplığı'nı kullanmanız gerekir. hâlâ kullanıyorsanız monolitik Play Core Kitaplığı'nı kullanarak 1.8.3 veya daha yeni bir sürüme güncelleyin. Önerilerimiz: Play Asset Delivery Kitaplığı'na geçme ve en son sürüme güncelleme yapma kullanmanızı öneririz.

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

Ana uygulama modülünün build.gradle dosyasında ülke hedefleme grubunu etkinleştirin:

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

Son olarak, Android App Bundle'ınızı (AAB) oluşturabilirsiniz.

Paket aracı

Paketinizi Bundletool ile oluşturun, ve AAB'nizi özelleştirme adımındayken, BundleConfig.pb dosyanıza aşağıdakileri ekleyin.

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

Yerel Test

Devam etmeden önce uygulama paketinizi yerel olarak test etmeniz önerilir: her şeyin doğru ayarlandığından emin olun. Kullanım bundletool (1.14.0 veya üzeri), siz Doğru ülkeyi açıkça belirterek uygulamanızı yerel olarak derleyip test edin. Öncelikle kullanacağınız Oluşturmak için build-apks .apks dosya grubunu tıklayıp uygulamanızı bağlı bir cihaza dağıtın install-apks kullanılıyor. Ayrıca country-set işareti. Bu yerel test yöntemi hakkında daha fazla bilgi burada ( bu sayfa henüz ülkeye göre hedefleme için güncellenmediğinden, bu nedenle eksik country-set işareti).

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

Alternatif: Bir dosyayı ayıklamak için extract-apks APK grubudur. Kullanım get-device-spec ülke bilgisini de eklemeniz gerekir. --local-testing işaretiyle birlikte çalışmaz. Yani, hızlı takip veya seç-izle öğe paketlerini test edebilmelisiniz.

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 aracılığıyla Cihaz Hedefleme Yapılandırması Oluşturma

Google Play Developer API'yi kullanmaya başlama (henüz tamamlanmadıysa)

Ülkeye göre hedeflemeyi yapılandırmak (yani ülke gruplarınızı tanımlamak) için kullanmak için Android Yayıncı API'si . API hakkında daha fazla bilgiyi şu adreste bulabilirsiniz: yukarıdaki bağlantıyı tıklayarak başlamak için uygulamanız gereken adımlar:

  1. API projenizi oluşturun (gerekirse) ve Google Play Console'unuza bağlayın.
  2. API Erişim İstemcisi kurma.

API referansını bulabilirsiniz burada - daha sonra derlemenizi API aracılığıyla yüklemeyi seçerseniz her bir arama terimi için Düzenleme yöntemleri. Ayrıca, tarama sürecinde bu sayfayı inceleyin inceleyin.

Cihaz Hedefleme Yapılandırma API'sini kullanma

Cihaz hedefleme yapılandırmanızı oluşturmak için aşağıdaki API çağrısını kullanabilirsiniz:

Cihaz Hedefleme Yapılandırması Oluştur

HTTP isteği POST https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/deviceTierConfigs
Yol parametreleri Yok
İstek Gövdesi Cihaz Hedefleme Yapılandırması
Yanıt Gövdesi Cihaz Hedefleme Yapılandırması
Cihaz Hedefleme Yapılandırması Nesnesi
{
  "user_country_sets": [
    {
      "name": "latam",
      "country_codes": [
        "AR",
        "BR",
        ...
      ]
    },
    {
      "name": "sea",
      "country_codes": [
        "VN",
        "TW",
        ...
      ]
    }
  ]
}

Alanlar:

  • device_confid_id (tam sayı): Bu cihaza karşılık gelen kimlik hedefleme yapılandırması.
  • user_country_sets (nesne): Ülke grubu tanımları
    • name (dize): Ülke grubunun adı (tanımladığınız bir dize kimliği).
    • country_codes (dize): Bu ülke grubuna ait olan ülkeler (biçim: ISO 3166-1 alpha-2).

Aşağıdaki talimatları uygulayarak cihaz hedefleme yapılandırmanızı doğrulama Google Play'e yükleyebilirsiniz.

Kimliğe Göre Cihaz Hedefleme Yapılandırmasını Al

Belirli bir cihaz hedefleme yapılandırmasını şu çağrı:

HTTP isteği GET https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/deviceTierConfigs/{deviceTierConfigId}
Yol parametreleri Yok
İstek Gövdesi Yok
Yanıt Gövdesi Cihaz Hedefleme Yapılandırması

Cihaz Hedefleme Yapılandırmalarının listesini al

Aşağıdaki çağrıda belirtilen son 10 cihaz hedefleme yapılandırmasını alabilirsiniz (veya page_token sorgu parametresini kullanarak ideal olarak onluk bir küme belirtin):

HTTP isteği GET https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/deviceTierConfigs
Yol parametreleri Yok
Sorgu parametreleri page_token (isteğe bağlı) - Bir web sitesini içeren bir anahtar kelime oluşturabilirsiniz. Bu, ve oluşturulan DTC'leri görmek isteyen bir müşterimiz var. son 10 bölümden önce gelir.
İstek Gövdesi Yok
Yanıt Gövdesi Cihaz Hedefleme Yapılandırmalarının Listesi

sayfa_jetonu

Cihaz Hedefleme Yapılandırmanızı Doğrulama

bundletool, cihazınızın şunları doğrulamanıza yardımcı olan iki komut içerir: Hedefleme Yapılandırması, Play'e yüklenmeden önce beklendiği gibi çalışıyor.

bundletool print-device-targeting-config ile JSON verilerinizin dosyasının söz dizimsel olarak doğru olması gerekir.

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

bundletool evaluate-device-targeting-config ile projenizin başarısını belirli bir cihazla eşleşir. Kullanıcıya --country-code bayrağıyla gösteriliyor.

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

Android App Bundle'ınızı Google Play'e yükleme

API aracılığıyla

Android App Bundle'ınızı yüklemek için Google Play Developer API'yi kullanabilirsiniz belirli bir cihaz hedefleme yapılandırmasını Google Play'e kullanabilirsiniz.

Bir Düzenleme yöntemlerine genel bakışı buradan inceleyebilirsiniz. şununla birlikte: Google Play Console'da farklı kanallara yayınlama hakkında daha ayrıntılı örnekler (son bağlantı için AAB uyumlu API'ler [ APK uyumlu API, tıklayın. Şunun için cihaz hedefleme yapılandırmasını belirtmek üzere: yapılandırma kimliğini deviceTierConfigId edits.bundle.upload yöntemini kullanın:

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

Google Play Console'dan

Buradaki talimatları uygulayabilirsiniz. yükleyin. En son DTC yapılandırması şu şekilde olacak: ve App Bundle'ınıza uygulandı.

Doğru öğelerin teslim edildiğini doğrulama

Yalnızca doğru öğelerin yayınlandığından emin olmak için aşağıdaki yöntemi kullanın cihaza

adb shell pm path {packageName}

Aşağıdaki gibi bir sonuç görürsünüz:

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

Yardımcı

Curl kullanarak Hızlı Başlangıç

Aşağıdaki örnek (komut satırı aracı curl kullanılarak) yeni bir cihaz hedefleme yapılandırması oluşturun ve düzenleme oluşturmak için Edits API'yi kullanarak yeni bir AAB yüklemek ( özel bir cihaz hedefleme yapılandırmasıyla), kanal/sürüm yapılandırmasını ayarlayın ve tıklayın. (böylece değişikliği herkese açık hale getirir). şuranın konumu:

Öncelikle bir cihaz hedefleme yapılandırması oluşturun ve Başarılı bir görüşmeden sonra deviceTierConfigId alırsınız.

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

Düzenleme başlat - düzenleme için bir kimlik ve geçerlilik bitiş zamanı alırsınız. Kimliği kaydedin devam edebilir.

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

AAB yükleyin, cihaz hedefleme yapılandırmasını sorgu parametresi olarak belirtme (çağrı başarılı olursa derlemenin sürüm kodu, sha1 ve sha256'sını görürsünüz. Kaydet kullanın.

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'yi istediğiniz kanala atama (test için dahili test kanalını kullanmanız önerilir, ancak farklı parçalar hakkında daha fazla bilgiyi buradan edinebilirsiniz), Burada sürüm notları olmadan basit bir sunum gerçekleştireceğiz ama bu sayfayı okuyun sayfasını ziyaret edin. Publisher API'yi ilk kez kullanıyorsanız, o sürümü taslak olarak kaydedebilir ve Google Play Console'u kontrol edin.

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}

Değişiklikleri kaydetme (bu işlem tüm değişikliklerin Play'de geçerli olmasını sağlayacağından dikkatli bir şekilde ilerleyin. parçaya dönüştürme)

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