Kierowanie na urządzenia (beta)

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:

  1. Zdefiniuj grupy urządzeń w pliku XML.
  2. Określ, które części pakietu mają trafić do których grup urządzeń.
  3. [Opcjonalnie] Przetestuj konfigurację lokalnie.
  4. 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.

    Lista funkcji systemowych

    • 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.

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”):

    strona Pixela 4a w katalogu urządzeń

    strona Pixela 4a w katalogu urządzeń

  • Pobieranie pliku CSV z obsługiwanymi urządzeniami i używanie pól ManufacturerModel Code do pól build_brandbuild_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.