Bloga geri dön

Google Maps API için Proxy: Anahtarların Engellenmeden İşletme Verilerini Coğrafi Kodlama ve Parse Etme

Google Maps API ile çalışıyor ve anahtar blokajları veya limit aşımı ile mi karşılaşıyorsunuz? Bu makalede, anahtar kaybetmeden coğrafi kodlama ve işletme verileri toplamak için proxy'leri nasıl doğru kullanacağınızı inceleyeceğiz.

📅11 Mayıs 2026
```html

Google Maps API — adreslerin geocoding'i, organizasyonların aranması ve yerel işletmeler hakkında veri toplamak için güçlü bir araçtır. Ancak, endüstriyel ölçekte çalışmaya başladığınızda, anahtar engellemeleri, limit aşımı ve şüpheli talepler ortaya çıkmaktadır. Bu makalede, bunun neden olduğunu ve anahtarların yanmaması ve verilerin istikrarlı bir şekilde toplanması için proxy'yi nasıl ayarlayacağınızı inceleyeceğiz.

Google Maps API neden anahtarları ve talepleri engelliyor

Bir IP adresinden veya bir anahtardan yüzlerce veya binlerce talep gönderdiğinizde, Google bunu anormal bir aktivite olarak algılar. Koruma sistemi, aynı anda birkaç kritere göre çalışır: talep sıklığı, IP coğrafyası, davranış kalıpları ve anahtarın geçmişi.

İşte anahtarların kısıtlamalar veya tamamen yasaklanmasının başlıca nedenleri:

  • Günlük talep limitinin aşılması — her anahtarın bir kotası vardır ve bu kota dolduğunda API OVER_QUERY_LIMIT hatası döner.
  • Bir IP'den yüksek talep sıklığı — limitler içinde bile Google, çok hızlı ardışık talepleri otomasyon olarak kaydeder.
  • Bir IP için birden fazla anahtar — anahtarları döndürseniz bile IP'yi döndürmüyorsanız, Google bunları tek bir oturumda birleştirir.
  • IP ve anahtarın coğrafi uyumsuzluğu — anahtar bir ülkede kaydedilmişken, talepler başka bir ülkeden geliyorsa bu şüphe uyandırır.
  • Talepler arasında gecikme olmaması — makine kalıpları duraksama olmadan hemen tespit edilir.
  • Maskeleme olmadan veri merkezi IP'lerinin kullanılması — Google, bulut sağlayıcılarının (AWS, GCP, Azure) IP aralıklarını iyi bilir ve bunlar için kontrol seviyesini artırır.

Önemli olan şu: Google Maps API, ücretli bir üründür ve Google bunu yalnızca kötüye kullanımlara karşı değil, aynı zamanda faturalandırmayı aşmaya karşı da korur. Bu nedenle, burada tespit sistemi, örneğin, normal web aramalarına göre çok daha serttir. Bir anahtarın engellenmesi, verilere erişimin kaybı ve yeni bir Google Cloud hesabı oluşturma gerekliliği anlamına gelir — bu da başlı başına zaman alıcıdır.

Bilmeniz gerekenler

Google yalnızca IP adresini değil, aynı zamanda User-Agent'ı, talep başlıklarını, talepler arasındaki süreyi ve kullanılan uç noktaların kalıbını da izler. Proxy, anahtarları korumak için gerekli ama tek başına yeterli bir unsurdur.

Kimler ve neden Google Maps API'yi işte kullanıyor

Teknik detaylara geçmeden önce, gerçek kullanım senaryolarını inceleyelim. Bu, belirli bir görev için doğru proxy türünü ve döngü stratejisini seçmeye yardımcı olacaktır.

Toplu adres geocoding'i

Lojistik şirketleri, emlak toplayıcıları ve teslimat pazar yerleri düzenli olarak binlerce metin adresini koordinatlara dönüştürmektedir. Örneğin, rotalar oluşturmak için 50.000 müşteri adresinin yüklendiği bir veritabanında. Geocoding API bunu otomatikleştirmeye olanak tanır, ancak kısa bir süre içinde bir anahtardan 50.000 talep — engellemeye giden doğrudan bir yoldur.

Yerel işletmeler hakkında veri toplama (Places API)

Pazarlama ajansları, lead üreticileri ve şirket veri tabanları, organizasyonlar hakkında bilgi toplamak için Places API'yi kullanır: isimler, telefonlar, web siteleri, puanlar, çalışma saatleri, yorumlar. Tipik bir görev — birkaç şehirdeki tüm restoranları, diş kliniklerini veya otomobil servislerini toplamak ve ardından arama veya e-posta göndermektir.

Rakiplerin izlenmesi ve coğrafi analiz

Perakendeciler, kendi bölgelerinde rakiplerin yeni noktalarını takip eder. Franchise zincirleri, yeni mağazalar için potansiyel lokasyonları analiz eder. Reklam ajansları, coğrafi hedeflemenin nasıl göründüğünü kontrol eder — belirli bir şehir veya bölgede sonuçların nasıl olduğunu.

CRM verilerini zenginleştirme

SaaS ürünleri ve B2B hizmetleri, CRM'deki şirket kartlarını otomatik olarak zenginleştirir: koordinatları ekler, adreslerin geçerliliğini kontrol eder, Google Business Profile'dan verileri çeker. Bu, otomatik modda API'ye düzenli arka plan talepleri gerektirir.

Tüm bu senaryoları birleştiren şey: yüksek talep sıklığı, bu olmadan engellemeler kaçınılmazdır. Çözüm yaklaşımı ise göreve bağlı olarak değişir.

Google Maps API ile çalışmak için hangi proxy'ler uygundur

Proxy türünün seçimi, çalışma istikrarını ve engellenme olasılığını doğrudan etkiler. Google Maps API görevlerine uygun üç ana seçeneği inceleyelim.

Proxy Türü Güvenilirlik Hız Fiyat En iyi için
Konut Proxy'leri ★★★★★ ★★★☆☆ Yüksek Places API'den veri toplama, hassas bölgelerde geocoding
Mobil Proxy'ler ★★★★★ ★★★★☆ Yüksek Maksimum güvenilirlik, uzun vadeli görevler
Veri Merkezi Proxy'leri ★★★☆☆ ★★★★★ Düşük Düşük hassasiyetle toplu geocoding

Konut Proxy'leri — çoğu görev için en iyi seçim

Konut proxy'leri, gerçek ev kullanıcılarının IP adreslerini kullanır. Google için, bunlar tarayıcıda haritaları açan sıradan insanlar gibi görünür. Bu, onları Places API ile yüksek talep sıklığıyla çalışmak için en güvenli seçenek haline getirir. Büyük bir IP havuzu, her talep veya birkaç talep başına döngü yapmayı mümkün kılar — Google bunları tek bir oturumda birleştiremez.

Mobil Proxy'ler — maksimum güvenilirlik gerektiğinde

Mobil IP'ler, hücresel operatörlerden gelen özel bir durumdur. Bir mobil IP, NAT üzerinden birçok cihaz tarafından gerçekten kullanılır, bu nedenle Google, yüksek aktivite durumunda bile bu adresleri çok nadir engeller. Göreviniz kritik öneme sahipse ve kesinti olmaması gerekiyorsa — mobil proxy'ler maksimum istikrar sağlar. Dezavantajı — daha yüksek fiyat ve daha küçük bir adres havuzudur.

Veri Merkezi Proxy'leri — yalnızca hassas olmayan görevler için

Sunucu proxy'leri hızlı ve ucuzdur, ancak Google Maps API bunlara yüksek şüpheyle yaklaşır. Eğer bunları, orta sıklıkta ve iyi bir döngü ile büyük miktarda adresin geocoding'i için kullanıyorsanız — çalışabilirler. Ancak Places API'den veri toplama veya sert kısıtlamaların olduğu bölgelerde çalışma için anahtarın engellenme riski önemli ölçüde daha yüksektir.

Geocoding için proxy ayarlama: adım adım kılavuz

Geocoding API örneği üzerinden pratik ayarlamayı inceleyelim — en yaygın senaryo. Görev: 10.000 adres listesini anahtar engellenmeden koordinatlara dönüştürmek.

Adım 1. Altyapıyı hazırlayın

Öncelikle anahtar ve proxy sayısını belirleyin. Temel kural: bir anahtar — bir IP havuzu. Farklı anahtarlar için aynı proxy havuzunu kullanmayın — Google bunları davranış kalıplarına göre birleştirebilir. 10.000 adresli bir görev için en az 2-3 Google Cloud anahtarı ve 50'den fazla konut IP havuzuna sahip olmanız önerilir.

Adım 2. IP döngüsünü ayarlayın

Geocoding için en iyi strateji, her 10-20 talepte bir IP değiştirmektir, her talepte değil. Çok sık IP değiştirmek de şüpheli görünebilir. Çoğu konut proxy sağlayıcısı, belirli bir aralıkta otomatik olarak IP değiştiren bir dönen uç nokta sağlar — bunu kullanın, manuel geçiş yapmayın.

Python — proxy üzerinden talep için temel örnek

import requests

GOOGLE_API_KEY = "ANAHTARINIZ"
PROXY_HOST = "rotating.proxyprovider.com"
PROXY_PORT = "8080"
PROXY_USER = "kullanıcı_adı"
PROXY_PASS = "şifre"

proxies = {
    "http":  f"http://{PROXY_USER}:{PROXY_PASS}@{PROXY_HOST}:{PROXY_PORT}",
    "https": f"http://{PROXY_USER}:{PROXY_PASS}@{PROXY_HOST}:{PROXY_PORT}"
}

def geocode_address(address):
    url = "https://maps.googleapis.com/maps/api/geocode/json"
    params = {
        "address": address,
        "key": GOOGLE_API_KEY,
        "language": "tr"
    }
    response = requests.get(url, params=params, proxies=proxies, timeout=10)
    return response.json()

# Kullanım örneği
result = geocode_address("Moskova, Tverskaya Caddesi, 1")
print(result["results"][0]["geometry"]["location"])

Adım 3. Talepler arasında gecikmeler ekleyin

Asla talepleri "mümkün olduğunca hızlı" modda göndermeyin. Talepler arasında 0.5 ile 2 saniye arasında rastgele bir gecikme ekleyin. Rastgelelik önemlidir — sabit bir aralık (örneğin, tam 1 saniye) de makine kalıbı gibi görünür. Python'da bu, time.sleep(random.uniform(0.5, 2.0)) ile gerçekleştirilir.

Adım 4. Talep başlıklarını doğru ayarlayın

Google Maps API talepleri, gerçekçi bir User-Agent içermelidir. Teknik olarak API, tarayıcı User-Agent'ı gerektirmese de, bunun olmaması veya standart Python User-Agent'ı, tespit olasılığını artırır. Gerçek bir tarayıcıyı taklit eden User-Agent kullanın ve bunu bir oturum içinde çok sık değiştirmeyin.

Adım 5. Hataları ve yeniden denemeleri işleyin

Yanıt durumlarının doğru bir şekilde işlenmesini uygulayın. OVER_QUERY_LIMIT hatası alırsanız — 60 saniye bekleyin ve IP'yi değiştirin. REQUEST_DENIED hatası alırsanız — anahtar engellenmiştir, yedek anahtara geçin. ZERO_RESULTS hatası alırsanız — sorun adresle ilgilidir, proxy ile değil.

Places API ile proxy üzerinden işletme verilerini toplama

Places API, Geocoding API'den çok daha hassas bir uç noktadır. Google, ona yapılan toplu taleplerin ana amacının ticari verilerin toplanması olduğunu anlıyor, bu nedenle koruma burada daha sıkıdır. Onunla çalışmanın doğru yaklaşımını inceleyelim.

Places API üzerinden veri toplama stratejisi

Places API, iki ana yöntemle çalışır: Nearby Search (koordinatlara ve yarıçapa göre arama) ve Text Search (metin sorgusuna göre arama). Büyük bir alanı kapsamak için, bölgeyi üst üste binen hücrelere ayırarak ve her hücreyi sırayla gezerek bir ızgara yöntemi kullanılır.

Anahtar bir özellik: Places API, bir arama başına maksimum 60 sonuç döner (20 sonuçtan 3 sayfa). Eğer alanda 60'tan fazla nesne varsa — arama yarıçapını azaltmak ve ızgara yoğunluğunu artırmak gerekir. Bu otomatik olarak talep sayısını artırır, bu da proxy döngüsünü kritik hale getirir.

Python — proxy üzerinden Places API'ye sayfalama ile talep

import requests
import time
import random

def search_places_nearby(lat, lng, radius, place_type, api_key, proxies):
    results = []
    url = "https://maps.googleapis.com/maps/api/place/nearbysearch/json"
    
    params = {
        "location": f"{lat},{lng}",
        "radius": radius,
        "type": place_type,
        "key": api_key,
        "language": "tr"
    }
    
    while True:
        response = requests.get(url, params=params, proxies=proxies, timeout=15)
        data = response.json()
        
        if data.get("status") == "OVER_QUERY_LIMIT":
            print("Talep limiti — 60 saniye bekleyin")
            time.sleep(60)
            continue
            
        results.extend(data.get("results", []))
        
        # Sonraki sayfa için token
        next_token = data.get("next_page_token")
        if not next_token:
            break
            
        # Sonraki sayfa için zorunlu bekleme (Google'ın gereksinimi)
        time.sleep(random.uniform(2.0, 3.5))
        params = {"pagetoken": next_token, "key": api_key}
    
    return results

Detaylı verileri Place Details ile alma

Nearby Search veya Text Search ile place_id listesini aldıktan sonra, her yer için telefon, web sitesi, çalışma saatleri ve yorumları almak için ayrı bir Place Details talebi yapmanız gerekir. Bu, talep sayısını iki katına çıkarır. Burada IP döngüsü özellikle önemlidir — her Place Details talebini havuzdan yeni bir adresle yapmak daha iyidir.

Yalnızca gerekli alanları fields parametresi ile talep edin. Bu, talep maliyetini düşürür ve iletilen veri miktarını azaltır, bu da talep kalıplarını trafik hacmi açısından daha az şüpheli hale getirir.

Anahtar ve IP döngüsü: istikrarlı çalışma nasıl sağlanır

Google Maps API ile profesyonel çalışma, yalnızca proxy değil, aynı zamanda anahtarlar ve IP'lerin yönetimi için sistematik bir yaklaşım gerektirir. İşte doğru bir şekilde yapılandırılmış bir altyapının görünümü.

Google Cloud anahtar havuzu

Google Cloud Console'da birkaç proje oluşturun — ciddi görevler için en az 3-5. Her proje kendi API anahtarını alır. Anahtarlar arasında yükü eşit şekilde dağıtın: günde 10.000 talebiniz varsa ve 5 anahtarınız varsa, her anahtar 2.000 talep yapar — bu, şüphe eşiğinin çok altında.

Önemli bir kural: Her anahtarı, proxy havuzunuzdan ayrı bir IP aralığına bağlayın. Anahtar №1 yalnızca A aralığındaki IP'ler üzerinden çalışır, anahtar №2 ise B aralığı üzerinden. Anahtarları ve IP'leri karıştırmak, kitlesel engellemelere yol açan en büyük hatalardan biridir.

Talep programı

Tüm talepleri gece veya mesai saatleri dışında başlatmayın — bu, "normal kullanıcı" için tipik bir kalıp değildir. Görevleri çalışma günü boyunca dağıtın, doğal aktiviteyi taklit edin. Görev birkaç gün sürebiliyorsa — bunu 3-5 gün boyunca ılımlı bir yükle yaymak, her şeyi bir gecede yapmaktan daha iyidir.

Anahtar durumunu izleme

API yanıt durumlarının otomatik izlenmesini uygulayın. Kısıtlamaların ilk belirtilerinde (OVER_QUERY_LIMIT hatalarının artması) bu anahtar için talep sıklığını hemen azaltın ve birkaç saat "dinlenmesine" izin verin. Tam bir engellemeyi beklemeyin — tedavi etmek, önlemekten çok daha zordur.

Mimari önerisi

Places API'den veri toplama için ciddi görevler için, talep sıklığını işçi seviyesinde kontrol eden bir görev kuyruğu (Redis + Celery veya benzeri) kullanmanızı öneririz. Bu, her anahtar için RPS'yi (saniyedeki talepler) tam olarak kontrol etmenizi sağlar ve sorunlar olduğunda otomatik olarak yedek anahtara geçmenizi sağlar.

Google Maps API limitleri ve bunları nasıl aşacağınız

Google Maps API limitlerini anlamak, altyapının planlanması için kritik öneme sahiptir. Limitler iki türdendir: kota limitleri (günde/ayda kaç talep) ve hız limitleri (saniyede kaç talep). Proxy'ler, doğru kullanıldığında her iki türle de yardımcı olur.

API Ücretsiz kota Hız Limiti Limit aşım fiyatı
Geocoding API $200/ay (~40.000 talep) 50 QPS $5 için 1.000
Places API (Nearby Search) $200/ay (~6.600 talep) 100 QPS $32 için 1.000
Places API (Place Details) $200/ay (~3.400 talep) 100 QPS $17–$32 için 1.000
Distance Matrix API $200/ay (~40.000 öğe) 1.000 QPM $5 için 1.000

Dikkat: limitler anahtara bağlıdır, IP'ye değil. Bu nedenle, anahtar döngüsü ile IP döngüsü birlikte çalışmak, API maliyetlerini artırmadan işlerinizi ölçeklendirmenin tek yoludur. Birkaç anahtar, her biri $200 ücretsiz kota ile, toplam ücretsiz talep hacmini önemli ölçüde artırır.

Proxy'ler hız limitleri ile nasıl yardımcı olur

Geocoding API için 50 QPS hız limiti, bir anahtardan saniyede 50'den fazla talep edilmemesi gerektiği anlamına gelir. Proxy'ler bu limiti aşmanıza yardımcı olmaz — bu, anahtara bağlıdır. Ancak, yükü anahtarlar arasında dağıtmaya yardımcı olurlar, böylece her anahtar güvenli bir bölgede kalır (önerilen maksimum hız limitinin %70-80'ini aşmamaktır).

Sık yapılan hatalar ve bunlardan nasıl kaçınılır

Google Maps API ile yıllar içinde, anahtar kaybına yol açan tipik hataların bir listesi oluşmaktadır. Her birini inceleyelim ve somut bir çözüm sunalım.

Hata 1: Bir IP'yi birden fazla anahtar için kullanma

Bu en yaygın hatadır. Anahtarları döndürseniz bile, tüm talepler tek bir proxy veya küçük bir IP havuzundan geliyorsa — Google, farklı anahtarların aynı adresten kullanıldığını görür ve bunları tek bir oturumda birleştirir. Bir anahtar engellendiğinde, diğer tüm anahtarlar da tehlikeye girer.

Çözüm: IP havuzlarını anahtarlar arasında kesinlikle ayırın. Her anahtar yalnızca kendi ayrılmış adres aralığı üzerinden çalışır.

Hata 2: Places API'de sayfalar arasında zorunlu beklemeyi göz ardı etme

Places API, bir sonraki sayfa için pagetoken kullanarak en az 2 saniye beklemeyi gerektirir. Eğer bir sonraki sayfayı hemen talep ederseniz — API boş bir sonuç veya hata döner. Birçok geliştirici bu gereksinimi göz ardı eder ve hatalı veriler alır.

Çözüm: Her zaman bir sonraki sayfa talebinden önce 2-3 saniye bekleme ekleyin. Bu, Google'ın belgelenmiş bir gereksinimidir, isteğe bağlı bir öneri değildir.

Hata 3: Kod içinde korunmasız anahtarlar

Google Maps API anahtarları, GitHub'daki kamuya açık depolara düştüğünde, otomatik olarak botlar tarafından taranır ve kötü niyetli kişiler tarafından kullanılır. Google, anahtar sızıntılarını otomatik olarak tespit eder ve bildirim gönderir, ancak zarar daha önce verilebilir.

Çözüm: Anahtarları çevresel değişkenlerde veya gizli yönetim sistemlerinde (Vault, AWS Secrets Manager) saklayın. Anahtarları asla kaynak koduna hardcode etmeyin. Google Cloud Console'da IP kısıtlamaları ayarlayın — anahtar yalnızca proxy adreslerinizden çalışmalıdır.

Hata 4: Place Details'de tüm alanları talep etme

Varsayılan olarak, Place Details tüm mevcut alanları döner, bunlar arasında maliyetli olanlar (atmosfer, yorumlar) da vardır. Bu, her talebin maliyetini 2-4 kat artırır. Ayrıca, büyük bir yanıt hacmi işleme süresini yavaşlatır.

Çözüm: Her zaman fields parametresini kullanın ve yalnızca gerekli verileri talep edin. Örneğin: fields=name,formatted_phone_number,website,opening_hours,rating.

Hata 5: Ücretsiz veya kamuya açık proxy kullanma

Kamuya açık listelerden alınan ücretsiz proxy'ler, anahtar kaybetmenin kesin yoludur. Bu tür IP'ler, binlerce diğer kullanıcı tarafından zaten kullanılmaktadır ve bunların çoğu, Google'ın koruduğu şeyle tam olarak ilgilenmektedir. Bu tür IP'lerin itibarı son derece düşüktür ve Google bunları önceden engeller.

Çözüm: Yalnızca temiz IP adresleri ve kullanımda özel garanti sunan güvenilir sağlayıcılardan ücretli proxy'ler kullanın.

Başlatmadan önce kontrol listesi

  • ✅ Her anahtar ayrı bir IP havuzuna bağlı
  • ✅ Anahtarlar Google Cloud Console'da IP ile sınırlıdır
  • ✅ Talepler arasında rastgele gecikmeler vardır (0.5–2 saniye)
  • ✅ API hata durumlarının tümü için işleme uygulanmıştır
  • ✅ Anahtarlar çevresel değişkenlerde, kodda değil saklanır
  • ✅ Google Cloud Console'da kota izleme ayarlanmıştır
  • ✅ Taleplerde yalnızca gerekli alanlar kullanılır

Sonuç

Google Maps API ile endüstriyel ölçekte çalışmak, veri toplama hızı ile anahtar güvenliği arasında her zaman bir denge gerektirir. Proxy'ler, IP engellemeleri sorununu çözer, ancak doğru mimariyi (anahtar döngüsü, talep sıklığı kontrolü, hata işleme ve IP havuzlarının görevler arasında ayrılması) değiştirmez.

Makalenin ana çıkarımları: konut proxy'leri döngüsü, Places API ve geocoding ile çoğu görev için uygundur; her anahtar, kendi izole edilmiş adres havuzundan çalışmalıdır; talepler arasında gecikmeler zorunludur; anahtar durumunun izlenmesi otomatikleştirilmelidir.

Google Maps API ile düzenli olarak çalışmayı planlıyorsanız — adresleri geocode etmek, işletme verilerini toplamak veya rakipleri izlemek — konut proxy'lerine dikkat etmenizi öneririz. Bunlar, Google tarafından yüksek bir güven düzeyi sağlar ve doğru bir IP döngüsü ayarlandığında anahtarların engellenme riskini en aza indirir. Kesintisiz maksimum güvenilirlik gerektiren görevler için mobil proxy'leri düşünmelisiniz — bu IP'ler, yüksek aktivite durumunda bile neredeyse hiç engellenmez.

```