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 {}
.
{}