The Google Mobile Data Plan Sharing API also allows an operator to send notifications to a user by pushing a PlanStatus.
The API currently supports the following notifications:
- Low Balance: when PlanModule.coarseBalanceLevel is set to LOW_QUOTA
- Out of Data: when PlanModule.coarseBalanceLevel is set to OUT_OF_DATA. If in addition to this, the PlanModule.overUsagePolicy is set to PAY_AS_YOU_GO, then the user will be notified that they are about to enter pay as you go mode.
- Data Expiration Warning: when PlanModule.planModuleState is set to EXPIRING_SOON
- Plan Activation: when PlanModule.planModuleState is set to NEWLY_ACTIVE
- Pay as you go: when AccountInfo.payAsYouGoCharge is populated with the amount that the user has spent. If the accountBalance is populated, then the notification shows the remaining balance on the account.
- Account top up: when AccountInfo.accountTopUp and AccountInfo.accountBalance are populated. Both these fields are required to send the account top up notification to the user. If units and nanos in AccountInfo.accountTopUp, are set to zero then the top up amount is not included in the notification.
- Data Expiration: when PlanModule.planModuleState is set to EXPIRED. This is for plans that are already expired.
One notification is sent to the user for each field set. If multiple
planModuleState fields are set in a single
PlanStatus, then an equal number of notifications will be sent to the user.
The plan status which triggers the notification is sent to user device to update
the on device cache. This improves user experience by showing a recent plan
status when the user clicks on the notification. If the plan status used for
sending a notification is not complete and should not be shown to the user, then
the carrier MUST set
A notification PlanStatus SHOULD contain as much information as possible about the user's mobile plan. For each type of notification, the Data Plan Sharing API also defines a minimum set of fields which are required to build the notification text. The operator MUST include these fields in a notification PlanStatus.
|Low Balance||PlanModule.moduleName, PlanModule.byteBalance.remainingBytes|
|Out of Data||PlanModule.moduleName|
|Data Expiration Warning||PlanModule.moduleName, PlanModule.expirationTime|
|Pay as you go||AccountInfo.payAsYouGoCharge|
|Account top up||AccountInfo.accountTopUp|