API yöntemleri

GetReader

GetReader, yayıncıların bilinen bir PPID'ye sahip okuyucularından birinin aboneliğini Google'a bağlayıp bağlamadığını doğrulamasına olanak tanır. Yayıncı, GET isteği kullanarak belirli bir Yayın Kimliği'ne ait bir PPID sorgular.

İstek

REST API: GET isteği

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

İstemci kitaplığı (Node.js)

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

Yanıt

Uç nokta, bağlı aboneliğin created_time değerini içeren bir JSON gövdesi ile 200 yanıtı döndürür veya yayın için PPID bulunamazsa hata döndürür. Daha fazla bilgi için hatalar bölümüne bakın.

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

GetReaderEntitlements

GetReaderEntitlements, yayıncının daha önce sağladığı bir PPID için hak talep etmesine olanak tanır. Yayıncı, GET isteği kullanarak bir PPID ve Yayın Kimliği sağlayarak izinleri ister.

İstek

REST API: GET isteği

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

İstemci kitaplığı (Node.js)

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

Yanıt

Başarılı bir istek için döndürülen biçim, UpdateReaderEntitlements PATCH isteğiyle hak sahipliklerini depolamak için kullanılan biçimle aynıdır.

{
  "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"
      }
  ]
}

Kullanım hakkı olmayan ancak bağlı bir PPID'si olan kullanıcılar (ör. süresi dolan ve temizlenen bir kullanım hakkı) için, standart kullanım hakları nesnesi kapsamında boş bir kullanım hakları dizisi döndürülür.

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

UpdateReaderEntitlements

UpdateReaderEntitlements, PPID'lerine göre okuyucular için ayrıcalıklar oluşturmak ve güncellemek için kullanılır.

Bu örnek yükü, okuyucuya The Daily Bugle için üç ürün kimliği (dailybugle.com:basic, dailybugle.com:premium ve dailybugle.com:deluxe) ile ilgili PPID 6789 haklarından yararlanma olanağı tanır. 6789 adlı okuyucu daha sonra Arama ve Keşfet için Google platformlarını kullandığında "Aboneliklerinizden" listesinde, bu ürün kimliklerinden herhangi biriyle etiketlenmiş dailybugle.com makalelerindeki alakalı sonuçlar yer alır.

İstek

REST API: PATCH isteği

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

İstek gövdesi: entitlements nesnesi hakkında daha fazla bilgi için terimler sözlüğü sayfasına bakın.

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

İstemci kitaplığı (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
  });
};

Yanıt

Başarılı bir PATCH işleminin ardından, kayıtlı entitlements nesnesi GetReaderEntitlements ile aynı biçimde döndürülür.

DeleteReader

DeleteReader, yayıncıların bağlı bir aboneliği manuel olarak silmesine olanak tanır. Yayıncı, DELETE isteği kullanarak silinecek bir Yayın Kimliği için PPID gönderir.

DeleteReader işlevini çağırmadan önce, önce boş bir dizi ({ "entitlements": [] }) kullanarak UpdateReaderEntitlements işlevini kullanarak ayrıcalıkları silmeniz veya ayrıcalıkları olan bir okuyucuyu silmeniz gerekiyorsa isteğe bağlı force parametresini true olarak ayarlamanız gerekir. force parametresi varsayılan olarak false değerine ayarlanır.

İstek

REST API: DELETE isteği

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

İstemci kitaplığı (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
  });
};

Yanıt

Başarılı bir silme işlemi, boş bir JSON nesnesi {} içeren 200 yanıtı döndürür.

{}