REST Resource: monetization.subscriptions.basePlans.offers

Recurso: SubscriptionOffer

Es una oferta temporal única.

Representación JSON
{
  "packageName": string,
  "productId": string,
  "basePlanId": string,
  "offerId": string,
  "state": enum (State),
  "phases": [
    {
      object (SubscriptionOfferPhase)
    }
  ],
  "targeting": {
    object (SubscriptionOfferTargeting)
  },
  "regionalConfigs": [
    {
      object (RegionalSubscriptionOfferConfig)
    }
  ],
  "otherRegionsConfig": {
    object (OtherRegionsSubscriptionOfferConfig)
  },
  "offerTags": [
    {
      object (OfferTag)
    }
  ]
}
Campos
packageName

string

Obligatorio. Inmutable. Es el nombre de paquete de la app a la que pertenece la suscripción principal.

productId

string

Obligatorio. Inmutable. Es el ID de la suscripción principal a la que pertenece esta oferta.

basePlanId

string

Obligatorio. Inmutable. Es el ID del plan básico del que esta oferta es una extensión.

offerId

string

Obligatorio. Inmutable. Es el ID único de esta oferta de suscripción. Debe ser único dentro del plan básico.

state

enum (State)

Solo salida. Es el estado actual de esta oferta. Se puede cambiar con las acciones Activar y Desactivar. Nota: El estado del plan básico sustituye a este estado, por lo que es posible que no haya una oferta activa disponible si el plan básico no está activo.

phases[]

object (SubscriptionOfferPhase)

Obligatorio. Son las fases de esta oferta de suscripción. Debe contener al menos una entrada y, como máximo, dos. Los usuarios siempre recibirán todas estas fases en el orden especificado.

targeting

object (SubscriptionOfferTargeting)

Son los requisitos que deben cumplir los usuarios para acceder a esta oferta. Play evaluará estos requisitos para decidir si se debe devolver una oferta. Los desarrolladores pueden filtrar aún más estas ofertas por su cuenta.

regionalConfigs[]

object (RegionalSubscriptionOfferConfig)

Obligatorio. Es la configuración específica por región de esta oferta. Debe contener al menos una entrada.

otherRegionsConfig

object (OtherRegionsSubscriptionOfferConfig)

Es la configuración para las ubicaciones nuevas en las que Play puede hacer un lanzamiento en el futuro.

offerTags[]

object (OfferTag)

Es una lista de hasta 20 etiquetas personalizadas especificadas para esta oferta, que se devuelven a la app a través de la Biblioteca de Facturación.

Estado

Es el estado actual de la oferta de suscripción.

Enums
STATE_UNSPECIFIED Es el valor predeterminado que no se debe usar nunca.
DRAFT La oferta de suscripción no está disponible para los usuarios y nunca lo estuvo.
ACTIVE La oferta de suscripción está disponible para los usuarios nuevos y existentes.
INACTIVE La oferta de suscripción no está disponible para los usuarios nuevos. Los usuarios existentes conservan el acceso.

SubscriptionOfferPhase

Es una sola fase de una oferta de suscripción.

Representación JSON
{
  "recurrenceCount": integer,
  "duration": string,
  "regionalConfigs": [
    {
      object (RegionalSubscriptionOfferPhaseConfig)
    }
  ],
  "otherRegionsConfig": {
    object (OtherRegionsSubscriptionOfferPhaseConfig)
  }
}
Campos
recurrenceCount

integer

Obligatorio. Es la cantidad de veces que se repite esta fase. Si no es gratuita, se le cobra al usuario el precio correspondiente en cada recurrencia.

duration

string

Obligatorio. Es la duración de una sola recurrencia de esta fase. Se especifica en formato ISO 8601.

regionalConfigs[]

object (RegionalSubscriptionOfferPhaseConfig)

Obligatorio. Es la configuración específica por región de esta fase de la oferta. Esta lista debe contener exactamente una entrada para cada región en la que la oferta de suscripción tiene una configuración regional.

otherRegionsConfig

object (OtherRegionsSubscriptionOfferPhaseConfig)

Es la información de precios para las ubicaciones nuevas en las que Play puede hacer un lanzamiento.

RegionalSubscriptionOfferPhaseConfig

Es la configuración de una sola fase de una oferta de suscripción en una única región.

Representación JSON
{
  "regionCode": string,

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "price": {
    object (Money)
  },
  "relativeDiscount": number,
  "absoluteDiscount": {
    object (Money)
  },
  "free": {
    object (RegionalSubscriptionOfferPhaseFreePriceOverride)
  }
  // End of mutually exclusive fields.
}
Campos
regionCode

string

Obligatorio. Inmutable. Es la región a la que se aplica esta configuración.

Es la anulación de precio de esta fase. Obligatorio. La siguiente es una lista de campos mutuamente excluyentes. Como máximo, se establecerá uno de los campos en una respuesta:
price

object (Money)

Es el precio absoluto que paga el usuario por esta fase de la oferta. No debe ser inferior al precio mínimo permitido para esta región.

relativeDiscount

number

