Panduan Pengoptimalan

Strategi Pengoptimalan

Keamanan

Tinjau praktik terbaik keamanan

Kunci API adalah kredensial berorientasi project yang memerlukan tindakan pencegahan yang sama seperti ID pengguna dan sandi. Pastikan untuk meninjau Praktik Terbaik Kunci API guna mengamankan kunci Anda dari penggunaan yang tidak diinginkan, yang dapat menyebabkan penggunaan kuota yang tidak semestinya dan tagihan yang tidak terduga pada akun Anda.

Gunakan kunci API untuk mengakses Maps API

Kunci API adalah metode autentikasi pilihan untuk mengakses Google Maps Platform API. Meski Client ID lama tetap didukung, kunci API mendukung kontrol keamanan yang lebih terperinci dan dapat disesuaikan dengan alamat web, alamat IP, dan SDK seluler (Android dan iOS) tertentu. Untuk informasi tentang cara membuat dan mengamankan kunci API, baca dokumen "Mendapatkan Kunci API" untuk setiap API atau SDK yang Anda gunakan (misalnya, untuk Maps JavaScript API, lihat Mendapatkan Kunci API).

Performa

Gunakan backoff eksponensial untuk menangani error

Jika aplikasi Anda mengalami error karena upaya berlebihan untuk memanggil API dalam waktu singkat, seperti error QPS, pertimbangkan untuk menggunakan backoff eksponensial agar permintaan dapat diproses.

Khususnya, Anda dapat menyesuaikan kecepatan kueri. Pada kode Anda, tambahkan waktu tunggu selama S detik di antara kueri. Jika kueri masih menampilkan error QPS, gandakan waktu tunggu, lalu kirim kueri lain. Terus sesuaikan waktu tunggu dengan menggandakannya hingga kueri tidak menampilkan error.

Kirim permintaan interaksi pengguna sesuai permintaan

Permintaan ke API yang menyertakan interaksi pengguna hanya boleh dikirim sesuai permintaan. Ini berarti menunggu pengguna akhir melakukan tindakan (seperti saat diklik) untuk memicu permintaan API, lalu menggunakan hasilnya untuk memuat peta, menetapkan tujuan, atau menampilkan informasi yang sesuai. Menggunakan metode sesuai permintaan akan menghindari permintaan yang tidak perlu ke API, sehingga mengurangi pemakaian API.

Hindari menampilkan konten overlay saat peta digeser

Hindari penggunaan metode Draw() untuk menampilkan konten overlay kustom pada peta secara bersamaan saat pengguna mungkin menggeser peta. Karena peta digambar ulang setiap kali pengguna menggerakkan peta, menempatkan konten overlay pada peta dalam waktu yang sama dapat menyebabkan keterlambatan atau ketersendatan visual. Tambahkan atau hapus konten overlay dari peta hanya saat pengguna berhenti menggeser atau memperbesar/memperkecil peta.

Hindari pengoperasian intensif dalam metode Gambar

Sebagai aturan umum, sebaiknya hindari pengoperasian non-gambar dengan performa intensif di metode Draw(). Misalnya, hindari hal berikut di kode metode Draw() Anda:

  • Kueri yang menampilkan banyak konten.
  • Banyak perubahan pada data yang ditampilkan.
  • Memanipulasi banyak elemen Document Object Model (DOM).

Pengoperasian ini dapat memperlambat performa dan menyebabkan keterlambatan atau ketersendatan visual saat peta dirender.

Gunakan gambar raster untuk penanda

Gunakan gambar raster, seperti gambar dalam format .PNG atau .JPG saat menambahkan penanda untuk mengidentifikasi lokasi pada peta. Hindari penggunaan gambar Scalable Vector Graphics (SVG). Merender gambar SVG dapat menyebabkan keterlambatan saat peta digambar ulang.

Buat cluster untuk mengelola tampilan penanda

Untuk membantu Anda mengelola tampilan penanda guna mengidentifikasi lokasi di peta, buat cluster penanda menggunakan library Pengelompok Penanda. Library Pengelompok Penanda menyertakan opsi untuk:

  • Ukuran petak, yang memungkinkan Anda menentukan jumlah penanda untuk dikelompokkan bersama dalam sebuah cluster.
  • Zoom maksimum, yang memungkinkan Anda menentukan tingkat maksimum zoom untuk menampilkan cluster.
  • Jalur gambar yang digunakan oleh gambar grafis sebagai ikon penanda.

