GetReader
GetReader permite que un editor valide si uno de sus lectores con un PPID conocido vinculó su suscripción a Google. Mediante una solicitud GET, el editor consulta un PPID que pertenece a un ID de publicación específico.
Solicitud
API de REST: Solicitud de GET
https://readerrevenuesubscriptionlinking.googleapis.com/v1/publications/publicationId/readers/ppid
Biblioteca cliente (Node.js)
async function getReader(ppid) {
const publicationId = process.env.PUBLICATION_ID;
return await client.publications.readers.get({
name: `publications/${publicationId}/readers/${ppid}`,
});
};
Respuesta
El extremo mostrará un código de estado 200 con un cuerpo JSON que contiene el created_time de la suscripción vinculada o un error si no se encuentra un PPID para la publicación. Consulta la sección de errores para obtener más información.
{
"name": "publications/CAowqfCKCw/readers/22553",
"createTime": "2025-07-30T18:26:58.050224Z",
"publicationId": "CAowqfCKCw",
"ppid": "22553",
"originatingPublicationId": "CAowqfCKCw"
}
GetReaderEntitlements
GetReaderEntitlements permite que un editor busque derechos para un PPID que el editor proporcionó anteriormente. Mediante una solicitud GET, el editor solicita los derechos proporcionando un PPID y un ID de publicación.
Solicitud
API de REST: Solicitud de GET
https://readerrevenuesubscriptionlinking.googleapis.com/v1/publications/publicationId/readers/ppid/entitlements
Biblioteca cliente (Node.js)
async function getReaderEntitlements(ppid) {
const publicationId = process.env.PUBLICATION_ID;
return await client.publications.readers.getEntitlements({
name: `publications/${publicationId}/readers/${ppid}/entitlements`
});
};
Respuesta
Para que se realice correctamente una solicitud, el formato que se muestra es idéntico al formato que se usa para almacenar derechos con la solicitud PATCH de UpdateReaderEntitlements.
{
"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"
}
]
}
En el caso de los usuarios que no tienen derechos, pero que tienen un PPID vinculado (por ejemplo, un derecho que venció y se borró definitivamente), una solicitud de derechos mostrará un array de derechos vacío como parte del objeto de derechos estándar.
{
"name": "publications/dailybugle.com/readers/6789/entitlements"
}
UpdateReaderEntitlements
UpdateReaderEntitlements se usa para crear y actualizar derechos para un lector, según su PPID.
Esta carga útil de muestra le otorga al lector con PPID 6789 derechos a tres IDs de productos para The Daily Bugle: dailybugle.com:basic, dailybugle.com:premium y dailybugle.com:deluxe. Cuando el lector 6789 utilice posteriormente las plataformas de Google para la Búsqueda y Descubre, la lista "De tus suscripciones" mostrará cualquier resultado relevante de los artículos de dailybugle.com etiquetados con cualquiera de estos IDs de producto.
Solicitud
API de REST: Solicitud de PATCH
https://readerrevenuesubscriptionlinking.googleapis.com/v1/publications/publicationId/readers/ppid/entitlements
Cuerpo de la solicitud: Para obtener más información sobre el objeto entitlements, consulta la página del glosario.
{
entitlements : [{
product_id: `${publicationId}:basic`,
subscription_token: 'abc1234',
detail: 'This is our basic plan',
expire_time: '2025-10-21T03:05:08.200564Z'
}]
}
Biblioteca cliente (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
});
}
Respuesta
Cuando la operación PATCH se realice correctamente, se mostrará el objeto entitlements guardado, en el mismo formato que GetReaderEntitlements.
DeleteReader
DeleteReader permite que un editor borre de forma manual una suscripción vinculada.
Mediante una solicitud DELETE, el editor envía un PPID para que se borre un ID de publicación.
Antes de llamar a DeleteReader, primero debes borrar los derechos con UpdateReaderEntitlements y un array vacío ({ "entitlements": [] }), o bien establecer el parámetro opcional force en true si necesitas borrar un lector que tiene derechos.
El parámetro force se establece en false de forma predeterminada.
Solicitud
API de REST: Solicitud de DELETE
https://readerrevenuesubscriptionlinking.googleapis.com/v1/publications/publicationId/readers/ppid?force={boolean}
Biblioteca cliente (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
});
}
Respuesta
Una eliminación correcta muestra un código de estado 200 con un objeto JSON vacío {}.
{}