Es el porcentaje de descuento que se resta del precio del plan básico prorrateado en función de la duración de la fase, especificado como una fracción estrictamente mayor que 0 y estrictamente menor que 1. Por ejemplo, un valor de 0.8 representa un descuento del 80%, lo que significa que, si el precio prorrateado del plan básico es de USD 100, el precio de la oferta será de USD 20. El precio final se redondeará a la unidad facturable más cercana (p.ej., centavos en el caso del dólar estadounidense). El descuento relativo se considera no válido si el precio con descuento resulta menor que el precio mínimo permitido para esta región.

absoluteDiscount

object (Money)

Es el importe absoluto de dinero restado del precio del plan básico prorrateado en función de la duración de la fase. Por ejemplo, si el precio del plan básico para esta región es USD 12 por un período de 1 año, un descuento absoluto de USD 1 para una fase de 3 meses de duración corresponderá a un precio de USD 2. El precio final no debe ser inferior al precio mínimo permitido para esta región.

free

object (RegionalSubscriptionOfferPhaseFreePriceOverride)

Se establece para especificar que esta oferta es gratuita.

Fin de los campos mutuamente excluyentes.

RegionalSubscriptionOfferPhaseFreePriceOverride

Este tipo no tiene campos.

Representa la configuración de la anulación del precio gratuito para una fase específica de una oferta de suscripción.

OtherRegionsSubscriptionOfferPhaseConfig

Es la configuración para las ubicaciones nuevas en las que Play puede hacer un lanzamiento para una fase específica de la oferta.

Representación JSON
{

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "otherRegionsPrices": {
    object (OtherRegionsSubscriptionOfferPhasePrices)
  },
  "relativeDiscount": number,
  "absoluteDiscounts": {
    object (OtherRegionsSubscriptionOfferPhasePrices)
  },
  "free": {
    object (OtherRegionsSubscriptionOfferPhaseFreePriceOverride)
  }
  // End of mutually exclusive fields.
}
Campos
Es la anulación de precio de esta fase. Obligatorio. La siguiente es una lista de campos mutuamente excluyentes. Como máximo, se establecerá uno de los campos en una respuesta:
otherRegionsPrices

object (OtherRegionsSubscriptionOfferPhasePrices)

Es el precio absoluto que paga el usuario por esta fase de la oferta. El precio no debe ser inferior al precio mínimo permitido para cualquier ubicación nueva en la que Play puede hacer un lanzamiento.

relativeDiscount

number

Es el porcentaje de descuento que se resta del precio del plan básico prorrateado en función de la duración de la fase, especificado como una fracción estrictamente mayor que 0 y estrictamente menor que 1. Por ejemplo, un valor de 0.8 representa un descuento del 80%, lo que significa que, si el precio prorrateado del plan básico es de USD 100, el precio de la oferta será de USD 20. El precio final se redondeará a la unidad facturable más cercana (p.ej., centavos en el caso del dólar estadounidense). El descuento relativo se considera no válido si el precio con descuento resulta menor que el precio mínimo permitido para cualquier ubicación nueva en la que Play puede hacer un lanzamiento.

absoluteDiscounts

object (OtherRegionsSubscriptionOfferPhasePrices)

Es el importe absoluto de dinero restado del precio del plan básico prorrateado en función de la duración de la fase. Por ejemplo, si el precio del plan básico para esta región es USD 12 por un período de 1 año, un descuento absoluto de USD 1 para una fase de 3 meses de duración corresponderá a un precio de USD 2. El precio final no debe ser inferior al precio mínimo permitido para cualquier ubicación nueva en la que Play puede hacer un lanzamiento.

free

object (OtherRegionsSubscriptionOfferPhaseFreePriceOverride)

Se establece para especificar que esta oferta es gratuita.

Fin de los campos mutuamente excluyentes.

OtherRegionsSubscriptionOfferPhasePrices

Es la información de precios para las ubicaciones nuevas en las que Play puede hacer un lanzamiento.

Representación JSON
{
  "usdPrice": {
    object (Money)
  },
  "eurPrice": {
    object (Money)
  }
}
Campos
usdPrice

object (Money)

Obligatorio. Es el precio en USD que se usará para las ubicaciones nuevas en las que Play puede lanzar la oferta.

eurPrice

object (Money)

Obligatorio. Es el precio en EUR que se usará para las ubicaciones nuevas en las que Play puede lanzar la oferta.

OtherRegionsSubscriptionOfferPhaseFreePriceOverride

Este tipo no tiene campos.

Representa la configuración de anulación de precio gratuito para las ubicaciones nuevas en las que Play puede hacer un lanzamiento para una fase específica de la oferta.

SubscriptionOfferTargeting

Define la regla que debe cumplir un usuario para recibir esta oferta.

Representación JSON
{

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "acquisitionRule": {
    object (AcquisitionTargetingRule)
  },
  "upgradeRule": {
    object (UpgradeTargetingRule)
  }
  // End of mutually exclusive fields.
}
Campos
Se debe dejar en blanco si el desarrollador es quien determina los requisitos para acceder a esta oferta. La siguiente es una lista de campos mutuamente excluyentes. Como máximo, se establecerá uno de los campos en una respuesta:
acquisitionRule

