API-Methoden

GetReader

Mit GetReader können Verlage und Webpublisher prüfen, ob ein Leser mit einer bekannten PPID sein Abo mit Google verknüpft hat. Mit einer GET-Anfrage fragt der Verlag oder Webpublisher eine PPID ab, die zu einer bestimmten Publikations-ID gehört.

Anfrage

REST API: GET-Anfrage

https://readerrevenuesubscriptionlinking.googleapis.com/v1/publications/publicationId/readers/ppid

Clientbibliothek (Node.js)

async function getReader(ppid) {
  const publicationId = process.env.PUBLICATION_ID;
  return await client.publications.readers.get({
    name: `publications/${publicationId}/readers/${ppid}`,
  });
};

Antwort

Der Endpunkt gibt entweder den Statuscode 200 mit einem JSON-Text zurück, der den created_time-Wert des verknüpften Abos enthält, oder eine Fehlermeldung, wenn keine PPID für die Publikation gefunden wurde. Weitere Informationen finden Sie im Abschnitt zur Fehlerbehebung.

{
  "name": "publications/CAowqfCKCw/readers/22553",
  "createTime": "2025-07-30T18:26:58.050224Z",
  "publicationId": "CAowqfCKCw",
  "ppid": "22553",
  "originatingPublicationId": "CAowqfCKCw"
}

GetReaderEntitlements

GetReaderEntitlements ermöglicht einem Verlag oder Webpublisher, Berechtigungen für eine zuvor bereitgestellte PPID abzufragen. Um die Berechtigungen über eine GET-Anfrage anzufordern, muss der Verlag oder Webpublisher eine PPID und eine Publikations-ID angeben.

Anfrage

REST API: GET-Anfrage

https://readerrevenuesubscriptionlinking.googleapis.com/v1/publications/publicationId/readers/ppid/entitlements

Clientbibliothek (Node.js)

async function getReaderEntitlements(ppid) {
  const publicationId = process.env.PUBLICATION_ID;
  return await client.publications.readers.getEntitlements({
    name: `publications/${publicationId}/readers/${ppid}/entitlements`
  });
};

Antwort

Bei einer erfolgreichen Anfrage ist das Rückgabeformat identisch mit dem Format, das zum Speichern von Berechtigungen mit der PATCH-Anfrage UpdateReaderEntitlements verwendet wird.

{
  "name": "publications/dailybugle.com/readers/6789/entitlements",
  "entitlements": [
      {
        "product_id": "dailybugle.com:basic",
        "subscription_token": "dnabhdufbwinkjanvejskenfw",
        "detail": "This is our basic plan",
        "expire_time": "2022-08-19T04:53:40+00:00"
      },
      {
        "product_id": "dailybugle.com:premium",
        "subscription_token": "wfwhddgdgnkhngfw",
        "detail": "This is our premium plan",
        "expire_time": "2022-07-19T04:53:40+00:00"
      },
      {
        "product_id": "dailybugle.com:deluxe",
        "subscription_token": "fefcbwinkjanvejfefw",
        "detail": "This is our deluxe plan",
        "expire_time": "2022-08-20T04:53:40+00:00"
      }
  ]
}

Für Nutzer, die keine Berechtigungen, aber eine verknüpfte PPID haben (z. B. eine abgelaufene und dauerhaft gelöschte Berechtigung), wird bei einer Berechtigungsanfrage ein leeres Berechtigungsarray als Teil des standardmäßigen Berechtigungsobjekts zurückgegeben.

{
  "name": "publications/dailybugle.com/readers/6789/entitlements"
}

UpdateReaderEntitlements

UpdateReaderEntitlements wird zum Erstellen und Aktualisieren von Berechtigungen für einen Leser verwendet, basierend auf seiner PPID.

Diese Beispielnutzlast gewährt dem Leser mit der PPID 6789 Berechtigungen für drei Produkt-IDs für „The Daily Bugle“: dailybugle.com:basic, dailybugle.com:premium und dailybugle.com:deluxe. Wenn Leser 6789 anschließend Google-Plattformen für die Suche und Discover verwendet, werden in der Liste „Aus deinen Abos“ alle relevanten Ergebnisse aus dailybugle.com-Artikeln angezeigt, die mit einer dieser Produkt-IDs getaggt sind.

Anfrage

REST API: PATCH-Anfrage

https://readerrevenuesubscriptionlinking.googleapis.com/v1/publications/publicationId/readers/ppid/entitlements

Anfragetext: Weitere Informationen zum entitlements-Objekt finden Sie auf der Seite Glossar.

{
  entitlements : [{
    product_id: `${publicationId}:basic`,
    subscription_token: 'abc1234',
    detail: 'This is our basic plan',
    expire_time: '2025-10-21T03:05:08.200564Z'
  }]
}

Clientbibliothek (Node.js)

async function updateReaderEntitlements(ppid) {
  const publicationId = process.env.PUBLICATION_ID;
  const requestBody = {
    entitlements : [{
      product_id: `${publicationId}:basic`,
      subscription_token: 'abc1234',
      detail: 'This is our basic plan',
      expire_time: '2025-10-21T03:05:08.200564Z'
    }]
  };
  return await client.publications.readers.updateEntitlements({
    name: `publications/${publicationId}/readers/${ppid}/entitlements`,
    requestBody
  });
};

Antwort

Nach einem erfolgreichen PATCH-Vorgang wird das gespeicherte entitlements-Objekt im selben Format wie GetReaderEntitlements zurückgegeben.

DeleteReader

Mit DeleteReader kann ein Verlag oder Webpublisher ein verknüpftes Abo manuell löschen. Dazu sendet der Verlag oder Webpublisher mithilfe einer DELETE-Anfrage eine PPID für eine zu löschende Publikations-ID ein.

Bevor Sie DeleteReader aufrufen, müssen Sie entweder zuerst Berechtigungen mit UpdateReaderEntitlements und einem leeren Array ({ "entitlements": [] }) löschen oder den optionalen Parameter force auf true setzen, wenn Sie einen Leser mit Berechtigungen löschen möchten. Der Standardwert des Parameters force ist false.

Anfrage

REST API: DELETE-Anfrage

https://readerrevenuesubscriptionlinking.googleapis.com/v1/publications/publicationId/readers/ppid?force={boolean}

Clientbibliothek (Node.js)

async function deleteReader(ppid, forceDelete = false) {
  const publicationId = process.env.PUBLICATION_ID;
  return await client.publications.readers.delete({
    name: `publications/${publicationId}/readers/${ppid}`
    force: forceDelete
  });
};

Antwort

Ein erfolgreicher Löschvorgang gibt den Statuscode 200 mit dem leeren JSON-Objekt {} zurück.

{}