Optimizasyon Rehberi

Koleksiyonlar ile düzeninizi koruyun İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.

Bu kılavuzda Google Haritalar API'lerinizin kullanımını güvenlik, performans ve tüketim açısından optimize etmeye yönelik çeşitli stratejiler açıklanmaktadır.

Güvenlik

Güvenlikle ilgili en iyi uygulamaları inceleme

API anahtarları, kullanıcı kimlikleri ve şifreler ile aynı önlemleri hak eden, proje merkezli kimlik bilgileridir. Anahtarlarınızı istenmeden kullanıma karşı korumak için API Güvenliği En İyi Uygulamaları'nı inceleyin. Bu, gereksiz kota kullanımına ve hesabınızda beklenmedik ödemelere neden olabilir.

Maps API'lere erişmek için API anahtarlarını kullanma

API anahtarları, Google Haritalar API'leri API'lerine erişmek için tercih edilen kimlik doğrulama yöntemidir. İstemci kimlikleri kullanımı şu anda hâlâ desteklense de API anahtarları, daha ayrıntılı güvenlik kontrollerini destekler ve belirli web adresleri, IP adresleri ve mobil SDK'larla (Android ve iOS) çalışacak şekilde ayarlanabilir. API anahtarı oluşturma ve güvenlik altına alma hakkında bilgi edinmek için her API veya SDK'nın "API Anahtarı Kullanma" sayfasına gidin. (Örneğin, Maps JavaScript API için API Anahtarı Kullanma sayfasını ziyaret edin.)

Performans

Hataları işlemek için eksponansiyel geri yükleme kullanma

Uygulamalarınız kısa bir süre içinde QPS hataları gibi bir API'yi çağırmaya çalışırken aşırı sayıda hata nedeniyle hatayla karşılaşırsa isteklerin işlenmesi için üstel geri çekilme kullanmayı deneyin.

Üstel geri yükleme en çok 500'lerdeki hatalar için yararlıdır. Daha fazla bilgi için HTTP iade durum kodlarını kullanma bölümüne göz atın.

Sorgularınızın hızını özellikle ayarlayabilirsiniz. Kodunuzda, sorgular arasına S saniyelik bir bekleme süresi ekleyin. Sorgu QPS hatası ile sonuçlanmaya devam ediyorsa bekleme süresini iki katına çıkarıp başka bir sorgu gönderin. Sorgu hatasız olarak dönene kadar bekleme süresini ayarlamaya devam edin.

İsteğe bağlı kullanıcı etkileşimi istekleri gönderme

Kullanıcı etkileşimini içeren API'lere yapılan istekler yalnızca isteğe bağlı olarak gönderilmelidir. Bu, son kullanıcının API isteğini başlatmak için bir işlem (on-click gibi) gerçekleştirmesini beklemek, ardından sonuçları yüklemek için harita kullanmak, hedef ayarlamak veya uygun bilgileri görüntülemek anlamına gelir. İsteğe bağlı yaklaşım kullanmak, API'lere yapılan gereksiz istekleri engeller ve API tüketimini azaltır.

Bir harita hareket ederken yer paylaşımlı içeriği görüntülemekten kaçınma

Draw() Bir harita her hareket ettiğinde harita yeniden çizildiği için, aynı anda haritaya bindirme içeriği yerleştirmek gecikmeye veya görsel olarak takılmaya neden olabilir. Bir harita üzerinde yer paylaşımı içeriği eklemek veya kaldırmak için yalnızca kullanıcı kaydırmayı veya yakınlaştırmayı durdurduktan sonra olmalıdır.

Draw yöntemlerle yoğun işlemlerden kaçınma

Genel bir kural olarak, Draw() yönteminde yoğun şekilde çizim içermeyen işlemlerden kaçınmak iyi bir uygulamadır. Örneğin, Draw() yöntem kodunuzda aşağıdaki kodlardan kaçının:

  • Büyük miktarda içerik döndüren sorgular.
  • Gösterilen verilerde yapılan birçok değişiklik.
  • Çok sayıda Doküman Nesne Modeli (DOM) öğesini manipüle ediyor.

Bu işlemler performansı yavaşlatabilir ve harita görüntülendiğinde gecikme veya görsel olarak takılma olabilir.

