REST Resource: monetization.subscriptions.basePlans.offers

Ресурс: ПодпискаПредложение

Разовое временное предложение

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)
    }
  ]
}
Поля
packageName

string

Обязательно. Неизменяемо. Имя пакета приложения, к которому принадлежит родительская подписка.

productId

string

Обязательно. Неизменяемо. Идентификатор родительской подписки, к которой принадлежит это предложение.

basePlanId

string

Обязательно. Неизменяемо. Идентификатор базового плана, расширением которого является это предложение.

offerId

string

Обязательно. Неизменяемо. Уникальный идентификатор этого предложения подписки. Должен быть уникальным в рамках базового плана.

state

enum ( State )

Только вывод. Текущее состояние этого предложения. Можно изменить с помощью действий «Активировать» и «Деактивировать». Примечание: состояние базового плана заменяет это состояние, поэтому активное предложение может быть недоступно, если базовый план неактивен.

phases[]

object ( SubscriptionOfferPhase )

Обязательно. Фазы этого предложения подписки. Должны содержать не менее одной и не более двух записей. Пользователи всегда будут получать все эти фазы в указанном порядке.

targeting

object ( SubscriptionOfferTargeting )

Требования, которым пользователи должны соответствовать для получения этого предложения. Представляют собой требования, которые Play будет оценивать при принятии решения о возврате предложения. Разработчики могут самостоятельно фильтровать эти предложения.

regionalConfigs[]

object ( RegionalSubscriptionOfferConfig )

Обязательно. Конфигурация этого предложения, специфичная для региона. Должна содержать хотя бы одну запись.

otherRegionsConfig

object ( OtherRegionsSubscriptionOfferConfig )

Конфигурация для любых новых локаций Play может быть запущена в будущем.

offerTags[]

object ( OfferTag )

Список из 20 пользовательских тегов, указанных для этого предложения и возвращенных в приложение через библиотеку биллинга.

Состояние

Текущее состояние предложения подписки.

Перечисления
STATE_UNSPECIFIED Значение по умолчанию, никогда не следует использовать.
DRAFT Предложение подписки не доступно и никогда не было доступно пользователям.
ACTIVE Предложение подписки доступно новым и существующим пользователям.
INACTIVE Предложение подписки недоступно для новых пользователей. Существующие пользователи сохраняют доступ.

ПодпискаОферФаза

Отдельная фаза предложения по подписке.

JSON-представление
{
  "recurrenceCount": integer,
  "duration": string,
  "regionalConfigs": [
    {
      object (RegionalSubscriptionOfferPhaseConfig)
    }
  ],
  "otherRegionsConfig": {
    object (OtherRegionsSubscriptionOfferPhaseConfig)
  }
}
Поля
recurrenceCount

integer

Обязательно. Количество повторений этой фазы. Если эта фаза предложения платная, за каждое повторение с пользователя взимается плата за эту фазу предложения.

duration

string

Обязательно. Длительность одного повторения этой фазы. Указывается в формате ISO 8601.

regionalConfigs[]

object ( RegionalSubscriptionOfferPhaseConfig )

Обязательно. Региональная конфигурация этой фазы предложения. Этот список должен содержать ровно одну запись для каждого региона, для которого у предложения подписки есть региональная конфигурация.

otherRegionsConfig

object ( OtherRegionsSubscriptionOfferPhaseConfig )

Информация о ценах для новых локаций, где может запуститься Play.

РегиональнаяПодпискаПредложениеФазаКонфигурация

Конфигурация для одной фазы предложения подписки в одном регионе.

JSON-представление
{
  "regionCode": string,

  // Union field price_override can be only one of the following:
  "price": {
    object (Money)
  },
  "relativeDiscount": number,
  "absoluteDiscount": {
    object (Money)
  },
  "free": {
    object (RegionalSubscriptionOfferPhaseFreePriceOverride)
  }
  // End of list of possible types for union field price_override.
}
Поля
regionCode

string

Обязательно. Неизменяемо. Регион, к которому применяется эта конфигурация.

Поле объединения price_override . Переопределение цены для этой фазы. Обязательно. price_override может быть только одним из следующих:
price

object ( Money )

Абсолютная цена, которую пользователь платит за эту фазу предложения. Цена не должна быть меньше минимальной цены, разрешенной для этого региона.

relativeDiscount

number

Доля цены базового плана, пропорционально распределенная по продолжительности фазы, которую пользователь платит за эту фазу предложения. Например, если цена базового плана для этого региона составляет 12 долларов США за 1 год, то скидка 50% за фазу продолжительностью 3 месяца будет соответствовать цене 1,50 доллара США. Скидка должна быть указана как дробь, строго больше 0 и строго меньше 1. Полученная цена будет округлена до ближайшей расчетной единицы (например, центов для долларов США). Относительная скидка считается недействительной, если цена со скидкой оказывается меньше минимально допустимой цены в этом регионе.