Pengoptimalan Pemakaian

Pantau dan batasi pemakaian

Untuk membantu merencanakan anggaran dan mengontrol biaya, Anda dapat melakukan hal berikut:

  • Tetapkan pemberitahuan anggaran, untuk melacak pengeluaran yang mendekati jumlah tertentu. Menetapkan anggaran tidak membatasi penggunaan API, tetapi hanya memberi tahu Anda saat jumlah pengeluaran mendekati jumlah yang ditentukan.
  • Batasi penggunaan API harian, untuk mengelola biaya penggunaan API yang dapat ditagih. Dengan menetapkan batas pada permintaan per hari, Anda dapat membatasi pengeluaran. Gunakan persamaan sederhana untuk menentukan batas harian, bergantung pada jumlah yang ingin Anda keluarkan. Contoh: (Pengeluaran bulanan / harga per satuan )/30 = batas permintaan per hari (untuk satu API). Perhatikan bahwa penerapan mungkin menggunakan beberapa API yang dapat ditagih, jadi sesuaikan persamaan seperlunya. Ingat, kredit Google Maps Platform senilai $200 USD tersedia setiap bulan, jadi pastikan Anda memasukkannya dalam perhitungan.

Peta

Penggunaan satu peta per halaman adalah cara yang baik untuk mengoptimalkan tampilan peta. Pengguna biasanya berinteraksi dengan satu peta dalam satu waktu. Aplikasi Anda dapat memanipulasi peta untuk menampilkan kumpulan data yang berbeda, bergantung pada interaksi dan kebutuhan pelanggan.

Pertimbangkan menggunakan gambar statis

Biaya untuk permintaan yang menggunakan citra dinamis (Dynamic Maps dan Dynamic Street View) lebih besar dibandingkan dengan Static Maps dan Static Street View. Jika Anda tidak memperkirakan interaksi pengguna dengan Peta atau Street View (memperbesar/memperkecil atau geser), pertimbangkan untuk menggunakan versi statis API ini.

Thumbnail, peta dan foto yang sangat kecil, adalah penggunaan lain yang baik untuk Static Maps dan Static Street View. Item ini ditagih dengan tarif yang lebih rendah dan setelah interaksi pengguna terjadi (saat diklik), item tersebut dapat menghasilkan versi dinamis untuk pengalaman Google Maps yang lengkap.

Pertimbangkan menggunakan Maps Embed API

Anda dapat menggunakan Maps Embed API untuk menambahkan peta dengan satu penanda, atau peta dinamis, secara gratis. Gunakan Maps Embed API untuk aplikasi yang memerlukan satu penanda dan tidak memerlukan penyesuaian peta. Permintaan Maps Embed API yang menggunakan mode Rute, mode Tampilan, atau mode Penelusuran kini akan ditagih (lihat tabel harga untuk detailnya).

Gunakan SDK peta seluler untuk aplikasi seluler

Untuk aplikasi seluler, gunakan Maps SDK for Android atau Maps SDK for iOS saat menampilkan peta. Gunakan Maps Static API atau Maps JavaScript API saat persyaratan tidak mengizinkan penggunaan SDK seluler.

Rute

Batasi waypoint Directions API

Jika memungkinkan, batasi entri pengguna dalam kueri hingga maksimum 10 waypoint. Permintaan yang berisi lebih dari 10 waypoint ditagih dengan tarif yang lebih tinggi.

Gunakan pengoptimalan Directions API untuk mengoptimalkan pemilihan rute

Permintaan yang menggunakan argumen pengoptimalan waypoint ditagih dengan tarif yang lebih tinggi. Untuk informasi selengkapnya, lihat Mengoptimalkan Waypoint.

Argumen pengoptimalan mengurutkan waypoint untuk memastikan pemilihan rute yang optimal, yang artinya perjalanan dari A ke E lebih baik jika dioptimalkan (A-B-C-D-E) dibandingkan urutan acak rute yang tidak dioptimalkan (seperti A-D-B-C-E).