İşaretçiler için raster resimleri kullanma

Haritadaki bir konumu tanımlamak için işaretçiler eklerken, .PNG veya .JPG biçimindeki resimler gibi raster resimler kullanın. SVG resimlerinin oluşturulması harita yeniden çizildiğinde gecikme yaşanmasına neden olabileceğinden Ölçeklenebilir Vektör Grafiği (SVG) resimleri kullanmaktan kaçının.

İşaretçileri optimize etme

Optimizasyon, çok sayıda işaretçiyi tek bir statik öğe olarak oluşturarak performansı artırır. Bu seçenek çok sayıda işaretçinin gerekli olduğu durumlarda yararlıdır. Varsayılan olarak, Maps JavaScript API, bir işaretçinin optimize edilip edilmeyeceğini belirler. Çok sayıda işaretçi olduğunda Haritalar JavaScript API'si, işaretçileri optimizasyonla oluşturmaya çalışır. Tüm İşaretçiler optimize edilemez. Bazı durumlarda Maps JavaScript API'nin, İşaretçileri optimizasyon olmadan oluşturması gerekebilir. Animasyonlu GIF veya PNG için veya her bir işaretçinin ayrı bir DOM öğesi olarak oluşturulması gerektiğinde optimize edilmiş oluşturmayı devre dışı bırakın.

İşaretçi görüntülemesini yönetmek için küme oluşturma

Bir haritada konumları tanımlayacak işaretçilerin görünümünü yönetmeye yardımcı olması için İşaretçi Kümeleyicisi kitaplığını kullanarak bir işaretçi kümesi oluşturun. İşaretçi Kümeleyici kitaplığı için aşağıdaki seçenekler bulunur:

  • Izgara boyutu (kümede gruplandırılacak işaretçi sayısını belirtir).
  • Kümenin görüntüleneceği maksimum yakınlaştırma düzeyini belirtmek için maksimum yakınlaştırma.
  • Grafik resimlerinin işaretçi simgeleri olarak kullanılması için resim yolları.

Tüketim

Bütçenizi planlamak ve maliyetlerinizi kontrol etmek için aşağıdakileri yapın:

  • Maliyetlerinizin belirli bir tutara doğru nasıl arttığını izlemek için bütçe uyarısı belirleyin. Bütçe belirlemek API kullanımını sınırlamaz. Yalnızca maliyetleriniz belirttiğiniz tutara yaklaştığında sizi uyarır.
  • Faturalandırılabilir API'lerin maliyetlerini yönetmek için günlük API kullanımınızı sınırlar. Günlük istek sayısı için sınır belirleyerek maliyetlerinizi sınırlandırabilirsiniz. Ne kadar harcamak istediğinize bağlı olarak günlük sınırınızı belirlemek için basit bir denklem kullanın: (aylık maliyet/her biri için fiyat)/30 = günlük istek sayısı (bir API için). Özel uygulamanızda birden fazla faturalandırılabilir API kullanılabilir. Bu nedenle, denklemi gereken şekilde ayarlayın. Her ay 200 ABD doları değerinde Google Haritalar API'si kredisi kullanabileceğiniz için bunu hesaplamalarınıza dahil edin.
  • Kullanımınızı izole etmek, önceliklendirmek ve izlemek için birden fazla proje kullanın. Örneğin, testlerinizde Google Haritalar Platformu API'lerini düzenli olarak kullandığınızı varsayalım. Testleriniz için kendi kotaları ve API anahtarları olan ayrı bir proje oluşturarak aşırı harcamaya karşı koruma sağlarken kapsamlı bir şekilde test yapabilirsiniz.

Haritalar'da tüketimi yönetme

Kullanıcılar genellikle tek seferde yalnızca bir haritayla etkileşimde bulunur. Bu nedenle, sayfa başına tek bir harita kullanmak, harita görünümünü optimize etmenin iyi bir yoludur. Uygulamanız, müşteri etkileşimine ve ihtiyaçlarına bağlı olarak farklı veri kümeleri görüntülemek için haritayı değiştirebilir.

Statik resimler kullanma