absoluteDiscount

object ( Money )

Абсолютная сумма, вычитаемая из стоимости базового плана, пропорционально распределенная по продолжительности фазы, которую пользователь платит за эту фазу предложения. Например, если стоимость базового плана для этого региона составляет 12 долларов США за период в 1 год, то абсолютная скидка в 1 доллар США за фазу продолжительностью 3 месяца будет соответствовать цене в 2 доллара США. Полученная цена не может быть меньше минимальной цены, разрешенной для этого региона.

free

object ( RegionalSubscriptionOfferPhaseFreePriceOverride )

Установите, чтобы указать, что это предложение можно получить бесплатно.

РегиональнаяПодпискаПредложениеФазаБесплатнаяЦенаПереопределение

Этот тип не имеет полей.

Представляет собой конфигурацию бесплатного переопределения цены для одной фазы предложения подписки.

Другие регионыПодпискаПредложениеФазаКонфигурация

Конфигурация для любых новых локаций Play может быть запущена в рамках одной фазы предложения.

JSON-представление
{

  // Union field price_override can be only one of the following:
  "otherRegionsPrices": {
    object (OtherRegionsSubscriptionOfferPhasePrices)
  },
  "relativeDiscount": number,
  "absoluteDiscounts": {
    object (OtherRegionsSubscriptionOfferPhasePrices)
  },
  "free": {
    object (OtherRegionsSubscriptionOfferPhaseFreePriceOverride)
  }
  // End of list of possible types for union field price_override.
}
Поля
Поле объединения price_override . Переопределение цены для этой фазы. Обязательно. price_override может быть только одним из следующих:
otherRegionsPrices

object ( OtherRegionsSubscriptionOfferPhasePrices )

Абсолютная цена, которую пользователь платит за эту фазу предложения. Цена не должна быть ниже минимальной цены, разрешенной для любых новых локаций, где может быть запущен Play.

relativeDiscount

number

Доля цены базового плана, пропорционально распределенная по продолжительности фазы, которую пользователь платит за эту фазу предложения. Например, если цена базового плана для этого региона составляет 12 долларов США за 1 год, то скидка 50% за фазу продолжительностью 3 месяца будет соответствовать цене 1,50 доллара США. Скидка должна быть указана как дробь, строго больше 0 и строго меньше 1. Полученная цена будет округлена до ближайшей расчетной единицы (например, центов для долларов США). Относительная скидка считается недействительной, если цена со скидкой окажется меньше минимальной цены, разрешенной в любых новых регионах, где может быть запущен Play.

absoluteDiscounts

object ( OtherRegionsSubscriptionOfferPhasePrices )

Абсолютная сумма, вычитаемая из стоимости базового плана, пропорционально распределенная на период действия предложения. Например, если стоимость базового плана для этого региона составляет 12 долларов США в течение 1 года, то абсолютная скидка в 1 доллар США за период продолжительностью 3 месяца будет соответствовать цене 2 доллара США. Полученная цена не может быть ниже минимальной цены, разрешенной для любых новых локаций, где может быть запущен Play.

free

object ( OtherRegionsSubscriptionOfferPhaseFreePriceOverride )

Установите, чтобы указать, что это предложение можно получить бесплатно.

Другие регионыПодпискаПредложениеФазаЦены

Информация о ценах для новых локаций, где может запуститься Play.

JSON-представление
{
  "usdPrice": {
    object (Money)
  },
  "eurPrice": {
    object (Money)
  }
}
Поля
usdPrice

object ( Money )

Обязательно. Цена в долларах США будет использоваться для любых новых локаций, где может быть запущен Play.

eurPrice

object ( Money )

Обязательно. Цена в евро будет использоваться для любых новых локаций, где может быть запущен Play.

Другие регионыПодпискаПредложениеФазаБесплатноЦенаПереопределение

Этот тип не имеет полей.

Представляет собой конфигурацию бесплатного переопределения цен для любых новых локаций, которые Play может запустить в течение одной фазы предложения.

ПодпискаПредложениеТаргетинг

Определяет правило, которому должен соответствовать пользователь, чтобы получить это предложение.

JSON-представление
{

  // Union field rule can be only one of the following:
  "acquisitionRule": {
    object (AcquisitionTargetingRule)
  },
  "upgradeRule": {
    object (UpgradeTargetingRule)
  }
  // End of list of possible types for union field rule.
}
Поля
rule поля «Union». Оставьте пустым, если предложение соответствует требованиям разработчика. rule может быть только одним из следующих:
acquisitionRule

object ( AcquisitionTargetingRule )

Правило таргетинга предложения для привлечения новых пользователей.

upgradeRule

object ( UpgradeTargetingRule )

Предложение правила таргетинга для обновления существующих планов пользователей.

Правило таргетинга на приобретение

