REST Resource: monetization.subscriptions.basePlans.offers

资源:SubscriptionOffer

单个临时优惠

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

必需。不可变。相应优惠所属父级订阅的 ID。

basePlanId

string

必需。不可变。基础方案的 ID(相应优惠延伸自该基础方案)。

offerId

string

必需。不可变。相应订阅优惠的唯一 ID。在基础方案中必须具有唯一性。

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 新用户无法享受相应订阅优惠。现有用户可继续享受相应订阅优惠。

SubscriptionOfferPhase

订阅优惠的单个阶段。

JSON 表示法
{
  "recurrenceCount": integer,
  "duration": string,
  "regionalConfigs": [
    {
      object (RegionalSubscriptionOfferPhaseConfig)
    }
  ],
  "otherRegionsConfig": {
    object (OtherRegionsSubscriptionOfferPhaseConfig)
  }
}
字段
recurrenceCount

integer

必需。相应阶段重复的次数。如果相应优惠阶段不是免费阶段,则每次重复都会向用户收取该优惠阶段的费用。

duration

string

必需。相应阶段单次重复的时长。采用 ISO 8601 格式指定。

regionalConfigs[]

object (RegionalSubscriptionOfferPhaseConfig)

必需。相应优惠阶段在特定地区的专用配置。对于订阅优惠具有地区专用配置的每个地区,此列表必须仅包含一个条目。

otherRegionsConfig

object (OtherRegionsSubscriptionOfferPhaseConfig)

Play 未来可能新增的任何地区所对应的定价信息。

RegionalSubscriptionOfferPhaseConfig

订阅优惠在单个地区的单个阶段所对应的配置。

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

相应优惠阶段向用户收取的价格在基于阶段时长按比例折算的基础方案价格中的占比(以小数表示)。例如,如果基础方案在相应地区 1 年期的价格为 12 美元,那么对于时长为 3 个月的阶段而言,50% 的折扣对应 1.50 美元的价格。必须将折扣指定为一个严格大于 0 且严格小于 1 的小数。最终价格将四舍五入到最接近的可结算单位(例如美元将舍入到美分)。如果折扣价格最终低于相应地区允许的最低价格,则相对折扣会被视为无效。

absoluteDiscount

object (Money)

从基础方案价格中减去的根据相应优惠阶段时长按比例计算的绝对金额。例如,如果基础方案在相应地区 1 年期的价格为 12 美元,那么对于时长为 3 个月的阶段而言,1 美元的绝对折扣对应 2 美元的价格。最终价格不得低于相应地区允许的最低价格。

free

object (RegionalSubscriptionOfferPhaseFreePriceOverride)

若要指定相应优惠可免费获取,请设置此字段。

RegionalSubscriptionOfferPhaseFreePriceOverride

此类型没有字段。

表示订阅优惠的单个阶段的免费价格替换配置

OtherRegionsSubscriptionOfferPhaseConfig

对于单个优惠阶段,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

相应优惠阶段向用户收取的价格在基于阶段时长按比例折算的基础方案价格中的占比(以小数表示)。例如,如果基础方案在相应地区 1 年期的价格为 12 美元,那么对于时长为 3 个月的阶段而言,50% 的折扣对应 1.50 美元的价格。必须将折扣指定为一个严格大于 0 且严格小于 1 的小数。最终价格将四舍五入到最接近的可结算单位(例如美元将舍入到美分)。如果折扣价格最终低于 Play 未来可能新增的任何地区允许的最低价格,则相对折扣会被视为无效。

absoluteDiscounts

object (OtherRegionsSubscriptionOfferPhasePrices)

从基础方案价格中减去的根据相应优惠阶段时长按比例计算的绝对金额。例如,如果基础方案在相应地区 1 年期的价格为 12 美元,那么对于时长为 3 个月的阶段而言,1 美元的绝对折扣对应 2 美元的价格。最终价格不得低于 Play 未来可能新增的任何地区允许的最低价格。

free

object (OtherRegionsSubscriptionOfferPhaseFreePriceOverride)

若要指定相应优惠可免费获取,请设置此字段。

OtherRegionsSubscriptionOfferPhasePrices

Play 未来可能新增的任何地区所对应的定价信息。

JSON 表示法
{
  "usdPrice": {
    object (Money)
  },
  "eurPrice": {
    object (Money)
  }
}
字段
usdPrice

object (Money)

必需。要在 Play 未来可能新增的任何地区使用的价格(以美元为单位)。

eurPrice

object (Money)

必需。要在 Play 未来可能新增的任何地区使用的价格(以欧元为单位)。

OtherRegionsSubscriptionOfferPhaseFreePriceOverride

此类型没有字段。

表示对于单个优惠阶段,Play 未来可能新增的任何地区所对应的免费价格替换配置。

SubscriptionOfferTargeting

定义用户为获得相应优惠需要满足的规则。

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。若要使用由开发者决定的优惠资格条件,请将此字段留空。rule 只能是下列其中一项:
acquisitionRule

object (AcquisitionTargetingRule)

想要获取新用户时适用的优惠定位规则。

upgradeRule

object (UpgradeTargetingRule)

想要吸引用户升级现有方案时适用的优惠定位规则。

AcquisitionTargetingRule

表示如下形式的定位规则:用户以前从未订阅过“{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

当前定位规则的范围是具有特定订阅 ID 的订阅。必须是同一父级应用中的订阅。

TargetingRuleScopeThisSubscription

此类型没有字段。

表示与定义了相应优惠的订阅对应的定位规则范围。

TargetingRuleScopeAnySubscriptionInApp

此类型没有字段。

表示与父级应用中的任何订阅对应的定位规则范围。

UpgradeTargetingRule

表示如下形式的定位规则:用户当前订阅了“{scope}”[结算周期为 {billing_period}]。

JSON 表示法
{
  "oncePerUser": boolean,
  "scope": {
    object (TargetingRuleScope)
  },
  "billingPeriodDuration": string
}
字段
oncePerUser

boolean

将相应优惠限制为每位用户只能享受一次。如果设置为 true,则曾经享受过相应优惠的用户将永远无法再次获得相应优惠。

scope

object (TargetingRuleScope)

必需。相应规则适用的订阅范围。仅允许“此订阅”和“应用中的特定订阅”。

billingPeriodDuration

string

为符合相应规则,用户当前必须订阅的特定结算周期时长(采用 ISO 8601 格式指定)。如果未指定,则系统会匹配订阅任何结算周期的用户。

RegionalSubscriptionOfferConfig

订阅优惠在单个地区对应的配置。

JSON 表示法
{
  "regionCode": string,
  "newSubscriberAvailability": boolean
}
字段
regionCode

string

必需。不可变。相应配置适用地区的地区代码(按照 ISO 3166-2 的定义),例如“US”。

newSubscriberAvailability

boolean

用于表示指定地区的订阅优惠是否向新订阅者提供。如果此值设置为 false,系统不会取消现有订阅者的订阅。如果未指定,则默认为 false。

OtherRegionsSubscriptionOfferConfig

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 并发更新错误。

尝试更新正在更新的对象。例如,通过同时调用 Play 结算库的 acknowledgePurchase() 方法和 Play Developer API 的 purchases.products.acknowledge 来确认购买交易。

请重试您的请求。