Mengoptimalkan Penggunaan Layanan Web

Catatan: Premium Plan Google Maps Platform tidak lagi tersedia untuk pendaftar atau pelanggan baru.

Ringkasan

Jika aplikasi Anda melebihi batas penggunaan untuk layanan web Google Maps Platform, layanan akan menampilkan pesan error. Jika aplikasi Anda terus melebihi batas penggunaan, aplikasi dapat diblokir sehingga tidak dapat mengakses layanan web dan, dalam beberapa kasus, menerima respons "403 Forbidden".

Jika permintaan layanan web aplikasi Anda menerima pesan error, Anda dapat melakukan hal berikut:

  1. Mengurangi penggunaan dengan mengoptimalkan aplikasi untuk menggunakan layanan web dengan lebih efisien.
  2. Meningkatkan batas penggunaan, jika memungkinkan, dengan membeli Kredit Maps API tambahan.

Sebelum memulai

Sebelum mengoptimalkan penggunaan layanan web aplikasi, pastikan Anda menggunakan layanan yang benar untuk kasus penggunaan dan lisensi Maps API yang benar.

Memvalidasi kasus penggunaan Anda

Layanan web Google Maps Platform paling cocok digunakan untuk aplikasi yang tidak memerlukan input real-time dari pengguna atau saat browser web tidak digunakan. Misalnya, Anda harus menggunakan layanan web jika aplikasi Anda menggunakan set data yang tidak bergantung pada input pengguna—contohnya, serangkaian alamat tetap pada situs properti yang perlu dibuat geocode.

Perhatikan bahwa dengan layanan web, batas kueri per detik (QPS) berlaku untuk lisensi Premium Plan Anda, berapa pun banyaknya alamat IP asal pengiriman permintaan.

Di sisi lain, layanan sisi klien yang tersedia dengan Maps JavaScript API dibatasi kapasitasnya per sesi browser, sehingga permintaan didistribusikan ke semua pengguna Anda dan diskalakan seiring dengan pertumbuhan jumlah pengguna. Dengan demikian, layanan sisi klien berfungsi maksimal untuk aplikasi yang melakukan geocoding terhadap input alamat dari pengguna secara real-time, seperti pencari toko yang mencari toko di dekat alamat rumah pengguna.

Untuk diskusi yang lebih detail tentang kapan harus menggunakan layanan web, lihat Strategi Geocoding. Meski khusus untuk geocoding, rekomendasi dalam dokumen ini berlaku untuk semua layanan web, yang menjelaskan kapan Anda harus menggunakan layanan web sisi server atau sisi klien yang setara.

Menggunakan lisensi Premium Plan Google Maps Platform

Pastikan permintaan aplikasi Anda menyertakan detail autentikasi yang benar untuk lisensi Premium Plan Google Maps Platform—yaitu client ID atau kunci API dari project Premium Plan Anda di Google Cloud Console.

Jika aplikasi Anda tidak menggunakan lisensi Premium Plan dengan benar, aplikasi harus mematuhi batas penggunaan Standard Plan dan batasan lisensi pada Persyaratan Layanan Google Maps Platform. Layanan tersebut tidak tercakup dalam SLA Premium Plan. Selain itu, Anda tidak akan menerima dukungan teknis untuk aplikasi tersebut.

Cara mengoptimalkan penggunaan layanan web

Untuk menggunakan layanan web secara lebih efisien, Anda dapat mengurangi penggunaan dengan mengirimkan permintaan hanya saat diperlukan dan mengalokasikan penggunaan secara merata agar tetap di bawah batas.

Menyimpan hasil dalam cache

Pasal 3.2.4.b dari Persyaratan Layanan Google Maps Platform menyatakan bahwa Anda dapat menyimpan data Google Maps dalam cache untuk sementara waktu, maksimal 30 hari, guna meningkatkan performa aplikasi Anda. Dengan menyimpan respons layanan web dalam cache, aplikasi Anda dapat menghindari pengiriman permintaan duplikat selama jangka waktu yang singkat. Faktanya, respons layanan web selalu menyertakan header HTTP Cache-Control yang menunjukkan berapa lama Anda bisa menyimpan hasil dalam cache—misalnya, Cache-Control: public, max-age=86400. Untuk efisiensi, pastikan aplikasi Anda selalu menyimpan hasil dalam cache setidaknya selama waktu yang ditentukan dalam header ini, tetapi tidak melebihi waktu maksimum yang ditentukan dalam Persyaratan Layanan Google Maps Platform.

Anda dapat menerapkan cache menggunakan proxy web, yang sebagian besar sudah menerapkan fungsi ini dari awal. Atau, Anda bisa menggunakan penerapan proxy web Anda sendiri. Ingat bahwa beberapa library klien HTTP juga menyimpan respons HTTP dalam cache.

Untuk meningkatkan frekuensi cache ditemukan, pastikan Anda menormalkan koordinat garis lintang/bujur (lin/buj) dengan membulatkannya ke 6 angka desimal, yang memberikan presisi hingga sekitar 11 sentimeter di sekitar garis khatulistiwa. Jika Anda menambahkan lebih banyak desimal, hasil dari layanan web tidak akan berubah, tetapi rasio cache ditemukan akan menurun.

Membatasi permintaan

Agar tidak melebihi batas penggunaan, Anda dapat mengonfigurasi aplikasi untuk membatasi permintaan, dengan menempatkannya dalam antrean yang mencatat waktu permintaan dikirim. Jika aplikasi Anda menerima satu permintaan tambahan melebihi batas QPS, aplikasi tersebut harus memeriksa stempel waktu dari permintaan pertama lalu menunggu 1 detik.

Bahkan dengan pembatasan, aplikasi mungkin masih menerima respons dengan kode status OVER_QUERY_LIMIT. Konfigurasikan aplikasi Anda untuk menyisipkan penundaan singkat (20 md) dan coba lagi jika aplikasi menerima respons tersebut.

Meningkatkan batas QPS

Jika Anda menerapkan pembatasan dengan benar, aplikasi Anda seharusnya tidak mengirimkan permintaan lebih dari batas penggunaan. Namun, aplikasi Anda mungkin menerima input yang terlalu besar atau dengan kecepatan yang lebih tinggi dari yang diizinkan oleh batas penggunaan layanan web Google Maps Platform (biasanya, 50 QPS). Jika ini terjadi, antrean pembatasan bisa menjadi besar, yang membuat backlog permintaan. Selain itu, Places API awalnya dibatasi hingga 50 QPS. Jika aplikasi Anda terus-menerus menerima backlog tersebut, baik di waktu tertentu setiap hari atau sepanjang hari, Anda mungkin perlu meningkatkan batas QPS untuk lisensi Premium Plan Google Maps Platform Anda. Untuk meminta peningkatan QPS, hubungi Sales Account Manager Google Maps Platform Anda.