Mengoptimalkan Penggunaan Layanan Web

Ringkasan

Jika aplikasi Anda melebihi batas penggunaan untuk layanan web Google Maps APIs, layanan akan mengembalikan pesan kesalahan. Jika aplikasi Anda terus melebihi batas penggunaan, aplikasi bisa diblokir terhadap akses layanan web dan, dalam beberapa kasus, menerima respons "403 Forbidden".

Jika permintaan layanan web aplikasi Anda menerima pesan kesalahan, Anda bisa melakukan yang berikut:

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

Sebelum Anda memulai

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

Memvalidasi kasus penggunaan Anda

Layanan web Google Maps APIs berfungsi paling baik untuk aplikasi yang tidak memerlukan masukan real-time dari pengguna atau saat browser web tidak digunakan. Misalnya, Anda harus menggunakan layanan web jika aplikasi Anda menggunakan kumpulan data yang tidak bergantung pada masukan pengguna—misalnya, serangkaian alamat yang tetap pada situs web real estate yang perlu di-geocode.

Perhatikan bahwa dengan layanan web, batas kueri-per-detik (QPS) berlaku untuk lisensi Premium Plan Anda, tanpa memandang berapa banyak permintaan alamat IP yang dikirim darinya.

Di sisi lain, layanan sisi-klien yang tersedia dengan Google Maps JavaScript API adalah dibatasi biaya per sesi browser, sehingga permintaan didistribusikan di semua pengguna Anda dan diubah skalanya seiring dengan pertumbuhan jumlah pengguna. Dengan demikian, layanan sisi-klien berfungsi maksimal untuk aplikasi yang melakukan geocode terhadap masukan alamat dari pengguna secara real-time, seperti pencari toko yang menelusuri toko di dekat alamat rumah pengguna.

Untuk diskusi yang lebih detail tentang kapan harus menggunakan layanan web, lihat Strategi Geocoding. Meskipun khusus untuk geocoding, saran 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 Google Maps APIs Premium Plan Anda

Pastikan permintaan aplikasi Anda menyertakan detail autentikasi yang benar untuk lisensi Google Maps APIs Premium Plan Anda—yaitu, ID klien Anda atau kunci API dari proyek Premium Plan Anda di Google API Console.

Jika aplikasi Anda tidak menggunakan lisensi Premium Plan dengan benar, aplikasi akan terkena batas penggunaan Standard Plan dan batasan Ketentuan Layanan dan tidak dicakup oleh SLA Premium Plan. Selain itu, Anda tidak akan menerima dukungan teknis untuk aplikasi.

Cara mengoptimalkan penggunaan layanan web

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

Buat cache hasil

Bagian 10.5.d Ketentuan Layanan Maps API menetapkan bahwa Anda bisa membuat cache data Google Maps untuk sementara waktu, selama periode hingga 30 hari, untuk meningkatkan kinerja aplikasi Anda. Dengan membuat cache respons layanan web, aplikasi Anda bisa menghindari pengiriman permintaan duplikat selama periode waktu yang pendek. Faktanya, respons layanan web selalu menyertakan header HTTP Cache-Control yang menunjukkan berapa lama Anda bisa membuat cache hasil—misalnya, Cache-Control: public, max-age=86400. Agar efisien, pastikan aplikasi Anda selalu membuat cache hasil selama minimal jumlah waktu yang ditetapkan di header ini, tetapi tidak lebih dari waktu maksimum yang ditetapkan di Ketentuan Layanan Maps API.

Anda bisa mengimplementasikan cache menggunakan proxy web, yang sebagian besar sudah mengimplementasikan fungsi ini dari awal. Atau, Anda bisa menggunakan implementasikan proxy web Anda sendiri. Perhatikan bahwa beberapa pustaka klien HTTP juga membuat cache respons HTTP.

Untuk meningkatkan tingkat kecocokan cache, pastikan Anda menormalkan koordinat garis lintang/bujur (lat/long) dengan membulatkannya ke 6 angka desimal, yang menyediakan keakuratan hingga sekitar 11 sentimeter di sekitar garis khatulistiwa. Jika Anda menambahkan desimal lebih bayak, hasil dari layanan web tidak akan berubah tetapi tingkat kecocokan cache akan menurun.

Batasi permintaan

Untuk menghindari kelebihan batas penggunaan, Anda bisa mengonfigurasi aplikasi Anda untuk membatasi permintaan, dengan menempatkannya di antrean yang mencatat saat permintaan dikirim. Jika aplikasi Anda menerima satu permintaan tambahan di luar batas QPS, aplikasi harus memeriksa stempel waktu permintaan pertama dan menunggu 1 detik.

Bahkan dengan pembatasan, aplikasi masih dapat menerima respons dengan kode status OVER_QUERY_LIMIT. Konfigurasikan aplikasi Anda untuk menyisipkan penundaan cepat (20 ms) dan mencoba lagi setelah aplikasi menerima respons tersebut.

Tingkatkan batas QPS

Jika Anda mengimplementasikan pembatasan dengan benar, aplikasi Anda seharusnya tidak mengirimkan permintaan lebih dari batas penggunaan. Akan tetapi, aplikasi Anda mungkin menerima masukan yang terlalu besar atau pada kecepatan yang lebih tinggi dari yang diizinkan oleh batas penggunaan layanan web (umumnya, 50 QPS). Dalam hal ini, antrean pembatasan bisa menjadi besar dan membuat backlog permintaan. Selain itu, Places API Web Service awalnya dibatasi hingga 5 QPS. Jika aplikasi Anda terus-menerus menerima backlog seperti itu, apakah di waktu tertentu setiap hari atau setiap waktu dalam sehari, Anda mungkin perlu meningkatkan batas QPS untuk lisensi Google Maps APIs Premium Plan Anda. Untuk meminta peningkatan QPS, hubungi Sales Account Manager Google Maps APIs Anda.