Le ciblage par types d'appareil vous permet de contrôler plus précisément les parties de votre app bundle qui sont diffusées sur des appareils spécifiques. Par exemple, vous pouvez vous assurer qu'un composant volumineux n'est diffusé que sur les appareils disposant d'une grande quantité de RAM, ou vous pouvez diffuser différentes versions d'un composant sur différents appareils.
Vous pouvez cibler des propriétés d'appareil telles que:
- Modèle de l'appareil
- RAM de l'appareil
- Fonctionnalités système
- Système sur puce (pour les appareils avec un niveau d'API d'au moins 31)
Présentation des étapes requises
Pour activer le ciblage par appareil, procédez comme suit:
- Définissez vos groupes d'appareils dans un fichier XML.
- Spécifiez les parties de votre bundle à attribuer à chaque groupe d'appareils.
- [Facultatif] Testez votre configuration localement.
- Importez votre bundle (contenant le fichier XML) sur Google Play.
Vérifier la version du plug-in Android Gradle
Pour utiliser le ciblage par appareil, assurez-vous que la version de votre plug-in Android Gradle (AGP) est au moins 8.10.0-alpha01. Il est empaqueté avec Android Studio Meerkat 2 ou version ultérieure.
Activer le ciblage par appareil dans le plug-in Android Gradle
Le ciblage par appareil doit être activé explicitement dans votre fichier gradle.properties
:
android.experimental.enableDeviceTargetingConfigApi=true
Créer un fichier XML de configuration du ciblage par types d'appareil
Le fichier de configuration du ciblage par appareil est un fichier XML dans lequel vous définissez vos groupes d'appareils personnalisés. Par exemple, vous pouvez définir un groupe d'appareils appelé high_ram
contenant tous les appareils disposant d'au moins 8 Go de 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>
Un groupe d'appareils est composé de cinq sélecteurs d'appareils maximum. Un appareil est inclus dans un groupe d'appareils s'il répond à l'un de ses sélecteurs d'appareils.
Un sélecteur d'appareil peut comporter une ou plusieurs propriétés d'appareil. Un appareil est sélectionné s'il correspond à toutes les propriétés de l'appareil du sélecteur.
Propriétés de l'appareil disponibles
- device_ram: configuration requise pour la RAM de l'appareil.
- min_bytes (inclus): quantité de RAM minimale requise (en octets).
- max_bytes (exclu): quantité de RAM maximale requise (en octets).
- included_device_ids: modèles d'appareils à inclure dans ce sélecteur (1 000 device_ids par groupe au maximum). Cette propriété est satisfaite si l'appareil correspond à un device_id de la liste.
- build_brand: fabricant de l'appareil
- build_device: code du modèle de l'appareil
- excluded_device_ids: modèles d'appareils à exclure dans ce sélecteur (1 000 device_ids par groupe au maximum). Cette propriété est satisfaite si l'appareil ne correspond à aucun device_id de la liste.
- build_brand: fabricant de l'appareil
- build_device: code du modèle de l'appareil
required_system_features: fonctionnalités qu'un appareil doit avoir pour être pris en compte par ce sélecteur (100 fonctionnalités maximum par groupe). Un appareil doit disposer de toutes les fonctionnalités système de cette liste pour répondre à cette propriété.
Référence des fonctionnalités système
- name: fonctionnalité système
forbidden_system_features: fonctionnalités dont l'appareil ne doit pas être équipé pour être pris en compte par ce sélecteur (100 fonctionnalités maximum par groupe). Si un appareil possède l'une des fonctionnalités système de cette liste, il ne répond pas à cette propriété.
Référence des fonctionnalités système
- name: fonctionnalité système
system-on-chip: système sur une puce à inclure dans ce sélecteur. Un appareil doit disposer d'une puce de cette liste pour satisfaire cette propriété. Le système sur les puces ne peut être ciblé que sur les appareils dont le niveau d'API est au moins 31.
- manufacturer : fabricant du système sur puce
- model: modèle SoC
L'ajout de plusieurs propriétés dans un même sélecteur crée un opérateur logique ET, comme illustré dans l'exemple ci-dessous.
<config:device-selector ram-min-bytes="7000000000">
<config:included-device-id brand="google" device="flame"/>
</config:device-selector>
crée la condition pour tous les appareils qui correspondent à des Pixel 4 ET qui disposent de plus de 7 Go de RAM, également écrit comme suit:
Si vous souhaitez utiliser une condition OU, créez des sélecteurs distincts dans un seul groupe d'appareils, par exemple:
<config:device-selector ram-min-bytes="7000000000"/>
<config:device-selector>
<config:included-device-id brand="google" device="flame"/>
</config:device-selector>
crée la condition pour tous les appareils qui disposent de plus de 7 Go de RAM OU qui correspondent à des Pixel 4, également écrit comme suit:
Voici un exemple montrant toutes les propriétés d'appareil possibles:
<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>
Codes officiels du fabricant et du modèle de l'appareil
Pour trouver le bon formatage pour le fabricant de l'appareil et le code du modèle, utilisez le catalogue d'appareils dans la Google Play Console en suivant l'une de ces méthodes:
Inspectez les appareils individuels à l'aide du catalogue d'appareils, et trouvez le fabricant et le code du modèle aux emplacements indiqués dans l'exemple ci-dessous (pour un Google Pixel 4a, le fabricant est "Google" et le code du modèle est "sunfish"):
Téléchargez un fichier CSV des appareils compatibles, et utilisez le fabricant et le code du modèle pour les champs build_brand et build_device, respectivement.
Inclure votre fichier de configuration de ciblage par appareil dans votre app bundle
Ajoutez le code suivant au fichier build.gradle
de votre module principal:
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
correspond au chemin d'accès de votre fichier de configuration par rapport au module principal. Cela garantit que votre fichier de configuration est empaqueté avec votre app bundle.
La clause deviceGroup
garantit que les APK générés à partir de votre bundle sont divisés par groupes d'appareils.
Ciblage par types d'appareil pour Play Feature Delivery
Pour utiliser le ciblage par appareil avec Play Feature Delivery, consultez la documentation sur la diffusion conditionnelle.