Métodos da API

GetReader

GetReader permite que um editor valide se um dos leitores com um PPID conhecido vinculou a assinatura ao Google. O editor pode usar uma solicitação GET para consultar um PPID pertencente a um determinado ID de publicação.

Solicitação

API REST: solicitação GET

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

Biblioteca de cliente (Node.js)

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

Resposta

O endpoint vai retornar 200 com um corpo JSON contendo o created_time da assinatura vinculada ou um erro, caso nenhum PPID seja encontrado para a publicação. Para mais informações, consulte a seção de erros.

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

GetReaderEntitlements

GetReaderEntitlements permite que o publisher consulte os direitos para um PPID fornecido anteriormente pelo publisher. Com uma solicitação GET, o publisher pode solicitar os direitos fornecendo um PPID e um ID de publicação.

Solicitação

API REST: solicitação GET

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

Biblioteca de 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`
  });
};

Resposta

Para que a solicitação funcione, o formato de retorno precisa ser idêntico ao usado para armazenar direitos com a solicitação 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"
      }
  ]
}

Para usuários que não têm direitos, mas têm um PPID vinculado (por exemplo, um direito que expirou e foi limpo), uma solicitação de direitos vai retornar uma matriz de direitos vazia como parte do objeto de direitos padrão.

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

UpdateReaderEntitlements

O UpdateReaderEntitlements é usado para criar e atualizar direitos para um leitor com base no PPID dele.

Esta amostra de payload concede ao leitor com PPID 6789 direitos para três IDs de produto do The Daily Bugle: dailybugle.com:basic, dailybugle.com:premium e dailybugle.com:deluxe. Quando o leitor 6789 usar as plataformas do Google para a Pesquisa e o Discover, a lista "Das suas assinaturas" vai mostrar os resultados relevantes de artigos do dailybugle.com marcados com qualquer um desses IDs de produto.

Solicitação

API REST: solicitação PATCH

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

Corpo da solicitação: para mais informações sobre o objeto entitlements, consulte a página do glossário.

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

Biblioteca de 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
  });
};

Resposta

Após uma operação PATCH bem-sucedida, o objeto entitlements salvo será retornado no mesmo formato que GetReaderEntitlements.

DeleteReader

DeleteReader permite que um editor exclua manualmente uma assinatura vinculada. O editor deve usar uma solicitação DELETE para enviar um PPID para que um ID de publicação seja excluído.

Antes de chamar DeleteReader, exclua os direitos usando UpdateReaderEntitlements com uma matriz vazia ({ "entitlements": [] }) ou defina o parâmetro opcional force como true se precisar excluir um leitor que tenha direitos. O parâmetro force tem como padrão false.

Solicitação

API REST: solicitação DELETE

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

Biblioteca de 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
  });
};

Resposta

A exclusão retorna um código 200 com um objeto JSON vazio {}.

{}