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:
- 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.
- 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.
- 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:
- Java
- Natywne
- Gry typu Unity wyeksportowane do Gradle
- Korzystaj z bibliotek Java. za pomocą JNI (np. tej wbudowanej w Unity).
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ć:
- Utwórz (w razie potrzeby) projekt interfejsu API i połącz go z Konsolą Google Play.
- 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:
- Klucz odpowiadający Twojemu klientowi interfejsu API
- Nazwa pakietu Twojej aplikacji
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