Представляет правило таргетинга в форме: Пользователь никогда раньше не имел {scope}.

JSON-представление
{
  "scope": {
    object (TargetingRuleScope)
  }
}
Поля
scope

object ( TargetingRuleScope )

Обязательно. Область действия этого правила. Разрешены только «эта подписка» и «любая подписка в приложении».

TargetingRuleScope

Определяет объем подписок, которые правило таргетинга может сопоставлять с целевыми предложениями для пользователей на основе прошлых или текущих прав.

JSON-представление
{

  // Union field scope can be only one of the following:
  "thisSubscription": {
    object (TargetingRuleScopeThisSubscription)
  },
  "anySubscriptionInApp": {
    object (TargetingRuleScopeAnySubscriptionInApp)
  },
  "specificSubscriptionInApp": string
  // End of list of possible types for union field scope.
}
Поля

scope применения Союза.

scope может быть только одной из следующих:

thisSubscription

object ( TargetingRuleScopeThisSubscription )

Областью действия текущего правила таргетинга является подписка, в которой определено это предложение.

anySubscriptionInApp

object ( TargetingRuleScopeAnySubscriptionInApp )

Областью действия текущего правила таргетинга является любая подписка в родительском приложении.

specificSubscriptionInApp

string

Область действия текущего правила таргетинга — подписка с указанным идентификатором. Подписка должна быть в пределах того же родительского приложения.

TargetingRuleScopeThisSubscription

Этот тип не имеет полей.

Представляет область действия правила таргетинга, соответствующую подпискам, в которых определено это предложение.

TargetingRuleScopeAnySubscriptionInApp

Этот тип не имеет полей.

Представляет область действия правила таргетинга, соответствующую любой подписке в родительском приложении.

UpgradeTargetingRule

Представляет правило таргетинга в форме: У пользователя в настоящее время есть {scope} [с расчетным периодом {billing_period}].

JSON-представление
{
  "oncePerUser": boolean,
  "scope": {
    object (TargetingRuleScope)
  },
  "billingPeriodDuration": string
}
Поля
oncePerUser

boolean

Ограничить это предложение одним пользователем. Если установлено значение true, пользователь больше никогда не сможет воспользоваться этим предложением, если он когда-либо на него подписывался.

scope

object ( TargetingRuleScope )

Обязательно. Область действия этого правила. Разрешены только «эта подписка» и «конкретная подписка в приложении».

billingPeriodDuration

string

Продолжительность конкретного расчетного периода, указанная в формате ISO 8601, на который пользователь должен быть подписан, чтобы подпадать под это правило. Если не указано, учитываются пользователи, подписанные на любой расчетный период.

РегиональнаяПодпискаОферКонфигурация

Конфигурация для предложения подписки в одном регионе.

JSON-представление
{
  "regionCode": string,
  "newSubscriberAvailability": boolean
}
Поля
regionCode

string

Обязательно. Неизменяемо. Код региона, к которому относится эта конфигурация, согласно ISO 3166-2, например, «США».

newSubscriberAvailability

boolean

Доступно ли предложение подписки в указанном регионе для новых подписчиков. Подписка существующих подписчиков не будет отменена, если это значение равно false. Если значение не указано, по умолчанию будет установлено значение false.

ДругиеРегионыПодпискаОферКонфигурация

Конфигурация для любых новых локаций, в которых Play может быть запущен, указана в предложении по подписке.

JSON-представление
{
  "otherRegionsNewSubscriberAvailability": boolean
}
Поля
otherRegionsNewSubscriberAvailability

boolean

Будет ли предложение подписки запущено в новых локациях Play в будущем? Если не указано иное, по умолчанию будет установлено значение «false».

Методы

activate

Активирует предложение подписки.

batchGet

Читает одно или несколько предложений по подписке.

batchUpdate

Обновляет пакет предложений по подписке.

batchUpdateStates

Обновляет пакет состояний предложения подписки.

create

Создает новое предложение подписки.

deactivate

Деактивирует предложение подписки.

delete

Удаляет предложение подписки.

get

Читает одно предложение

list

Перечисляет все предложения в рамках данной подписки.

patch

Обновляет существующее предложение подписки.

Коды ошибок

Операции этого ресурса возвращают следующие коды ошибок HTTP:

Код ошибки Причина Разрешение
5xx Общая ошибка на сервере Google Play. Повторите запрос.

Если проблема не устранена, обратитесь к менеджеру своего аккаунта Google Play или отправьте запрос в службу поддержки. Рекомендуем проверить панель состояния Play на наличие известных сбоев.

409 Ошибка параллельного обновления.

Была попытка обновить обновляемый объект. Например, покупка подтверждается вызовом метода acknowledgePurchase() библиотеки Play Billing Library и одновременным вызовом метода purchases.products.acknowledge API Play Developer.

Повторите запрос.