Métodos de la API

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

{}