REST Resource: monetization.onetimeproducts.purchaseOptions.offers

Recurso: OneTimeProductOffer

Es una sola oferta para un producto único.

Representación JSON
{
  "packageName": string,
  "productId": string,
  "purchaseOptionId": string,
  "offerId": string,
  "state": enum (State),
  "regionalPricingAndAvailabilityConfigs": [
    {
      object (RegionalPricingAndAvailabilityConfig)
    }
  ],
  "offerTags": [
    {
      object (OfferTag)
    }
  ],
  "regionsVersion": {
    object (RegionsVersion)
  },

  // Union field offer_type can be only one of the following:
  "preOrderOffer": {
    object (OneTimeProductPreOrderOffer)
  },
  "discountedOffer": {
    object (OneTimeProductDiscountedOffer)
  }
  // End of list of possible types for union field offer_type.
}
Campos
packageName

string

Obligatorio. Inmutable. Es el nombre del paquete de la app a la que pertenece el producto principal.

productId

string

Obligatorio. Inmutable. ID del producto principal al que pertenece esta oferta.

purchaseOptionId

string

Obligatorio. Inmutable. ID de la opción de compra para la cual esta oferta es una extensión.

offerId

string

Obligatorio. Inmutable. Es el ID de esta oferta de producto. Debe ser único dentro de la opción de compra. Debe comenzar con un número o una letra minúscula, y solo puede contener letras minúsculas (a-z), números (0-9) y guiones (-). La longitud máxima es de 63 caracteres.

state

enum (State)

Solo salida. Es el estado actual de esta oferta. Este campo no se puede modificar actualizando el recurso. En su lugar, usa los endpoints específicos.

regionalPricingAndAvailabilityConfigs[]

object (RegionalPricingAndAvailabilityConfig)

Es un conjunto de precios regionales y de información de disponibilidad para esta oferta. No debe tener entradas duplicadas con el mismo valor de regionCode.

offerTags[]

object (OfferTag)

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

regionsVersion

object (RegionsVersion)

Solo salida. Es la versión de la configuración de regiones que se usó para generar la oferta de producto único.

Campo de unión offer_type. Es el tipo de esta oferta. Se debe establecer exactamente uno. Las direcciones (offer_type) solo pueden ser una de las siguientes opciones:
preOrderOffer

object (OneTimeProductPreOrderOffer)

Es una oferta de pedido por adelantado.

discountedOffer

object (OneTimeProductDiscountedOffer)

Oferta con descuento.

Estado

Es el estado actual de la oferta.

Enums
STATE_UNSPECIFIED Es un valor predeterminado que no se debe usar nunca.
DRAFT La oferta no está disponible para los usuarios y nunca lo estuvo.
ACTIVE La oferta está disponible para los usuarios siempre y cuando se cumplan las condiciones.
CANCELLED Este estado es específico para pedidos por adelantado. Se canceló la oferta y no está disponible para los usuarios. Se cancelaron todos los pedidos pendientes relacionados con esta oferta.
INACTIVE Este estado es específico para las ofertas con descuento. La oferta ya no está disponible para los usuarios.

OneTimeProductPreOrderOffer

Es la configuración específica para las ofertas de pedidos por adelantado.

Representación JSON
{
  "startTime": string,
  "endTime": string,
  "releaseTime": string,
  "priceChangeBehavior": enum (PreOrderPriceChangeBehavior)
}
Campos
startTime

string (Timestamp format)

Obligatorio. Fecha y hora en que empezará a estar disponible el pedido por adelantado.

Usa el formato RFC 3339, en el que el resultado generado siempre estará normalizada a Z y usa 0, 3, 6 o 9 dígitos fraccionarios. También se aceptan otras compensaciones que no sean “Z”. Ejemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

endTime

string (Timestamp format)

Obligatorio. Fecha y hora en que el pedido por adelantado dejará de estar disponible.

Usa el formato RFC 3339, en el que el resultado generado siempre estará normalizada a Z y usa 0, 3, 6 o 9 dígitos fraccionarios. También se aceptan otras compensaciones que no sean “Z”. Ejemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

releaseTime

string (Timestamp format)

Obligatorio. Fecha y hora en que se lanzará el producto asociado con el pedido por adelantado y se completarán los pedidos por adelantado.

Usa el formato RFC 3339, en el que el resultado generado siempre estará normalizada a Z y usa 0, 3, 6 o 9 dígitos fraccionarios. También se aceptan otras compensaciones que no sean “Z”. Ejemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

priceChangeBehavior

enum (PreOrderPriceChangeBehavior)

Obligatorio. Inmutable. Especifica cómo afectan los cambios de precio a los pedidos por adelantado preexistentes.

PreOrderPriceChangeBehavior

Especifica cómo afectan los cambios de precio a los pedidos por adelantado preexistentes.

