- 资源:PlanStatus
- JSON 表示法
- 规划
- PlanCategory
- PlanModule
- ByteQuota
- TimeQuota
- BalanceLevel
- PlanModuleTrafficCategory
- OverUsagePolicy
- PlanState
- RefreshPeriod
- AccountInfo
- 货币
- AccountBalanceStatus
- UiCompatibility
- NotificationType
- PlanInfoPerClient
- YouTube
- RateLimitedStreaming
- AndroidSystemInfo
- CellularInfo
- ConnectionType
- 按流量计费性
- CpidState
- 方法
资源:PlanStatus
PlanStatus 包含用户购买的所有顶级移动服务套餐的详细信息。
JSON 表示法 | |
---|---|
{ "name": string, "plans": [ { object ( |
字段 | |
---|---|
name |
PlanStatus 的资源名称,格式如下: |
plans[] |
相应用户拥有的方案的列表。 |
languageCode |
必需。BCP-47 语言代码,例如“en-US”或“sr-Latn”。如需了解详情,请参阅 http://www.unicode.org/reports/tr35/#Unicode_locale_identifier。 |
expireTime |
必需。共享方案组信息过时的时间。在此时间之后,系统将不会再向应用提供 PlanStatus。失效时间必须是未来的时间。 时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例: |
updateTime |
必需。数据流量方案代理 (DPA) 从后端系统提取方案状态信息的时间。可用于确定方案状态信息的最新程度。更新时间必须是过去的某个时间,但不能超过 30 天。 时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例: |
title |
用户与运营商签订的合同的标题。此名称将显示在界面标题中。 |
subscriberId |
运营商系统中的唯一稳定标识符,用于标识用户。 |
accountInfo |
预付费用户必须提供此信息。有关用户账号余额的信息。 |
uiCompatibility |
确定是否可以在界面中向用户显示 PlanStatus。如果设置为 UI_INCOMPATIBLE,PlanStatus 可用于向用户发送通知,但不会用于向用户显示方案信息。 |
notifications[] |
包含 GTAF 向用户发送的通知类型列表。如果调用方填充了此字段,GTAF 会忽略该字段。 |
planInfoPerClient |
与特定 Google 客户端相关的数据流量方案信息。 |
cpidState |
与相应方案状态相关联的 CPID 的状态。 |
方案
用户移动方案的详细信息,即订阅者购买的顶级移动服务套餐。方案可以很简单,例如“10 GB 移动流量,有效期 30 天”,也可以定义为一组组件(我们称之为方案模块)。例如,ACME 方案 199(描述为“2GB 数据流量、无限量 WhatsApp + 无限量微信,以及 1GB Spotify”)包含三个方案模块。
JSON 表示法 | |
---|---|
{ "planName": string, "planId": string, "planCategory": enum ( |
字段 | |
---|---|
planName |
用户移动套餐的名称。 |
planId |
必需。方案标识符,用于在优惠等期间引用相应方案。 |
planCategory |
预付费方案或后付费方案。 |
expirationTime |
必需。相应方案的到期时间。对于大多数方案,此值应等于所有方案模块特定到期时间的最大值。对于定期刷新模块配额的方案,此值应为方案的总体到期时间,即方案模块停止刷新的时间。如果方案不会过期,则应省略此字段。 时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例: |
planModules[] |
详细的方案模块(子方案)信息。 |
planState |
用户方案的状态,例如有效、无效等。 |
PlanCategory
可能的方案类别类型。
枚举 | |
---|---|
PLAN_CATEGORY_UNSPECIFIED |
未指定。 |
PREPAID |
预付费方案。 |
POSTPAID |
后付费方案。 |
PlanModule
方案中每个流量方案模块(或子方案)的信息。
JSON 表示法 | |
---|---|
{ "coarseBalanceLevel": enum ( |
字段 | ||
---|---|---|
coarseBalanceLevel |
粗略的余额信息。 |
|
trafficCategories[] |
将根据相应方案模块收费的流量类别列表。 |
|
expirationTime |
必需。方案模块的特定到期时间。对于配额会定期刷新的方案模块,这是下次模块刷新的时间。如果方案模块不会过期,则应省略此字段。 时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例: |
|
overUsagePolicy |
超出使用政策,例如受到限制。 |
|
maxRateKbps |
相应方案模块允许的最大数据速率(以 Kbps 为单位)。实际观测到的数据速率介于 0 和 maxRateKbps 之间,具体取决于网络状况。省略 maxRateKbps 或将其设置为 0 表示不对此方案模块执行任何节流。 |
|
description |
必需。方案模块说明,可能会向用户显示,应与此方案模块的市场说明相近。 |
|
moduleName |
必需。方案模块的名称。 |
|
usedBytes |
相应方案模块中用户使用的总字节数。 |
|
planModuleState |
方案模块的状态,例如有效、无效等。 |
|
refreshPeriod |
相应方案模块的刷新周期;如果方案模块不刷新其配额,则为 REFRESH_PERIOD_NONE。刷新配额的方案模块将在每个刷新周期刷新一次。 |
|
联合字段 balance 。必需。方案模块余额信息,应为以下之一:byte_balance、time_balance、coarse_balance_level。balance 只能是下列其中一项: |
||
byteBalance |
基于字节的方案模块余额信息。对于定期刷新的模块,此字段表示每个刷新周期的字节余额。 |
|
timeBalance |
基于时间的方案模块余额信息。对于定期刷新的模块,此字段表示每个刷新周期的时间余额。 |
ByteQuota
基于流量的方案模块配额/余额信息。
JSON 表示法 | |
---|---|
{ "quotaBytes": string, "remainingBytes": string } |
字段 | |
---|---|
quotaBytes |
模块配额(以字节为单位)。对于无限量方案,此值应设置为 2^63 - 1 (9223372036854775807)。 |
remainingBytes |
对于余额不足通知,此权限为必需权限。剩余配额余额(以字节为单位)。 |
TimeQuota
基于时间的方案模块配额/余额信息。
JSON 表示法 | |
---|---|
{ "quotaMinutes": string, "remainingMinutes": string } |
字段 | |
---|---|
quotaMinutes |
基于时间的方案的模块配额(以分钟为单位),例如 180 分钟。 |
remainingMinutes |
基于时间的方案的剩余配额时长(以分钟为单位),例如 40 分钟。 |
BalanceLevel
粗略的方案模块数据平衡信息。
枚举 | |
---|---|
BALANCE_LEVEL_UNSPECIFIED |
未指定。 |
NO_PLAN |
没有数据流量套餐。 |
OUT_OF_DATA |
数据余额为零。 |
LOW_QUOTA |
流量余额(或剩余时间)等于或小于原始套餐余额(或时间)的 10-25%。运营商可以根据自己的判断,确定每个包的确切阈值。 |
HIGH_QUOTA |
数据余额(或剩余时间)超过原始套餐余额(或时间)的 10-25%。运营商可以根据自己的判断,确定每个数据包的确切阈值。数据平衡度高。 |
PlanModuleTrafficCategory
方案模块流量类别,用于描述属于特定方案模块的一组应用流量。
枚举 | |
---|---|
PLAN_MODULE_TRAFFIC_CATEGORY_UNSPECIFIED |
未指定。 |
GENERIC |
通用,适用于所有流量。 |
VIDEO |
所有视频流量。 |
VIDEO_BROWSING |
视频发现(浏览)流量,指除视频/音频流式传输部分之外的所有视频应用流量。 |
VIDEO_OFFLINE |
视频离线流量,即 VIDEO_BROWSING 和视频/音频离线(非流式)流量的总和。 |
MUSIC |
音乐应用流量。 |
GAMING |
游戏应用流量。 |
SOCIAL |
社交应用流量。 |
MESSAGING |
即时通讯应用流量。 |
APP_STORE |
应用商店流量,例如更新或下载新应用。 |
OverUsagePolicy
超额使用政策:用户用完配额时会发生什么情况。
枚举 | |
---|---|
OVER_USAGE_POLICY_UNSPECIFIED |
未指定。 |
THROTTLED |
速度受到限制。 |
BLOCKED |
连接被屏蔽。 |
PAY_AS_YOU_GO |
按用量付费。 |
PlanState
表示用户方案/方案模块的不同状态的枚举。
枚举 | |
---|---|
ACTIVE |
方案/PlanModule 处于有效状态,用户可以使用作为模块一部分提供的数据。 |
INACTIVE |
方案/方案模块处于非有效状态,虽然用户仍拥有该模块,但无法使用该模块中的数据。如果模块仅在一天中的特定时间提供数据,或者用户已购买模块但尚未激活,则可能会出现这种情况。 |
EXPIRING_SOON |
相应方案/PlanModule 即将过期。调用方应选择适当的级别来确定何时设置此值。这会自动意味着相应方案处于有效状态。 |
NEWLY_ACTIVE |
之前处于非活动状态或不存在的方案/PlanModule 刚刚被激活。此状态仅应在激活时间之后使用很短的时间,否则应改用 ACTIVE 状态。使用 NEWLY_ACTIVE 模块发送的数据流量方案状态通知应使用较短的 TTL,因为 NEWLY_ACTIVE 状态很快就会变得不准确。 |
EXPIRED |
方案/PlanModule 已过期。设置此枚举值会触发方案过期通知。 |
RefreshPeriod
表示刷新周期,即方案模块重置的常规时间间隔。
枚举 | |
---|---|
REFRESH_PERIOD_NONE |
无刷新周期。当方案模块不是周期性时使用。 |
DAILY |
方案模块每天都会重置。 |
MONTHLY |
方案模块每月重置一次。 |
BIWEEKLY |
方案模块每两周重置一次。 |
WEEKLY |
方案模块每周都会重置。 |
AccountInfo
有关预付费用户的账号余额的信息。
JSON 表示法 | |
---|---|
{ "accountBalance": { object ( |
字段 | |
---|---|
accountBalance |
必需。用户账号中的剩余账号余额。 |
loanBalance |
必需(如果适用)。用户账号中剩余的余额,该余额是通过运营商提供的货币贷款添加的。如果存在,则字段 accountBalance 不包含此余额。 |
unpaidLoan |
用户因货币贷款而欠运营商的金额。 |
accountBalanceStatus |
必需。表示账号余额的状态。如果 validUntil 时间与 accountBalanceStatus 字段不一致,我们会使用 accountBalanceStatus。 |
validUntil |
必需。账号余额的有效期限。此字段将用于向用户显示“ 时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例: |
payAsYouGoCharge |
用户在随用随付状态下使用方案所花费的金额。如果运营商在与 GTAF 共享账号信息时填充了此字段,GTAF 将尝试向用户发送通知,告知用户其正在按用量付费状态下消费。 |
accountTopUp |
对于账号充值通知,此参数为必需参数。用户已向其账号余额中充值的金额。如果运营商在与 GTAF 分享账号信息时填充了此字段,GTAF 将尝试向用户发送通知,告知其账号已充值。 |
Money
表示含有货币类型的金额。
JSON 表示法 | |
---|---|
{ "currencyCode": string, "units": string, "nanos": integer } |
字段 | |
---|---|
currencyCode |
ISO 4217 中定义的由 3 个字母组成的货币代码。 |
units |
金额的整数单位。例如,如果 |
nanos |
金额的纳诺 (10^-9) 单位数。这个值必须在 -999999999(含)和 +999999999(含)之间。如果 |
AccountBalanceStatus
用户钱包的状态。
枚举 | |
---|---|
VALID |
用户账号余额有效,可用于购物。 |
INVALID |
用户账号余额无效,必须更改账号才能使用。 |
UiCompatibility
表示所分享的 PlanStatus 是否可向用户显示。
枚举 | |
---|---|
UI_COMPATIBILITY_UNSPECIFIED |
默认情况下,我们会假设 PlanStatus 与界面兼容。 |
UI_COMPATIBLE |
表示整个 PlanStatus 都与界面兼容,并且可以将方案信息显示给用户。 |
UI_INCOMPATIBLE |
表示 PlanStatus 与界面不兼容。字段可用于向用户发送通知,但不能用于向用户显示方案信息。 |
NotificationType
发送给移动流量套餐设置用户的通知类型。
枚举 | |
---|---|
NOTIFICATION_UNDEFINED |
未知通知类型 |
NOTIFICATION_LOW_BALANCE_WARNING |
提醒用户余额不足的通知 |
NOTIFICATION_DATA_EXPIRATION_WARNING |
警告用户数据流量套餐即将到期的通知 |
NOTIFICATION_OUT_OF_DATA |
用户流量用尽通知 |
NOTIFICATION_PLAN_ACTIVATION |
通知用户其购买的方案现已生效 |
NOTIFICATION_PAY_AS_YOU_GO |
通知,告知用户他们正在以随用随付方式支付数据费用。 |
NOTIFICATION_ACCOUNT_TOP_UP |
通知用户其已为账号余额充值。 |
NOTIFICATION_DATA_EXPIRED |
通知用户其数据流量套餐已过期。 |
PlanInfoPerClient
与特定 Google 客户端相关的数据流量方案信息。
JSON 表示法 | |
---|---|
{ "youtube": { object ( |
字段 | |
---|---|
youtube |
与 YouTube 相关的方案信息。 |
androidSystemInfo |
与 Android 系统相关的方案信息。 |
YouTube
与 YouTube 相关的数据流量方案信息。
JSON 表示法 | |
---|---|
{
"rateLimitedStreaming": {
object ( |
字段 | |
---|---|
rateLimitedStreaming |
YouTube 流量感知型串流 (PAS) 功能,可限制所传送视频的比特率。 |
RateLimitedStreaming
数据流量套餐信息,以便 YouTube 提升受限速的流式传输用户体验。
JSON 表示法 | |
---|---|
{ "maxMediaRateKbps": integer } |
字段 | |
---|---|
maxMediaRateKbps |
相应用户支持的 YouTube 比特率(以 kbps 为单位,即每秒传输的位数)。 |
AndroidSystemInfo
与整个 Android 系统相关的数据流量方案信息。
JSON 表示法 | |
---|---|
{
"cellularInfo": [
{
object ( |
字段 | |
---|---|
cellularInfo[] |
按连接类型划分的移动网络信息。例如,对于每种连接类型(如 4G、5G 等),都会有一个 cellularInfo 消息。 |
CellularInfo
相应方案为用户提供的移动网络连接的相关信息。
JSON 表示法 | |
---|---|
{ "connectionType": enum ( |
字段 | |
---|---|
connectionType |
运营商向用户提供的连接类型。 |
meteredness |
用户方案的按流量计费状态。 |
ConnectionType
连接类型:2G、3G、4G
枚举 | |
---|---|
CONNECTION_TYPE_UNSPECIFIED |
未指定。 |
CONNECTION_2_G |
2G. |
CONNECTION_3_G |
3G。 |
CONNECTION_4_G |
4G。 |
CONNECTION_5_G |
5G。 |
CONNECTION_ALL |
我喜欢所有类型的音乐。 |
按流量计费性
用户拥有的方案类型
枚举 | |
---|---|
METEREDNESS_UNSPECIFIED |
GTAF 不了解用户方案的按流量计费状态。 |
METEREDNESS_UNMETERED |
用户使用的是不按流量计费的方案。 |
METEREDNESS_METERED |
用户使用的是按流量付费方案。 |
CpidState
一种枚举,用于让运营商表示 CPID 状态。
枚举 | |
---|---|
CPID_STATE_UNSPECIFIED |
未指定 CPID 的状态。系统会将其视为有效的 CPID。 |
CPID_INVALIDATED |
CPID 失效,客户端应从 CPID 端点获取新的 CPID。 |
方法 |
|
---|---|
|
允许移动运营商(通过其唯一的自治系统编号 (ASN) 标识)为用户添加新的 PlanStatus 条目,以供特定客户端使用。 |