Menggunakan model traffic real-time di Directions API dan Distance Matrix API

Permintaan Directions API dan Distance Matrix API yang menyertakan model traffic real-time ditagih dengan tarif yang lebih tinggi. Model traffic real-time diaktifkan dengan menetapkan waktu keberangkatan ke now.

Jika model traffic dihilangkan dari permintaan, hasilnya hanya didasarkan pada faktor fisik: jalan, jarak, dan batas kecepatan.

Gunakan Rute Perjalanan & Jalan Terdekat saat data GPS tidak akurat

Fitur Maps Roads API, Rute Perjalanan, dan Jalan Terdekat, disertakan dalam tingkat lanjutan dan ditagih dengan tarif lebih tinggi. Gunakan fitur ini jika data GPS tidak akurat dan Roads API dapat membantu menentukan jalan yang benar. Batas Kecepatan, fitur lain dari Roads API, hanya tersedia untuk pelanggan pelacakan aset.

Ambil sampel lokasi batas kecepatan pada interval 5 hingga 15 menit

Untuk meminimalkan volume panggilan ke layanan Batas Kecepatan Maps Roads API, ambil sampel lokasi aset Anda pada interval 5 sampai 15 menit. Nilai yang tepat bergantung pada kecepatan aset. Jika aset bersifat diam, satu sampel lokasi sudah cukup. Tidak perlu melakukan beberapa panggilan.

Untuk meminimalkan keseluruhan latensi, sebaiknya panggil layanan Batas Kecepatan setelah mengumpulkan beberapa data, daripada memanggil API setiap kali lokasi aset seluler diterima.

Tempat

Gunakan opsi Autocomplete yang sesuai dengan kasus penggunaan Anda

Identifikasi opsi Autocomplete yang lebih sesuai dengan kasus penggunaan Anda, karena keduanya memiliki biaya yang sama. Perbedaannya adalah bagaimana pengguna akhir aplikasi Anda dapat memanfaatkan API.

  • Autocomplete - Per Request: cocok untuk kasus penggunaan yang cukup dengan satu entri, seperti formulir alamat surat yang diisi pengguna.
  • Autocomplete - Per Session: Paling tepat digunakan jika memerlukan beberapa entri, seperti penelusuran untuk hotel atau restoran.

Autocomplete - Per Session memungkinkan hasil yang tidak terbatas, tetapi memerlukan penerapan token untuk memastikan sesi valid. Jika terjadi sesi yang tidak valid, biaya Autocomplete - Per Session diterapkan per ketikan, sehingga dapat menyebabkan penagihan yang lebih tinggi. Untuk informasi selengkapnya tentang fitur ini, lihat Place Autocomplete.

Tampilkan data untuk kolom tertentu dalam permintaan Place Details dan Place Search

Anda dapat menyesuaikan permintaan Place Detail dan Place Search untuk menampilkan data untuk kolom tertentu yang digunakan dalam aplikasi Anda. Kolom ini dibagi ke dalam kategori: Dasar, Kontak, dan Atmosfer. Permintaan yang tidak menentukan kolom mana pun akan menerima data untuk semua kolom.

Penagihan untuk permintaan Place Detail didasarkan pada jenis dan jumlah data yang diminta. Permintaan yang tidak menentukan kolom mana pun akan ditagih dengan tarif penuh. Untuk informasi selengkapnya, lihat Place Details dan Place Search.

Kurangi biaya dengan menggunakan Geocoding API

Jika aplikasi Anda menangani alamat yang diketik pengguna, alamat tersebut terkadang ambigu (tidak lengkap, salah eja, atau berformat buruk). Anda dapat menghindari ambiguitas pada alamat menggunakan Pelengkapan Otomatis. Kemudian, gunakan ID tempat untuk mendapatkan lokasi tempat.

Jika Anda memiliki alamat yang tepat (atau hampir tepat), Anda dapat mengurangi biaya dengan menggunakan Geocoding daripada Pelengkapan Otomatis. Untuk detail selengkapnya, lihat Praktik Terbaik Alamat Geocoding.