Enums
PRE_ORDER_PRICE_CHANGE_BEHAVIOR_UNSPECIFIED Comportamiento de cambio de precio sin especificar. No se debe usar.
PRE_ORDER_PRICE_CHANGE_BEHAVIOR_TWO_POINT_LOWEST Se cobra al comprador el mínimo entre el precio inicial en el momento del pedido por adelantado y el precio de la oferta final en la fecha de lanzamiento.
PRE_ORDER_PRICE_CHANGE_BEHAVIOR_NEW_ORDERS_ONLY El comprador obtiene el mismo precio que el del pedido por adelantado, independientemente de los cambios de precio que puedan haber ocurrido después del pedido por adelantado.

OneTimeProductDiscountedOffer

Es la configuración específica para las ofertas con descuento.

Representación JSON
{
  "startTime": string,
  "endTime": string,
  "redemptionLimit": string
}
Campos
startTime

string (Timestamp format)

Fecha y hora en que empezará a estar disponible la oferta.

Usa el formato RFC 3339, en el que el resultado generado siempre estará normalizada a Z y usa 0, 3, 6 o 9 dígitos fraccionarios. También se aceptan otras compensaciones que no sean “Z”. Ejemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

endTime

string (Timestamp format)

Fecha y hora en que dejará de estar disponible la oferta.

Usa el formato RFC 3339, en el que el resultado generado siempre estará normalizada a Z y usa 0, 3, 6 o 9 dígitos fraccionarios. También se aceptan otras compensaciones que no sean “Z”. Ejemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

redemptionLimit

string (int64 format)

Opcional. Es la cantidad de veces que se puede canjear esta oferta. Si no se configura o se establece en 0, se permiten canjes ilimitados de la oferta. De lo contrario, debe ser un número entre 1 y 50, inclusive.

RegionalPricingAndAvailabilityConfig

Es la configuración regional de precios y disponibilidad para una oferta de producto único.

Representación JSON
{
  "regionCode": string,
  "availability": enum (Availability),

  // Union field price_override can be only one of the following:
  "noOverride": {
    object (OneTimeProductOfferNoPriceOverrideOptions)
  },
  "relativeDiscount": number,
  "absoluteDiscount": {
    object (Money)
  }
  // End of list of possible types for union field price_override.
}
Campos
regionCode

string

Obligatorio. Código de región al que se aplica esta configuración, según la norma ISO 3166-2, p.ej., "US".

availability

enum (Availability)

Obligatorio. Es la disponibilidad para esta región.

Campo de unión price_override. Es la anulación de precio de esta oferta. Se debe establecer exactamente uno. Las direcciones (price_override) solo pueden ser una de las siguientes opciones:
noOverride

object (OneTimeProductOfferNoPriceOverrideOptions)

Se usará el precio definido en la opción de compra para esta región.

relativeDiscount

number

Es la fracción del precio de la opción de compra que el usuario paga por esta oferta. Por ejemplo, si el precio de la opción de compra para esta región es de USD 12, un 50% de descuento correspondería a un precio de USD 6. El descuento se debe especificar como una fracción estrictamente mayor que 0 y menor que 1. 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 ser menor que el precio mínimo permitido para esta región.

absoluteDiscount

object (Money)

Es el valor absoluto del descuento que se resta del precio de la opción de compra.

Debe estar entre 0 y el precio de la opción de compra.

OneTimeProductOfferNoPriceOverrideOptions

Este tipo no tiene campos.

Opciones de ofertas de productos únicos sin anulación de precios regionales.

Disponibilidad

Es la disponibilidad de la oferta.

Enums
AVAILABILITY_UNSPECIFIED Disponibilidad sin especificar. No se debe usar.
AVAILABLE La oferta está disponible para los usuarios.
NO_LONGER_AVAILABLE La oferta ya no está disponible para los usuarios. Este valor solo se puede usar si la disponibilidad se configuró anteriormente como AVAILABLE.

Métodos

activate

Activa una oferta de producto único.

batchDelete

Borra una o más ofertas de productos únicos.

batchGet

Lee una o más ofertas de productos únicos.

batchUpdate

Crea o actualiza una o más ofertas de productos únicos.

batchUpdateStates

Actualiza un lote de estados de ofertas de productos únicos.

cancel

Cancela una oferta de producto único.

deactivate

Desactiva una oferta de producto único.

list

Enumera todas las ofertas de una opción de compra, app o producto determinados.

Códigos de error

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

Código de error Motivo Solución
5xx Error genérico en el servidor de Google Play. Vuelve a intentar enviar tu solicitud.

Si el problema persiste, comunícate con tu administrador de cuentas de Google Play o envía una solicitud de asistencia. Considera consultar el Panel de estado de Play para ver si hay interrupciones conocidas.

409 Se produjo un error de actualización de simultaneidad.

Se intentó actualizar un objeto que ya se estaba actualizando. Por ejemplo, una compra se confirma llamando al método acknowledgePurchase() de la Biblioteca de Facturación Play y llamando al purchases.products.acknowledge de la API de Play Developer al mismo tiempo.

Vuelve a intentar enviar tu solicitud.