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 termasuk dalam 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 tertaut, atau error jika tidak ada PPID yang ditemukan untuk publikasi. Lihat bagian error untuk mengetahui informasi selengkapnya.

{
  "name": "publications/gtech-demo.appspot.com/readers/81112",  
  "create_time": "2022-04-19T04:53:40+00:00"
}

GetReaderEntitlements

GetReaderEntitlements memungkinkan penayang membuat kueri untuk hak untuk PPID yang sebelumnya diberikan oleh 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 permintaan PATCH 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"
      }
  ]
}

Untuk pengguna yang tidak memiliki hak, tetapi memiliki PPID tertaut (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",
  "createTime": "2023-02-07T17:38:57.425577Z"
}

UpdateReaderEntitlements

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

Payload contoh ini memberi pembaca hak PPID 6789 ke tiga ID Produk untuk The Daily Bugle: dailybugle.com:basic, dailybugle.com:premium, dan dailybugle.com:deluxe. Saat pembaca 6789 kemudian menggunakan platform Google untuk Penelusuran dan Discover, daftar "Dari langganan Anda" akan menampilkan hasil yang relevan dari artikel dailybugle.com yang diberi tag dengan 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 tertaut secara manual. Dengan menggunakan permintaan DELETE, penayang 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 ditetapkan secara default 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 {}.

{}