Metodi dell'API

OttieniLettore

GetReader consente a un editore di verificare se uno dei suoi lettori con un PPID noto ha collegato il proprio abbonamento a Google. Utilizzando una richiesta GET, l'editore esegue una query per un PPID appartenente a un determinato ID pubblicazione.

Richiesta

API REST: richiesta GET

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

Libreria client (Node.js)

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

Risposta

L'endpoint restituirà un codice 200 con un corpo JSON contenente il created_time dell'abbonamento collegato o un errore se non viene trovato alcun PPID per la pubblicazione. Per ulteriori informazioni, consulta la sezione relativa agli errori.

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

OttieniDirittiLettore

GetReaderEntitlements consente a un editore di eseguire una query per verificare i diritti relativi a un PPID da lui fornito in precedenza. Utilizzando una richiesta GET, l'editore richiede i diritti fornendo un PPID e un ID pubblicazione.

Richiesta

API REST: richiesta GET

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

Libreria client (Node.js)

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

Risposta

Per una richiesta andata a buon fine, il formato di restituzione è identico a quello utilizzato per archiviare i diritti con la richiesta UpdateReaderEntitlements PATCH.

{
  "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"
      }
  ]
}

Per gli utenti che non hanno diritti, ma dispongono di un PPID collegato (ad esempio, un diritto scaduto ed eliminato definitivamente), una richiesta di diritti restituirà un array di diritti vuoto come parte dell'oggetto Diritti standard.

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

AggiornaDirittiLettore

UpdateReaderEntitlements viene utilizzato per creare e aggiornare i diritti di un lettore in base al suo PPID.

Questo payload di esempio concede al lettore con diritti PPID 6789 tre ID prodotto per il Daily Bugle: dailybugle.com:basic, dailybugle.com:premium e dailybugle.com:deluxe. Quando in un secondo momento il lettore 6789 utilizza le piattaforme Google per la Ricerca e Discover, l'elenco "Dai tuoi abbonamenti" conterrà tutti i risultati pertinenti dagli articoli di dailybugle.com taggati con uno di questi ID prodotto.

Richiesta

API REST: richiesta PATCH

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

Corpo della richiesta: per maggiori informazioni sull'oggetto entitlements, consulta la pagina Glossario.

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

Libreria client (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
  });
};

Risposta

Dopo un'operazione PATCH riuscita, l'oggetto entitlements salvato verrà restituito nello stesso formato di GetReaderEntitlements.

EliminaLettore

DeleteReader consente a un editore di eliminare manualmente un abbonamento collegato. Con una richiesta DELETE, l'editore invia un PPID relativo a un ID pubblicazione da eliminare.

Prima di chiamare DeleteReader, devi eliminare i diritti utilizzando prima UpdateReaderEntitlements con un array vuoto ({ "entitlements": [] }) o impostare il parametro facoltativo force su true se devi eliminare un lettore che dispone di diritti. Il parametro force è impostato su false per impostazione predefinita.

Richiesta

API REST: richiesta DELETE

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

Libreria client (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
  });
};

Risposta

Un'eliminazione corretta restituisce un codice 200 con un oggetto JSON vuoto {}.

{}