Kierowanie na urządzenia daje Ci większą kontrolę nad tym, które części pakietu aplikacji są dostarczane na konkretne urządzenia. Możesz na przykład zadbać o to, aby duży zasób był dostarczany tylko do urządzeń z dużą ilością pamięci RAM, lub dostarczać różne wersje zasobu na różne urządzenia.
Możesz kierować reklamy na właściwości urządzenia, takie jak:
- Model urządzenia
- Pamięć RAM urządzenia
- Funkcje systemowe
- System on chip (dla urządzeń z poziomem interfejsu API co najmniej 31)
Omówienie wymaganych czynności
Aby włączyć kierowanie na urządzenia, wykonaj te czynności:
- Zdefiniuj grupy urządzeń w pliku XML.
- Określ, które części pakietu mają trafić do których grup urządzeń.
- [Opcjonalnie] Przetestuj konfigurację lokalnie.
- Prześlij pakiet (zawierający plik XML) do Google Play.
Sprawdzanie wersji wtyczki Androida do obsługi Gradle
Aby korzystać z kierowania na urządzenia, sprawdź, czy wersja wtyczki Android Gradle (AGP) to co najmniej 8.10.0-alpha01. Jest ona dostępna w Android Studio w wersji Meerkat 2 lub nowszej.
Włączanie kierowania na urządzenia w pluginie Androida do obsługi Gradle
Kierowanie na urządzenia musi być wyraźnie włączone w pliku gradle.properties
:
android.experimental.enableDeviceTargetingConfigApi=true
Tworzenie pliku XML konfiguracji kierowania na urządzenia
Plik konfiguracji kierowania na urządzenia to plik XML, w którym definiujesz niestandardowe grupy urządzeń. Możesz na przykład zdefiniować grupę urządzeń o nazwie high_ram
, która zawiera wszystkie urządzenia z co najmniej 8 GB pamięci RAM:
<config:device-targeting-config
xmlns:config="http://schemas.android.com/apk/config">
<config:device-group name="high_ram">
<config:device-selector ram-min-bytes="8000000000"/>
</config:device-group>
</config:device-targeting-config>
Grupa urządzeń składa się maksymalnie z 5 selektorów urządzeń. Urządzenie jest uwzględniane w grupie urządzeń, jeśli spełnia kryteria dowolnego z selektorów urządzeń.
Selektor urządzeń może mieć co najmniej 1 usługę. Urządzenie jest wybrane, jeśli odpowiada wszystkim właściwościom urządzenia selektora.
Dostępne właściwości urządzenia
- device_ram: wymagania dotyczące pamięci RAM urządzenia.
- min_bytes (włącznie): minimalna wymagana ilość pamięci RAM (w bajtach).
- max_bytes (wyłącznie): maksymalna wymagana pamięć RAM (w bajtach).
- included_device_ids: modele urządzeń, które mają być uwzględnione w tym selektorze. (maksymalnie 10 000 identyfikatorów urządzenia na grupę). Ta właściwość jest spełniona, jeśli urządzenie pasuje do dowolnego identyfikatora device_id na liście.
- build_brand: producent urządzenia.
- build_device: kod modelu urządzenia
- excluded_device_ids: modele urządzeń, które mają być wykluczone w tym selektorze (maksymalnie 10 000 identyfikatorów urządzenia na grupę). Ta właściwość jest spełniona, jeśli urządzenie nie pasuje do żadnego identyfikatora device_id na liście.
- build_brand: producent urządzenia.
- build_device: kod modelu urządzenia
required_system_features: funkcje, które musi mieć urządzenie, aby można było je uwzględnić za pomocą tego selektora (maksymalnie 100 funkcji na grupę). Aby spełniać to kryterium, urządzenie musi mieć wszystkie funkcje systemowe z tej listy.
Informacje o funkcjach systemowych
- name: funkcja systemowa,
forbidden_system_features: funkcje, których urządzenie nie może mieć, aby być uwzględnione przez ten selektor (maksymalnie 100 funkcji na grupę). Jeśli urządzenie ma którąś z funkcji systemowych z tej listy, nie spełnia tego kryterium.
- name: funkcja systemowa,
system-on-chip: układy SOC, które mają być uwzględnione w tym selektorze. Aby spełniać to kryterium, urządzenie musi mieć dowolny układ z tej listy. Systemy na chipach mogą być kierowane tylko na urządzenia z interfejsem API na poziomie co najmniej 31.
- manufacturer: Producent układu SoC
- model: model systemu na chipie
Uwzględnienie w jednym selektorze wielu usług powoduje zastosowanie operatora logicznego „I”, np.:
<config:device-selector ram-min-bytes="7000000000">
<config:included-device-id brand="google" device="flame"/>
</config:device-selector>
utworzy warunek dla wszystkich urządzeń z ponad 7 GB pamięci RAM, które są Pixelem 4. Można go też zapisać w ten sposób:
Jeśli chcesz użyć warunku LUB, utwórz oddzielne selektywy w jednej grupie urządzeń, np.:
<config:device-selector ram-min-bytes="7000000000"/>
<config:device-selector>
<config:included-device-id brand="google" device="flame"/>
</config:device-selector>
spowoduje utworzenie warunku dla wszystkich urządzeń z powyżej 7 GB pamięci RAM LUB Pixel 4, także zapisany w ten sposób:
Oto przykład, który pokazuje wszystkie możliwe właściwości urządzenia:
<config:device-targeting-config
xmlns:config="http://schemas.android.com/apk/config">
<config:device-group name="myCustomGroup1">
<config:device-selector ram-min-bytes="8000000000">
<config:included-device-id brand="google" device="redfin"/>
<config:included-device-id brand="google" device="sailfish"/>
<config:included-device-id brand="good-brand"/>
<config:excluded-device-id brand="google" device="caiman"/>
<config:system-on-chip manufacturer="Sinclair" model="ZX80"/>
<config:system-on-chip manufacturer="Commodore" model="C64"/>
</config:device-selector>
<config:device-selector ram-min-bytes="16000000000"/>
</config:device-group>
<config:device-group name="myCustomGroup2">
<config:device-selector ram-min-bytes="4000000000" ram-max-bytes="8000000000">
<config:required-system-feature name="android.hardware.bluetooth"/>
<config:required-system-feature name="android.hardware.location"/>
<config:forbidden-system-feature name="android.hardware.camera"/>
<config:forbidden-system-feature name="mindcontrol.laser"/>
</config:device-selector>
</config:device-group>
</config:device-targeting-config>
Kody oficjalnego producenta i modelu urządzenia
Prawidłowe formatowanie kodu producenta i modelu urządzenia możesz znaleźć w katalogu urządzeń w Konsoli Google Play. Aby to zrobić:
Sprawdzanie poszczególnych urządzeń za pomocą Katalogu urządzeń i znajdowanie kodu producenta i modelu w miejscach pokazanych w przykładzie poniżej (w przypadku Google Pixel 4a producent to „Google”, a kod modelu to „sunfish”):
Pobieranie pliku CSV z obsługiwanymi urządzeniami i używanie pól Manufacturer i Model Code do pól build_brand i build_device.
Dołącz do pakietu aplikacji plik konfiguracji kierowania na urządzenia
Dodaj do pliku build.gradle
głównego modułu te informacje:
android {
...
bundle {
deviceTargetingConfig = file('device_targeting_config.xml')
deviceGroup {
enableSplit = true // split bundle by #group
defaultGroup = "other" // group used for standalone APKs
}
}
...
}
device_targeting_config.xml
to ścieżka do pliku konfiguracji względem modułu głównego. Dzięki temu plik konfiguracji zostanie zapakowany z pakietem aplikacji.
Klauzula deviceGroup
zapewnia, że pliki APK wygenerowane z pakietu są podzielone według grup urządzeń.
Kierowanie funkcji na urządzenia w ramach Play Feature Delivery
Aby używać kierowania na urządzenia z użyciem funkcji dostarczania funkcji w Google Play, zapoznaj się z dokumentacją na temat dostarczania warunkowego.