Métodos da API

GetReader

GetReader permite que o 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 um editor consulte os direitos de um PPID fornecido anteriormente. Com uma solicitação GET, o editor pede 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 publisher exclua manualmente uma assinatura vinculada. Usando uma solicitação DELETE, o publisher envia 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

Uma exclusão bem-sucedida retorna um código 200 com um objeto JSON vazio {}.

{}