Metode API

GetReader

GetReader memungkinkan penayang memvalidasi apakah salah satu pembacanya dengan PPID yang diketahui telah menautkan langganannya ke Google. Dengan menggunakan permintaan GET, penayang akan membuat kueri untuk PPID yang dimiliki ID Publikasi tertentu.

Permintaan

REST API: Permintaan GET

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

Library klien (Node.js)

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

Respons

Endpoint akan menampilkan 200 dengan isi JSON yang berisi created_time langganan yang ditautkan, atau error jika tidak ada PPID yang ditemukan untuk publikasi. Lihat bagian error untuk mengetahui informasi selengkapnya.

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

GetReaderEntitlements

GetReaderEntitlements memungkinkan penayang membuat kueri untuk hak PPID yang sebelumnya diberikan penayang. Dengan menggunakan permintaan GET, penayang meminta hak dengan memberikan PPID dan ID Publikasi.

Permintaan

REST API: Permintaan GET

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

Library klien (Node.js)

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

Respons

Untuk permintaan yang berhasil, format yang ditampilkan sama dengan format yang digunakan untuk menyimpan hak dengan UpdateReaderEntitlements PATCH permintaan.

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

Untuk pengguna yang tidak memiliki hak, tetapi memiliki PPID yang ditautkan (misalnya, hak yang telah habis masa berlakunya dan dihapus), permintaan hak akan menampilkan array hak kosong sebagai bagian dari objek hak standar.

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

UpdateReaderEntitlements

UpdateReaderEntitlements digunakan untuk membuat dan memperbarui hak untuk pembaca, berdasarkan PPID-nya.

Payload contoh ini memberikan hak kepada pembaca dengan PPID 6789 untuk tiga ID Produk untuk The Daily Bugle: dailybugle.com:basic, dailybugle.com:premium, dan dailybugle.com:deluxe. Saat pembaca 6789 selanjutnya menggunakan platform Google untuk Penelusuran dan Discover, daftar "Dari langganan Anda" akan menampilkan hasil yang relevan dari artikel dailybugle.com yang diberi tag dengan salah satu ID Produk ini.

Permintaan

REST API: Permintaan PATCH

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

Isi permintaan: Untuk mengetahui informasi selengkapnya tentang objek entitlements, lihat halaman glosarium.

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

Library klien (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
  });
}

Respons

Setelah operasi PATCH berhasil, objek entitlements yang disimpan akan ditampilkan, dalam format yang sama dengan GetReaderEntitlements.

DeleteReader

DeleteReader memungkinkan penayang menghapus langganan yang ditautkan secara manual. Dengan menggunakan permintaan DELETE, penayang akan mengirimkan PPID untuk ID Publikasi yang akan dihapus.

Sebelum memanggil DeleteReader, Anda harus menghapus hak terlebih dahulu menggunakan UpdateReaderEntitlements dengan array kosong ({ "entitlements": [] }), atau menetapkan parameter force opsional ke true jika Anda perlu menghapus pembaca yang memiliki hak. Parameter force secara default ditetapkan ke false.

Permintaan

REST API: Permintaan DELETE

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

Library klien (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
  });
}

Respons

Penghapusan yang berhasil akan menampilkan 200 dengan objek JSON kosong {}.

{}