Kierowanie zasobów według kraju

Co to jest kierowanie komponentów według kraju?

Kierowanie zasobów na kraje umożliwia dostarczanie różnych wersji (np. w rozdzielczości) tego samego zasobu na urządzeniach w zależności od kraju. z której znajduje się użytkownik. Możesz na przykład zdecydować, że do różnych krajów, w których Twoja aplikacja jest dostępna. nie powoduje zwiększenia ogólnego rozmiaru gry, ponieważ dostarcza tylko niezbędnych zasobów użytkownikom, urządzenia. Wykorzystuje w nim koncepcję pakietów zasobów w narzędziu Asset Delivery w Google Play. Jak widać poniżej, kryteria kierowania można definiować dla maksymalnie 20 krajów zestawów. W tym kontekście kraj urządzenia to zwykle ustalane na podstawie adresu rozliczeniowego użytkownika zarejestrowanego w Google Konto Google Play.

Podobnie jak w przypadku Play Asset Delivery, kierowanie według kraju obsługuje Androida 4.1 (poziom API 16) i wyższe. Jednak na urządzeniach z Androidem 4.4 (poziom interfejsu API 19) lub niższym domyślny kraj jest wyświetlany niezależnie od lokalizacji użytkownika.

Ścieżka dewelopera

Ogólnie, aby zintegrować kierowanie według kraju z grą, wykonaj następujące czynności:

  1. Integrowanie kierowania według kraju (i co za tym idzie – Play Asset Delivery) w swojej grze
    • Zintegruj z grą Play Asset Delivery (jeśli nie już to zrobiono)
    • Podziel swoje zasoby na pakiety zasobów
    • Zadbaj o oprawę kodu i zasobów w jednym miejscu Artefakt pakietu Android App Bundle, który prześlesz do Google Play.
  2. Utwórz konfigurację kierowania na urządzenia, by wskazać Google Play jak dostarczać zasoby na urządzenia użytkowników.
    • Skonfiguruj interfejs Google Play Developer API (jeśli nie zostało to jeszcze zrobione) Którego będziesz używać do przesyłania konfiguracji kierowania do Google Play.
    • Wykonaj kolejne czynności, aby utworzyć konfigurację kierowania.
  3. Prześlij pakiet aplikacji na Androida do Google Play i sprawdź, czy wszystko jest poprawnie skonfigurowane

Gradle to zalecany system kompilacji dla gier Java i gier natywnych. W przypadku gier utworzonych za pomocą Gradle wykonaj te czynności, aby skonfigurować system kompilacji aby rozbudować pakiet aplikacji na Androida dzięki obsłudze kierowania na kraj.

Jeśli wyeksportujesz grę do Gradle, a potem dokończysz tam kompilację, zalecamy wykonanie tych instrukcji (np. Gry w jedność wyeksportowano do Gradle)).

Konfigurowanie kierowania zasobów według kraju w aplikacji

Integracja Play Asset Delivery z grą (jeśli jeszcze nie została ukończona)

Usługa Play Asset Delivery (PAD) umożliwia dynamiczne przesyłanie w momencie instalacji lub w czasie działania. Możesz też zapoznać się tutaj znajdziesz ogólne informacje na ten temat. Na kierowane na kraj, Google Play dostarczy zawartość pakietów zasobów na podstawie w konfiguracjach zestawu krajów określonych dla różnych lokalizacji użytkownika. Zalecamy postępowanie zgodnie z poniższymi wskazówkami i zintegrowanie PAD z Twoją grę (np. twórz pakiety zasobów, implementuj w niej pobieranie zasobów), a potem zmodyfikuj kod projektu, by włączyć kierowanie na kraje.

Gradle

W przypadku gier utworzonych za pomocą Gradle postępuj zgodnie z tymi instrukcjami tworzenie pakietów zasobów za pomocą Gradle, a następnie postępuj zgodnie z instrukcjami integracji pobierania pakietów zasobów w grze:

Tworzę katalogi zależne od kraju

Jeśli używasz Gradle

Komponenty zostaną podzielone między zestawy krajów (maksymalnie 20), zdefiniować później. Utwórz katalogi docelowe, wybierając istniejący utworzonych w ostatnim kroku, i po naprawieniu błędu odpowiedni folder (jak opisano poniżej) z nazwą #countries_latam, #countries_na, itp. Jeśli korzystasz z pakietów zasobów w grze, nie musisz foldery adresowe według przyrostka (inaczej mówiąc, sufiks jest automatycznie jest usuwana podczas procesu kompilacji).

Po zakończeniu poprzedniego kroku może to wyglądać tak:

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

Gdy otworzysz pliki w folderze, możesz użyć tego samego bez możliwości poprawienia posta (w tym przykładzie należałoby użyć level1/assets/character-textures/ bez postfiksów).

Tworzenie pakietu Android App Bundle

Gradle

