gplay device-tiers (device-targeting for tiered delivery)
gplay device-tiers manages device tier configs — the app-scoped
configuration that drives tiered content delivery: which devices fall into
which tier, so Play can serve different assets to high-end and low-end devices.
Shared conventions (auth, output, exit codes, --dry-run, --package pinning)
are in gplay-cli-usage. The whole namespace is [experimental].
A config bundles three things (all expressed in the JSON body):
- device groups — named sets of device selectors (over RAM, device IDs, SoCs, system features),
- an ordered device tier set — tiers by descending priority,
- user country sets.
Immutable — create / get / list only
The defining property: a device tier config is immutable. The API exposes
only create, get, and list — no update, no patch, no delete. Two
consequences:
createneeds no--confirm. It can never overwrite or destroy an existing config, so it isn't a destructive write. (GPLAY_READONLYstill refuses it — it is a write — with exit4.)- To "change" targeting, you create a new config and point delivery at the
new
deviceTierConfigId. Old configs stay around; there is nothing to edit or clean up here.
This also puts device tier configs outside the Edit lifecycle (like the Data
Safety declaration and app recovery) — a direct application-scoped write, no
editId.
Create
# From a file:
gplay device-tiers create --file config.json
# From stdin (default when --file is omitted or "-"):
cat config.json | gplay device-tiers create
# Rehearse — validate the body, resolve the target, no HTTP:
gplay device-tiers create --file config.json --dry-run
- The server assigns the
deviceTierConfigId— do not put an id in the body. --allow-unknown-devicessetsallowUnknownDevices=true(let devices Play doesn't recognize into the config).- Don't know the body shape?
gplay schema DeviceTierConfigexpands its fields and enums offline (seegplay-cli-usage), or round-trip an existing config withview --output json.
Read
gplay device-tiers list # newest first; --page-size / --page-token to page
gplay device-tiers view <deviceTierConfigId> # one config by its server-assigned id
gplay device-tiers view <id> --output json # DeviceTierConfig, verbatim
--output json passes the API response through verbatim (ADR-0003) — the
list response carries nextPageToken for paging (capped at 100 per page).
Confirm the current verbs and flags with gplay device-tiers --help and
gplay device-tiers <command> --help — the surface is [experimental]
(ADR-0030) and may still evolve.