Dinamik görüntüler (Dinamik Haritalar ve Dinamik Street View) kullanan isteklerin maliyeti, Statik Haritalar ve Statik Street View'dan daha yüksektir. Harita veya Street View (yakınlaştırma veya kaydırma) ile kullanıcı etkileşimini beklemiyorsanız bu API'lerin statik sürümlerini kullanın.

Küçük resimler (çok küçük haritalar ve fotoğraflar) Statik Haritalar ve Statik Street View için bir başka kullanım alanıdır. Bu öğeler, daha düşük ücretle ve kullanıcı etkileşimiyle (tıklamayla) faturalandırılır ve tam Google Haritalar deneyimi için kullanıcıları dinamik sürüme yönlendirebilir.

Maps Yerleştirme API'sını Kullanma

Haritalar aracılığıyla tek bir işaretçi veya dinamik harita içeren bir haritayı ücretsiz olarak ekleyebilirsiniz. Harita özelleştirme gerektirmeden tek bir işaretçinin kullanıldığı uygulamalar için Maps Yerleştirme API'sini kullanın. Yol Tarifi modunu, Görünüm modunu veya Arama modunu kullanan Haritalar Yerleştirme API'leri istekleri faturalandırılır (ayrıntılar için fiyatlandırma tablosuna bakın).

Mobil uygulamalar için mobil haritalar SDK'larını kullanma

Mobil uygulamalarda bir harita gösterirken Android için Haritalar SDK'sını veya iOS için Haritalar SDK'sını kullanın. Mobil SDK'lar gerektiren şartlar sınırlandığında Maps Static API'yi veya Maps JavaScript API'yi kullanın.

Rotalarda tüketimi yönetme

Directions API referans noktalarını sınırlama

Mümkün olduğunda, bir sorgudaki kullanıcı girişlerini en fazla 10 ara noktayla sınırlayın. 10'dan fazla ara nokta içeren istekler daha yüksek bir ücretle faturalandırılır.

Optimum yönlendirme için Directions API optimizasyonunu kullanma

Ara nokta optimizasyon bağımsız değişkenini kullanan istekler daha yüksek ücretle faturalandırılır. Daha fazla bilgi için Referans Noktalarını Optimize Etme bölümüne bakın.

Optimizasyon bağımsız değişkeni, en iyi yönlendirmenin sağlanması için ara noktaları sıralar. Yani optimize edilmiş bir rotadan (A-D-B-C-E gibi) rastgele sıralamaya (A-B-C-D-E) göre A'dan E'ye seyahat, daha iyi bir deneyimdir.

Directions API ve DISTANCE Matrix API'de gerçek zamanlı trafik modelleri kullanma

Gerçek zamanlı trafik modelleri içeren Directions API ve DISTANCE Matrix API istekleri, daha yüksek ücretle faturalandırılır. Gerçek zamanlı trafik modelleri, kalkış saati now olarak ayarlanarak etkinleştirilir.

Trafik modelleri bir istekten çıkarılırsa sonuçlar yalnızca fiziksel unsurlara (yollar, mesafe ve hız sınırları) dayanır.

GPS verileri kesin olmadığında Seyahat Edilen Rota ve En Yakın Yol'u kullanma

Maps Roads API özellikleri, Route Traveled ve Nearest Road özellikleri, gelişmiş katmana dahildir ve daha yüksek ücretle faturalandırılır. GPS verilerinin kesin olmadığı ve Roads API'nin doğru yolu belirlemeye yardımcı olabileceği bu özellikleri kullanın. Roads API'nin bir diğer özelliği olan Hız Sınırları ise yalnızca Öğe İzleme müşterilerine sunulur.

5-15 dakikalık aralıklarla örnekleme hız sınırı konumları

Maps Roads API Hız Sınırı hizmetine yapılan aramaların hacmini en aza indirmek için öğelerinizin konumlarını 5 ila 15 dakikalık aralıklarla örnekleyin. Kesin değer, öğenin seyahat etme hızına bağlıdır. Bir öğe sabitse tek bir konum örneği yeterlidir. Birden fazla arama yapmanız gerekmez.

Genel gecikmeyi en aza indirmek için, bir mobil öğenin konumu her alındığında API'yi çağırmak yerine, bazı verileri topladıktan sonra Hız Sınırı hizmetini çağırın.