W pliku build.gradle projektu skonfiguruj zależności tak, aby wersje znajdujące się poniżej (lub wyższe) dla wtyczka Androida do obsługi Gradle oraz bundletool:

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

Musisz też zaktualizować wersję Gradle do wersji 8.0 lub nowszej. Możesz to zmienić w aplikacji gradle/wrapper/gradle-wrapper.properties w ramach projektu.

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

Na koniec musisz skorzystać z biblioteki Play Asset Delivery. Jeśli wciąż jesteś przy użyciu monolitycznej biblioteki Google Play Core Library, zaktualizuj ją do wersji 1.8.3 lub nowszej. Zalecamy przejście na bibliotekę Play Asset Delivery i zaktualizowanie jej do najnowszej wersji. jeśli to możliwe.

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

W pliku build.gradle głównego modułu aplikacji włącz podział kierowania na kraje:

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

Możesz też utworzyć pakiet Android App Bundle (AAB).

Pakiet narzędzi

Utwórz pakiet za pomocą narzędzia bundletool, oraz dostosowując pakiet AAB, dodaj następujące elementy do pliku BundleConfig.pb.

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

Testowanie lokalne

Zanim przejdziesz dalej, zalecamy lokalne przetestowanie pakietu aplikacji pod kątem sprawdź, czy wszystko jest poprawnie skonfigurowane. Zastosowanie bundletool (1.14.0 lub nowszej), kompilować i testować aplikację lokalnie, określając właściwy kraj. Najpierw użyjesz funkcji build-apks, aby wygenerować zbiór plików .apks, a następnie wdróż aplikację na połączonym urządzeniu za pomocą install-apks. Za pomocą flaga country-set. Więcej informacji o tej metodzie testów lokalnych tutaj (uwaga: ta strona nie została jeszcze zaktualizowana pod kątem kierowania na kraj i dlatego brakuje jej flagę 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

Alternatywnie: możesz też użyć extract-apks, aby wyodrębnić pakietu APK dla konkretnego urządzenia. Zastosowanie get-device-spec wraz z określeniem kraju urządzenia, jednak nie będzie działać w połączeniu z flagą --local-testing, co oznacza, że nie będzie możliwość testowania pakietów zasobów typu „szybki sposób na śledzenie” lub „na żądanie”.

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

Tworzenie konfiguracji kierowania na urządzenia w interfejsie Google Play Developer API

Pierwsze kroki z interfejsem Google Play Developer API (jeśli jeszcze nie zostały ukończone)

Aby skonfigurować kierowanie według kraju (czyli zdefiniować zestawy krajów) należy musisz użyć Interfejs API wydawcy Android aby przesłać konfigurację do Google Play. Więcej informacji o interfejsie API znajdziesz na stronie Powyżej znajdziesz link czynności, które należy wykonać:

  1. Utwórz (w razie potrzeby) projekt interfejsu API i połącz go z Konsolą Google Play.
  2. Skonfiguruj klienta dostępu do interfejsu API

Dokumentacja API tutaj - Jeśli zdecydujesz się przesłać kompilację za pomocą interfejsu API, za pomocą Edytuje metody. Zalecamy też, aby: sprawdź tę stronę przed jego użyciem.

Korzystanie z interfejsu API konfiguracji kierowania na urządzenia

Do utworzenia konfiguracji kierowania na urządzenia możesz użyć tego wywołania interfejsu API:

Tworzenie konfiguracji kierowania na urządzenia

Żądanie HTTP POST https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/deviceTierConfigs
Parametry ścieżki Nie dotyczy
Treść żądania Konfiguracja kierowania na urządzenia
Treść odpowiedzi Konfiguracja kierowania na urządzenia
Obiekt konfiguracji kierowania na urządzenia
{
  "user_country_sets": [
    {
      "name": "latam",
      "country_codes": [
        "AR",
        "BR",
        ...
      ]
    },
    {
      "name": "sea",
      "country_codes": [
        "VN",
        "TW",
        ...
      ]
    }
  ]
}

Pola:

  • device_confid_id (liczba całkowita): identyfikator odpowiadający temu urządzeniu konfiguracji kierowania.
  • user_country_sets (obiekt): definicje krajów
    • name (ciąg znaków): nazwa zestawu krajów (identyfikator zdefiniowany przez Ciebie jako ciąg znaków).
    • country_codes (ciąg znaków): kraje należące do tego kraju. (format: ISO 3166-1 alfa-2).

Możesz wykonać poniższe instrukcje dotyczące sprawdzenie konfiguracji kierowania na urządzenia przed przesyłając ją do Google Play.

Pobieranie konfiguracji kierowania na urządzenia według identyfikatora

Konfigurację kierowania na urządzenia z konkretnym urządzeniem możesz pobrać, używając identyfikatora, korzystając z parametru następujący sygnał:

Żądanie HTTP GET https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/deviceTierConfigs/{deviceTierConfigId}
Parametry ścieżki Nie dotyczy
Treść żądania Nie dotyczy
Treść odpowiedzi Konfiguracja kierowania na urządzenia

Pobieranie listy konfiguracji kierowania na urządzenia

W ramach tego wywołania możesz uzyskać 10 ostatnich konfiguracji kierowania na urządzenia (optymalnie określ zestaw 10 za pomocą parametru zapytania page_token):

Żądanie HTTP GET https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/deviceTierConfigs
Parametry ścieżki Nie dotyczy
Parametry zapytania page_token (opcjonalny) – służy do określania konkretnej grupie 10 kontrolerów DTC. Jest to przydatne, jeśli utworzono więcej niż 10 z nich i chce zobaczyć, które zostały utworzone. przed ostatnich 10.
Treść żądania Nie dotyczy
Treść odpowiedzi Lista konfiguracji kierowania na urządzenia

token_strony

Weryfikowanie konfiguracji kierowania na urządzenia

bundletool zawiera 2 polecenia, które pomogą Ci sprawdzić, czy urządzenie Przed przesłaniem konfiguracji kierowania do Google Play działa ona zgodnie z oczekiwaniami.

Za pomocą bundletool print-device-targeting-config możesz sprawdzić, czy Twój plik JSON jest poprawny pod względem składni.

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

Dzięki bundletool evaluate-device-targeting-config możesz sprawdzić, ustawiony kraj będzie pasować do konkretnego urządzenia. Możesz podać użytkownikowi kraj za pomocą flagi --country-code.

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

Przesyłanie pakietu Android App Bundle do Google Play

Przez interfejs API

Do przesłania pakietu Android App Bundle możesz użyć interfejsu Google Play Developer API. z Google Play i połączyć konkretną konfigurację kierowania na urządzenia i przygotować odpowiedni projekt.

Jest tutaj znajdziesz ogólne omówienie metod edycji, wraz z bardziej szczegółowe przykłady publikowania na różnych ścieżkach w Konsoli Google Play (w przypadku ostatniego linku musisz użyć polecenia Interfejsy API zgodne z AAB zamiast interfejs API zgodny z APK, podane na stronie). Aby określić konfigurację kierowania na urządzenia dla Twojej kompilacji, dodasz identyfikator konfiguracji do pola deviceTierConfigId. podczas wywoływania funkcji edits.bundle.upload, jak ta:

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

W Konsoli Google Play

Możesz postępować zgodnie z tymi instrukcjami. aby przesłać pakiet Android App Bundle. Najnowsza konfiguracja DTC będzie został zastosowany do pakietu aplikacji.

Sprawdzamy, czy dostarczane są prawidłowe zasoby

Użyj tej metody, aby mieć pewność, że wyświetlane są tylko prawidłowe zasoby do urządzenia

adb shell pm path {packageName}

Strona powinna wyglądać mniej więcej tak:

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

Organizacja pomocnicza

Szybki start z Curl

Poniżej znajduje się przykład (za pomocą narzędzia wiersza poleceń curl) utworzenie nowej konfiguracji kierowania na urządzenia. za pomocą interfejsu Edits API do utworzenia nowej zmiany, prześlij nowy pakiet AAB (powiązanie z konkretną konfiguracją kierowania na urządzenia), ustaw konfigurację ścieżki/wersji i zatwierdź zmiany. (w ten sposób udostępnimy zmianę publicznie). Upewnij się, że masz lokalizacja:

Najpierw utwórz konfigurację kierowania na urządzenia i zapoznaj się z opisem deviceTierConfigId otrzymasz po udanym połączeniu.

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

Rozpocznij edycję - otrzymasz identyfikator i czas wygaśnięcia. Zapisz identyfikator dla kolejnych połączeń.

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

Prześlij pakiet aplikacji na Androida. określając konfigurację kierowania na urządzenia jako parametr zapytania, jeśli wywołanie pojawi się kod wersji – sha1 i sha256. Zapisz dla następnego wywołania.

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}"

Przypisz pakiet AAB do wybranej ścieżki. (do celów testowych zalecamy użycie ścieżki testu wewnętrznego, ale możesz tutaj znajdziesz więcej informacji o różnych ścieżkach), Tutaj mamy proste wdrożenie bez informacji o wersji. przeczytaj tę stronę , by dowiedzieć się więcej o wdrażaniu etapowym, wersjach roboczych i informacjach o wersji. Jeśli po raz pierwszy korzystasz z interfejsu Publisher API, zalecamy jako wersję roboczą i dokończyć publikowanie na w Konsoli Google Play, aby sprawdzić, czy wszystko jest prawidłowo skonfigurowane.

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}

Zatwierdź zmiany (postępuj ostrożnie, ponieważ wszystkie zmiany pojawią się w Google Play do żądanej ścieżki)

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