object (AcquisitionTargetingRule)

Es la regla de segmentación de la oferta para la adquisición de usuarios nuevos.

upgradeRule

object (UpgradeTargetingRule)

Es la regla de segmentación de la oferta para actualizar los planes existentes de los usuarios.

Fin de los campos mutuamente excluyentes.

AcquisitionTargetingRule

Representa una regla de segmentación con el siguiente formato: El usuario nunca antes tuvo {scope}.

Representación JSON
{
  "scope": {
    object (TargetingRuleScope)
  }
}
Campos
scope

object (TargetingRuleScope)

Obligatorio. Es el alcance de suscripciones que se considera en esta regla. Solo permite "this subscription" y "any subscription in app".

TargetingRuleScope

Define el alcance de suscripciones que puede tener una regla de segmentación para orientar las ofertas a los usuarios según derechos anteriores o actuales.

Representación JSON
{

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "thisSubscription": {
    object (TargetingRuleScopeThisSubscription)
  },
  "anySubscriptionInApp": {
    object (TargetingRuleScopeAnySubscriptionInApp)
  },
  "specificSubscriptionInApp": string
  // End of mutually exclusive fields.
}
Campos
La siguiente es una lista de campos mutuamente excluyentes. Como máximo, se establecerá uno de los campos en una respuesta:
thisSubscription

object (TargetingRuleScopeThisSubscription)

El alcance de la regla de segmentación actual es la suscripción en la que se define esta oferta.

anySubscriptionInApp

object (TargetingRuleScopeAnySubscriptionInApp)

El alcance de la regla de segmentación actual es cualquier suscripción de la app principal.

specificSubscriptionInApp

string

El alcance de la regla de segmentación actual es la suscripción que tiene el ID de suscripción especificado. Debe ser una suscripción dentro de la misma app principal.

Fin de los campos mutuamente excluyentes.

TargetingRuleScopeThisSubscription

Este tipo no tiene campos.

Representa el alcance de la regla de segmentación correspondiente a las suscripciones en las que se define esta oferta.

TargetingRuleScopeAnySubscriptionInApp

Este tipo no tiene campos.

Representa el alcance de la regla de segmentación correspondiente a cualquier suscripción de la app principal.

UpgradeTargetingRule

Representa una regla de segmentación con el siguiente formato: El usuario tiene actualmente {scope} [con el período de facturación {billingPeriod}].

Representación JSON
{
  "oncePerUser": boolean,
  "scope": {
    object (TargetingRuleScope)
  },
  "billingPeriodDuration": string
}
Campos
oncePerUser

boolean

Limita esta oferta a una sola vez por usuario. Si se establece como verdadero, los usuarios no volverán a reunir los requisitos para acceder a esta oferta si alguna vez se suscribieron a ella.

scope

object (TargetingRuleScope)

Obligatorio. Es el alcance de suscripciones que se considera en esta regla. Solo permite "this subscription" y "specific subscription in app".

billingPeriodDuration

string

Es la duración específica del período de facturación, en formato ISO 8601, a la que debe estar suscrito un usuario para cumplir con los requisitos de esta regla. Si no se especifica, se contemplarán los usuarios suscritos a cualquier período de facturación.

RegionalSubscriptionOfferConfig

Es la configuración de una oferta de suscripción en una región específica.

Representación JSON
{
  "regionCode": string,
  "newSubscriberAvailability": boolean
}
Campos
regionCode

string

Obligatorio. Inmutable. Es el código de región al que se aplica esta configuración, según lo define la norma ISO 3166-2, p.ej., "US".

newSubscriberAvailability

boolean

Indica si la oferta de suscripción de la región especificada está disponible para suscriptores nuevos. Si este valor se establece como falso, no se cancelarán las suscripciones existentes. Si no se especifica, el valor predeterminado será falso.

OtherRegionsSubscriptionOfferConfig

Es la configuración especificada en una oferta de suscripción para cualquier ubicación nueva en la que Play puede hacer un lanzamiento.

Representación JSON
{
  "otherRegionsNewSubscriberAvailability": boolean
}
Campos
otherRegionsNewSubscriberAvailability

boolean

Indica si la oferta de suscripción estará disponible en las ubicaciones nuevas en las que Play puede hacer un lanzamiento en el futuro. Si no se especifica, el valor predeterminado será falso.

Métodos

activate

Activa una oferta de suscripción.

batchGet

Lee una oferta de suscripción o más.

batchUpdate

Actualiza un lote de ofertas de suscripción.

batchUpdateStates

Actualiza un lote de estados de ofertas de suscripción.

create

Crea una nueva oferta de suscripción.

deactivate

Desactiva una oferta de suscripción.

delete

Borra una oferta de suscripción.

get

Lee una sola oferta.

list

Enumera todas las ofertas de una suscripción determinada.

patch

Actualiza una oferta de suscripción existente.

Códigos de error

Las operaciones de este recurso devuelven los siguientes códigos de error de HTTP:

Código de error Motivo Descripción Solución