Google Mobile Data Plan Sharing API

Ziel

Die Google Mobile Data Plan Sharing API ermöglicht es einem Betreiber, Informationen zu einem Datentarif (Nutzerschlüssel identifiziert) an GTAF zu senden. Auf dieser Seite wird beschrieben, wie diese Aktualisierungen an GTAF und damit an Google-Anwendungen gesendet werden können. Die API ermöglicht der DPA derzeit, Datenstatus an GTAF zu senden, damit diese von einem Google-Client genutzt werden können.

Authentifizierung

Alle Data Plan Sharing API-Anfragen an GTAF müssen mit dem Google Cloud OAuth2-Server authentifiziert werden. Die Anfragen müssen als Dienstkonto authentifiziert werden, das im ISP-Portal für die von dem DPA vertretene ASN auf die Zulassungsliste gesetzt wurde. Unter Google Cloud OAuth 2.0 für Dienstkonten finden Sie eine Dokumentation zur Verwendung von OAuth mit Google Cloud-Dienstkonten.

Aktualisierungen des Datentarifs

Derzeit können mit dem Google Mobile Data Plan Sharing API aktuelle Informationen zum Datentarif eines Nutzers geteilt werden:

  • Status des Datentarifs: Erfasst den aktuellen Status des Datentarifs eines Nutzers. Wenn einem Nutzer z. B. keine Daten mehr zur Verfügung stehen, kann ein Operator ein Datentarif-Update an GTAF senden, das dann von GTAF verwendet werden kann, um eine Benachrichtigung zum Tarifstatus an den Nutzer zu senden.

API-Beschreibung

Abbildung 3. GTAF-DPA-Interaktion, wenn der DPA den Datentarifstatus mit GTAF teilt.

Anwendungen können Daten zum Datentarifstatus, die mit der GTAF geteilt wurden, auf zwei Arten empfangen:

  1. UE ruft GTAF auf, um Informationen zum Status des Datentarifs zu erhalten:
    1. Der DPA des Betreibers verwendet die Data Plan Sharing API, um den Datentarif eines Nutzers an GTAF zu übertragen. GTAF speichert den Tarifstatus und den zugehörigen Nutzerschlüssel bis zur vom Operator angegebenen Ablaufzeit.
    2. Eine auf UE ausgeführte Google-Anwendung fordert über eine Google-interne API Statusinformationen zum Datentarif an. Die Anwendung enthält den Nutzerschlüssel in ihrer Anfrage.
    3. Wenn die Anwendung den im Cache gespeicherten Datentarifstatus verwenden kann, verwendet GTAF den Nutzerschlüssel, um den Status des Nutzertarifs zu ermitteln. GTAF gibt dann diesen Status an die Anwendung zurück.
  2. GTAF überträgt Statusstatusinformationen an die UE:
    1. Sofern relevant, wird der vom Operator empfangene Datentarifstatus direkt an die UE gesendet. Insbesondere wird der Status des Push-Tarifs verwendet, um den On-Device-Cache des Mobile Data Plan-Moduls in den Google Play-Diensten zu aktualisieren.

Status des Datentarifs wird geteilt

Die DPA erstellt einen HTTPS-POST-Eintrag, um einen vorhandenen Planstatuseintrag für einen Nutzer zu erstellen und zu aktualisieren, der von einem Client verwendet werden soll. Derzeit unterstützt GTAF mobiledataplan und youtube als gültige Client-IDs. Hier ist eine Beispielanfrage für einen Operator mit dem Attribut „nn 12345“ und dem Nutzerschlüssel „abcdef“, der Informationen zum Tarif für GTAF für den youtube-Client teilt:

POST https://mobiledataplansharing.googleapis.com/v1/operators/12345/clients/youtube/users/abcdef/planStatus

Der Anfragetext ist eine Instanz von PlanStatus.

{
  "plans": [{
    "planName": "ACME1",
    "planId": "1",
    "planCategory": "PREPAID",
    "expirationTime": "2017-01-29T01:00:03.14159Z", // req.
    "planModules": [{
      "moduleName": "Giga Plan", // req.
      "trafficCategories": ["GENERIC"],
      "expirationTime": "2017-01-29T01:00:03.14159Z", // req.
      "overUsagePolicy": "BLOCKED",
      "maxRateKbps": "1500",
      "description": "1GB for a month", // req.
      "coarseBalanceLevel": "HIGH_QUOTA"
    }]
  }],
  "planInfoPerClient": {
    "youtube": {
      "rateLimitedStreaming": {
        "maxMediaRateKbps": 569
      }
    }
  },
  "languageCode": "en-US", // req.
  "expireTime": "2018-06-14T08:41:27-07:00", // req.
  "updateTime": "2018-06-07T07:41:22-07:00", // req.
  "title": "Prepaid Plan"
}

Wenn die Anfrage erfolgreich ist, gibt GTAF den HTTP-Antwortcode 200 und den gesendeten Eintrag planStatus mit einem Benachrichtigungseintrag zurück, wenn eine Benachrichtigung an den Nutzer gesendet wurde. Wenn GTAF ein Problem mit der Anfrage erkennt, wird ein HTTP-Statuscode im Bereich von 400 bis 499 zurückgegeben. Wenn GTAF eine Anfrage aufgrund eines GTAF-Fehlers nicht abschließen kann, gibt GTAF einen HTTP-Code im Bereich 500-599 zurück. Anfragen, die eine Antwort im Bereich von 500 bis 599 erhalten, werden als wiederholbar betrachtet. Anfragen, die eine Antwort im Bereich von 400 bis 499 erhalten, sind in der Regel nicht wiederholbar. Fehlerfälle erläutert die Fehlerantworten der GTAF.

Übertragung des Planstatus für den Standardclient

GTAF unterstützt den folgenden Aufruf, bei dem der Tarifstatus vom Operator übertragen wird, ohne den Client anzugeben, für den er verwendet werden kann. In diesem Fall gehen wir davon aus, dass der Tarifstatus für den mobiledataplan-Client vorgesehen ist und der Operator eine Benachrichtigung an den Nutzer senden soll. Der Anfragetext ist eine Instanz von PlanStatus

POST https://mobiledataplansharing.googleapis.com/v1/operators/12345/planStatuses?userKey=abcdef

Internationalization

Um die Internationalisierung zu unterstützen, muss die Datenschutzaufsichtsbehörde die bevorzugte Sprache des Nutzers kennen, auch ohne eine direkte Anfrage von GTAF. Zur Lösung dieses Problems kann die Anfrage an den CPID-Endpunkt einen Accept-Language-Header enthalten, je nach den Clientzugriffen auf die Spracheinstellungen der Nutzer. Wenn der Header enthalten ist, müssen für Menschen lesbare Strings in Aktualisierungen, die die DPA über die MDP API sendet, die in der CPID-Anfrage angegebenen Einstellungen verwenden.

Der DPA kann die Spracheinstellungen des Nutzers aktualisieren, wenn er eine Anfrage von GTAF mit einem Accept-Language-Header erhält, und die aktualisierten Nutzereinstellungen verwenden, um den Sprachcode in zukünftigen Anfragen an GTAF zu ermitteln.

Der DPA MUSS die Sprache angeben, die für sichtbare Strings für Nutzer in languageCode verwendet wird. GTAF verwendet diese Informationen, um den Titel und den Text der Benachrichtigungen zu erstellen, die dem Nutzer angezeigt werden.