Yerler'de tüketimi yönetme

Otomatik Yer Tamamlama uygulamalarını optimize etme

Otomatik Yer Tamamlama maliyetini kullanmanın maliyetini optimize etmek için:

  • JavaScript, Android ve iOS Otomatik Tamamlama widget'larında alan maskeleri kullanarak yalnızca ihtiyacınız olan Yer Verisi Alanları'nı döndürün.

  • faturalandırma seçeneklerini kullanım alanınıza bağlı olarak değiştirebilirsiniz. Uygulamanızın Otomatik tamamlama oturumları kullanıp kullanmadığına bağlı olarak Otomatik Tamamlama - İstek Başına veya Otomatik Tamamlama - Oturum Başına SKU'ları için ücretlendirilirsiniz.

Kullanım alanınız için doğru seçeneğin belirlenmesine ilişkin daha fazla bilgi ve rehberlik için Otomatik tamamlama maliyet optimizasyonuyla ilgili en iyi uygulamaları kullanma başlıklı makaleyi inceleyin.

Yer Ayrıntıları ve Yer Arama isteklerindeki belirli alanlar için veri döndürme

Uygulamanızda kullanılan belirli alanlara ait verileri döndürmek için Yer Ayrıntıları ve Yer Arama isteklerini özelleştirebilirsiniz. Bu alanlar Temel, İletişim ve Atmosfer olmak üzere kategorilere ayrılır. Herhangi bir alan belirtilmeyen istekler, tüm alanlarla ilgili verileri alır.

Yer Ayrıntıları istekleri için faturalandırma, istenen veri türlerini ve miktarlarını temel alır. Herhangi bir alan belirtilmeyen istekler tam ücret üzerinden faturalandırılır. Daha fazla bilgi için Yer Ayrıntıları ve Yer Arama konularına bakın.

Geocoding API'yi kullanarak maliyetleri azaltma

Uygulamanız kullanıcı tarafından yazılan adresleri işliyorsa adresler bazen belirsiz (eksik, yanlış yazılmış veya kötü biçimlendirilmiş) olabilir. Otomatik Tamamlama'yı kullanarak adresleri belirsizleştirin, ardından yer konumlarını elde etmek için yer kimliklerini kullanın.

Ancak, tam bir adresiniz varsa (veya bu adrese yakınsa) Otomatik Tamamlama yerine Coğrafi Kodlamayı kullanarak maliyetleri azaltabilirsiniz. Daha fazla bilgi için Coğrafi Kodlama Adresleri ile İlgili En İyi Uygulamalar bölümüne bakın.

Google Haritalar Platformu kotalarının işleyiş şekli

Tüm API'lerimizde her müşterinin yapabileceği arama sayısı sınırlıdır. Bu kotalar her dakika için yapılandırılır. Bir dakika içinde belirli bir API'de çağrı kotasına ulaştığınızda, sonraki aramalar bir sonraki dakikaya kadar kabul edilmez.

Yalnızca başarılı istekler ve sunucu hatalarına neden olan istekler kotaya dahil edilir. Kimlik doğrulamasında başarısız olan istekler kotaya dahil edilmez.

Bazı Haritalar API'leri, dakika başına kota yaptırımının yanı sıra saniye başına yaptırım uygular. Bu saniye başına yaptırım, tüm dakika boyunca tek tip kullanımı garanti etmez ve söz konusu dakika boyunca kullanım kotanıza ulaşmanızı engellemez. Herhangi bir dakikanın bir veya ikisinde bir kotanın tamamını kullanmanızı önler ve ani kullanım artışları yaşanması halinde sizi hizmet kesintilerinden korur. Bu yaptırım farklılıklarıyla başa çıkmak için QPS genelinde QPM ortalamanızı alarak kota kullanımınızı ve gereksinimlerinizi planlayın.

Saniye başına bu yaptırıma sahip olan GMP API'leri arasında Directions API, DISTANCE Matrix API, Elevation API, Geocoding API, Places API ve Roads API bulunur.

Toplam istek hacminize bağlı olarak herhangi bir GMP API ürününün maliyetini tahmin edin.