gplay offers
gplay offers
Section titled “gplay offers”Manage subscription offers (trials, introductory prices).
gplay offers <subcommand> [flags]Manage subscription offers within base plans.
Offers include:
- Free trials
- Introductory prices
- Developer-determined offers
Offers are attached to base plans and provide promotional pricing for new subscribers.
gplay offers list
Section titled “gplay offers list”List all offers for a base plan.
gplay offers list --package <name> --product-id <id> --base-plan-id <plan>| Flag | Description | Default |
|---|---|---|
--base-plan-id |
Base plan ID | `` |
--output |
Output format: json (default), table, markdown | json |
--package |
Package name (applicationId) | `` |
--page-size |
Page size | 100 |
--paginate |
Fetch all pages | false |
--pretty |
Pretty-print JSON output | false |
--product-id |
Subscription product ID | `` |
gplay offers get
Section titled “gplay offers get”Get an offer.
gplay offers get --package <name> --product-id <id> --base-plan-id <plan> --offer-id <offer>| Flag | Description | Default |
|---|---|---|
--base-plan-id |
Base plan ID | `` |
--offer-id |
Offer ID | `` |
--output |
Output format: json (default), table, markdown | json |
--package |
Package name (applicationId) | `` |
--pretty |
Pretty-print JSON output | false |
--product-id |
Subscription product ID | `` |
gplay offers create
Section titled “gplay offers create”Create an offer.
gplay offers create --package <name> --product-id <id> --base-plan-id <plan> --offer-id <offer> --json <json>Create a new subscription offer.
JSON format for a free trial: { “phases”: [ { “recurrenceCount”: 1, “duration”: “P7D”, “regionalConfigs”: [ { “regionCode”: “US”, “free”: {} } ] } ], “targeting”: { “acquisitionRule”: { “scope”: { “anySubscriptionInApp”: {} } } }, “offerTags”: [ {“tag”: “trial”} ] }
JSON format for introductory price: { “phases”: [ { “recurrenceCount”: 3, “duration”: “P1M”, “regionalConfigs”: [ { “regionCode”: “US”, “price”: { “currencyCode”: “USD”, “units”: “4”, “nanos”: 990000000 } } ] } ] }
| Flag | Description | Default |
|---|---|---|
--base-plan-id |
Base plan ID | `` |
--json |
SubscriptionOffer JSON (or @file) | `` |
--offer-id |
Offer ID | `` |
--output |
Output format: json (default), table, markdown | json |
--package |
Package name (applicationId) | `` |
--pretty |
Pretty-print JSON output | false |
--product-id |
Subscription product ID | `` |
--regions-version |
Regions version | `` |
gplay offers update
Section titled “gplay offers update”Update an offer.
gplay offers update --package <name> --product-id <id> --base-plan-id <plan> --offer-id <offer> --json <json>Update a subscription offer.
If –update-mask is not provided, it is automatically derived from the JSON keys. Mutable fields: offerTags, otherRegionsConfig, phases, regionalConfigs, targeting.
JSON format: { “phases”: [ { “recurrenceCount”: 1, “duration”: “P14D”, “regionalConfigs”: [ { “regionCode”: “US”, “free”: {} } ] } ] }
Examples: gplay offers update –package com.example –product-id premium –base-plan-id monthly –offer-id trial –json @offer.json gplay offers update –package com.example –product-id premium –base-plan-id monthly –offer-id trial –json ‘{“offerTags”:[{“tag”:“promo”}]}’ –update-mask offerTags
| Flag | Description | Default |
|---|---|---|
--allow-missing |
Create if not exists | false |
--base-plan-id |
Base plan ID | `` |
--json |
SubscriptionOffer JSON (or @file) | `` |
--offer-id |
Offer ID | `` |
--output |
Output format: json (default), table, markdown | json |
--package |
Package name (applicationId) | `` |
--pretty |
Pretty-print JSON output | false |
--product-id |
Subscription product ID | `` |
--regions-version |
Regions version | `` |
--update-mask |
Fields to update (comma-separated) | `` |
gplay offers activate
Section titled “gplay offers activate”Activate an offer.
gplay offers activate --package <name> --product-id <id> --base-plan-id <plan> --offer-id <offer>| Flag | Description | Default |
|---|---|---|
--base-plan-id |
Base plan ID | `` |
--offer-id |
Offer ID | `` |
--output |
Output format: json (default), table, markdown | json |
--package |
Package name (applicationId) | `` |
--pretty |
Pretty-print JSON output | false |
--product-id |
Subscription product ID | `` |
gplay offers deactivate
Section titled “gplay offers deactivate”Deactivate an offer.
gplay offers deactivate --package <name> --product-id <id> --base-plan-id <plan> --offer-id <offer>| Flag | Description | Default |
|---|---|---|
--base-plan-id |
Base plan ID | `` |
--offer-id |
Offer ID | `` |
--output |
Output format: json (default), table, markdown | json |
--package |
Package name (applicationId) | `` |
--pretty |
Pretty-print JSON output | false |
--product-id |
Subscription product ID | `` |
gplay offers delete
Section titled “gplay offers delete”Delete an offer.
gplay offers delete --package <name> --product-id <id> --base-plan-id <plan> --offer-id <offer> --confirm| Flag | Description | Default |
|---|---|---|
--base-plan-id |
Base plan ID | `` |
--confirm |
Confirm deletion | false |
--offer-id |
Offer ID | `` |
--output |
Output format: json (default), table, markdown | json |
--package |
Package name (applicationId) | `` |
--pretty |
Pretty-print JSON output | false |
--product-id |
Subscription product ID | `` |
gplay offers batch-get
Section titled “gplay offers batch-get”Get multiple offers.
gplay offers batch-get --package <name> --product-id <id> --base-plan-id <plan> --offer-ids <id1,id2>| Flag | Description | Default |
|---|---|---|
--base-plan-id |
Base plan ID | `` |
--offer-ids |
Comma-separated list of offer IDs | `` |
--output |
Output format: json (default), table, markdown | json |
--package |
Package name (applicationId) | `` |
--pretty |
Pretty-print JSON output | false |
--product-id |
Subscription product ID | `` |
gplay offers batch-update
Section titled “gplay offers batch-update”Batch update multiple offers.
gplay offers batch-update --package <name> --product-id <id> --base-plan-id <plan> --json <json>Create or update multiple subscription offers in a single request.
JSON format: { “requests”: [ { “subscriptionOffer”: { “packageName”: “com.example.app”, “productId”: “premium”, “basePlanId”: “monthly”, “offerId”: “trial”, “phases”: [ { “recurrenceCount”: 1, “duration”: “P14D”, “regionalConfigs”: [ { “regionCode”: “US”, “free”: {} } ] } ] }, “updateMask”: “phases”, “allowMissing”: true, “regionsVersion”: {“version”: “2025/02”} } ] }
| Flag | Description | Default |
|---|---|---|
--base-plan-id |
Base plan ID | `` |
--json |
Batch update request JSON (or @file) | `` |
--output |
Output format: json (default), table, markdown | json |
--package |
Package name (applicationId) | `` |
--pretty |
Pretty-print JSON output | false |
--product-id |
Subscription product ID | `` |
gplay offers batch-update-states
Section titled “gplay offers batch-update-states”Batch activate/deactivate multiple offers.
gplay offers batch-update-states --package <name> --product-id <id> --base-plan-id <plan> --json <json>Activate or deactivate multiple subscription offers.
JSON format: { “requests”: [ { “activateSubscriptionOfferRequest”: { “packageName”: “com.example.app”, “productId”: “premium”, “basePlanId”: “monthly”, “offerId”: “trial” } }, { “deactivateSubscriptionOfferRequest”: { “packageName”: “com.example.app”, “productId”: “premium”, “basePlanId”: “monthly”, “offerId”: “old_trial” } } ] }
| Flag | Description | Default |
|---|---|---|
--base-plan-id |
Base plan ID | `` |
--json |
Batch update states request JSON (or @file) | `` |
--output |
Output format: json (default), table, markdown | json |
--package |
Package name (applicationId) | `` |
--pretty |
Pretty-print JSON output | false |
--product-id |
Subscription product ID | `` |