Çözüm oranındaki ani düşüşün nedeni neredeyse her zaman dört katmandan biridir. Doğru teşhis, hemen desteğe yazmak değil; bu katmanları sırayla eleyip sorunu tek bir yere sabitlemektir:
- Kodunuz — yanlış
sitekey, hatalımethodveya token'ı geciktiren işlem hattı - Proxy'niz — işaretlenmiş ya da düşük kaliteli proxy
- Hedef site — değişen sitekey, yeni CAPTCHA türü veya güncellenen sayfa
- CaptchaAI servisi — bakiye, istek sınırı ya da geçici çözüm oranı dalgalanması
Örneğin İstanbul'daki bir e-ticaret ekibinin gece QA otomasyonu çözüm oranını sabaha karşı %90'dan %55'e düşürdüyse, aşağıdaki akış nedeni birkaç istekte gösterir.
Çözüm oranı düşüşünde hızlı teşhis tablosu
Elinizde belirli bir belirti varsa önce buradan bakın: satırı bulun, en olası nedene ve ilk eyleme geçin.
| Senaryo | En olası neden | İlk eylem |
|---|---|---|
Tüm istekler başarısız, tümü ERROR_WRONG_USER_KEY |
Geçersiz API anahtarı | API anahtarını yeniden kontrol edin |
| Günler içinde kademeli düşüş | Proxy kalitesinde bozulma | Proxy havuzunu yenileyin |
| Bir anda sıfıra düşüş | Sitekey veya sayfa değişti | CAPTCHA parametrelerini yeniden çıkarın |
| Çözülüyor ama token'lar site tarafından reddediliyor | Token süresinin dolması veya alan adı uyuşmazlığı | Zamanlamayı ve pageurl'yi kontrol edin |
| Test sitesinde çalışıyor, hedefte başarısız | Siteye özgü kısıtlamalar | İki site arasındaki parametreleri karşılaştırın |
Teşhis karar ağacı: çözüm oranı neden düştü?
Belirti net değilse aramaya nereden başlayacağınızı bu ağaç belirler. Hatanın hangi katmandan geldiğini işaretleyin, sonra ilgili adıma inin:
Solve rate dropped
├── Is the API returning errors? → Check error codes
│ ├── ERROR_WRONG_USER_KEY → API key issue
│ ├── ERROR_ZERO_BALANCE → Balance depleted
│ ├── ERROR_NO_SLOT_AVAILABLE → Rate limiting
│ └── ERROR_CAPTCHA_UNSOLVABLE → CAPTCHA changed
├── Are tokens returned but rejected by the target site?
│ ├── Token expired before submission → Speed up injection
│ ├── Sitekey changed → Re-extract from page
│ └── Domain mismatch → Check pageurl parameter
├── Are proxies failing?
│ ├── Proxy banned by target → Rotate proxies
│ └── Proxy timeout → Check proxy health
└── Did the target site change?
├── New CAPTCHA type → Update method parameter
├── JavaScript changes → Re-analyze page
└── Rate limiting by site → Reduce frequency
Adım 1: CaptchaAI hata kodlarını ve bakiyeyi okuyun
İlk soru basit: API bir hata mı döndürüyor, yoksa token'lar geliyor ama reddediliyor mu? Aşağıdaki komut dosyası bakiyeyi doğrular, test çözümleri çalıştırır ve hataları sıklığa göre toplar. Çıktıdaki dağılım hangi adıma odaklanacağınızı söyler.
# diagnose_solve_rate.py
import os
import requests
from collections import Counter
API_KEY = os.environ.get("CAPTCHAAI_KEY", "YOUR_API_KEY")
def check_balance():
"""Verify API key and balance."""
resp = requests.get("https://ocr.captchaai.com/res.php", params={
"key": API_KEY, "action": "getbalance", "json": "1",
})
result = resp.json()
print(f"Balance: {result}")
return result
def test_solve(sitekey, pageurl, runs=5):
"""Run test solves and collect error statistics."""
errors = Counter()
successes = 0
for i in range(runs):
# Submit
resp = requests.get("https://ocr.captchaai.com/in.php", params={
"key": API_KEY,
"method": "userrecaptcha",
"googlekey": sitekey,
"pageurl": pageurl,
"json": "1",
})
result = resp.json()
if result.get("status") != 1:
errors[result.get("request", "UNKNOWN")] += 1
print(f" Run {i+1}: Submit error: {result.get('request')}")
continue
task_id = result["request"]
import time
time.sleep(15)
# Poll
for _ in range(25):
poll = requests.get("https://ocr.captchaai.com/res.php", params={
"key": API_KEY, "action": "get",
"id": task_id, "json": "1",
})
poll_result = poll.json()
if poll_result.get("status") == 1:
successes += 1
print(f" Run {i+1}: Solved")
break
if poll_result.get("request") != "CAPCHA_NOT_READY":
errors[poll_result.get("request", "UNKNOWN")] += 1
print(f" Run {i+1}: Error: {poll_result.get('request')}")
break
time.sleep(5)
else:
errors["TIMEOUT"] += 1
print(f" Run {i+1}: Timeout")
print(f"\nResults: {successes}/{runs} solved")
if errors:
print(f"Errors: {dict(errors)}")
# Run diagnostics
print("=== Balance Check ===")
check_balance()
print("\n=== Test Solves ===")
test_solve("YOUR_SITEKEY", "https://your-staging.example.com", runs=5)
ERROR_ZERO_BALANCE görürseniz sorun teşhis değil, bakiyedir: thread tabanlı planlar (BASIC $15/ay, 5 thread'den başlar) USD olarak öngörülebilir aylık maliyet sunar. Bakiye doğruysa çıktıdaki hata dağılımına bakıp ilgili adıma geçin.
Adım 2: Sitekey ve sayfa yapısı değişti mi?
Çözüm oranı düşüşlerinin en yaygın nedeni, hedef sitedeki değişen sitekey veya yeniden düzenlenmiş sayfa yapısıdır. Kodunuz eski değeri gönderiyorsa çözüm başarılı olur ama site token'ı kabul etmez. Geliştirici Araçları'nı (F12) açın ve mevcut değeri kodunuzdakiyle karşılaştırın:
- reCAPTCHA:
data-sitekeyözniteliği veyagrecaptcha.renderçağrısı - Cloudflare Turnstile: Turnstile widget'ındaki
data-sitekey - GeeTest: GeeTest başlatmasındaki
gtparametresi
Tek bir karakter farkı bile tüm isteklerin başarısız olmasına yeter. Sitekey aynıysa, sitenin CAPTCHA türünü değiştirmiş olabileceğini kontrol edin — bazı siteler sürüm arasında sessizce geçiş yapar:
- reCAPTCHA v2 → reCAPTCHA v3 (görünmez)
- reCAPTCHA → Cloudflare Turnstile
- Resim CAPTCHA → reCAPTCHA Enterprise
Tür değiştiyse method parametrenizi güncelleyin; eski method doğru token üretmez.
Adım 3: Proxy kalitesini değerlendirin
Proxy kalitesi, özellikle CaptchaAI'nin sizin proxy'nizi kullandığı token tabanlı CAPTCHA'larda çözüm oranını doğrudan etkiler. Tür destekliyorsa, izole etmek için önce proxy olmadan test edin.
| Proxy sorunu | Belirti | Düzeltme |
|---|---|---|
| Proxy IP'niz hedef tarafından işaretlendi | Token çözüldü ama reddedildi | Proxy havuzunuzu yenileyin |
| Proxy erişilemiyor | ERROR_PROXY_NOT_FOUND |
Proxy'nin canlı ve erişilebilir olduğunu doğrulayın |
| Düşük kaliteli proxy | Çözüm oranları düşük | Daha güvenilir bir proxy sağlayıcısına geçin |
| Proxy coğrafi uyumsuzluğu | Tutarsız sonuçlar | Proxy ülkesini hedef siteyle eşleştirin |
Adım 4: Token zamanlamasını ve süresini ölçün
CAPTCHA token'larının geçerlilik süresi sınırlıdır. İşlem hattınız token'ı aldıktan sonra forma eklemeyi çok geciktirirse token'ın süresi dolar ve site onu reddeder.
| CAPTCHA türü | Token ömrü |
|---|---|
| reCAPTCHA v2 | ~120 saniye |
| reCAPTCHA v3 | ~120 saniye |
| Cloudflare Turnstile | ~300 saniye |
| GeeTest v3 | ~60 saniye |
Düzeltme: getTaskResult ile form gönderimi arasındaki süreyi ölçün. 60 saniyeyi aşıyorsa ardışık düzeninizi hızlandırıp token'ı üretilir üretilmez enjekte edin.
Adım 5: Hata dağılımını sıklığa göre sıralayın
Kök nedeni bulmanın en hızlı yolu, hataları frekansa göre sıralayıp en baskın olanla başlamaktır:
| Hata | Anlamı | Eylem |
|---|---|---|
ERROR_CAPTCHA_UNSOLVABLE |
CAPTCHA çok karmaşık veya değişmiş | CaptchaAI'ye bildirin; sitekey'in doğru olduğunu kontrol edin |
ERROR_WRONG_CAPTCHA_ID |
Yanlış görev kimliği sorgulanıyor | Kodunuzda görev kimliği takibini düzeltin |
ERROR_ZERO_BALANCE |
Bakiye bitti | Bakiyeyi yükleyin |
ERROR_NO_SLOT_AVAILABLE |
İstek sınırına takıldınız | Eşzamanlılığı azaltın veya gecikme ekleyin |
CAPCHA_NOT_READY (zaman aşımı) |
Çözüm çok uzun sürüyor | Sorgulama zaman aşımını artırın; sitekey'in geçerli olduğunu doğrulayın |
Adım 6: Mevcut metrikleri temel değerlerle kıyaslayın
Daha önce ölçüm aldıysanız güncel değerleri temel (baseline) değerlerle karşılaştırın. Delta eşiği aşıyorsa araştırın:
| Metrik | Temel | Mevcut | Delta | Endişe eşiği |
|---|---|---|---|---|
| Çözüm oranı | %95 | ? | > %5 düşüş = araştırın | |
| Medyan çözüm süresi | 15 sn | ? | > %50 artış = araştırın | |
| Hata oranı | %2 | ? | > %5 = araştırın | |
| Token kabul oranı | %98 | ? | > %3 düşüş = site değişti |
CaptchaAI desteğine ne zaman başvurmalısınız?
Tüm adımları yürüttünüz ama sorun sizde değilse desteğe yazın. Raporunuza şunları ekleyin: CAPTCHA türü ve sitekey, hedef site URL'si, hata dağılımı, sorunun başladığı an ve kodunuzdaki son değişiklikler.
- Tüm teşhis adımları temiz geçiyor ama çözüm oranı düşük kalıyor
- Daha önce çalışan sitekey'lerde
ERROR_CAPTCHA_UNSOLVABLEoranı %20'yi geçiyor - Bakiye doğru görünüyor ama çözümler yine de başarısız
- Sorun 2 saatten uzun süredir devam ediyor
SSS
Çözüm oranı düşüşünde ilk hangi adıma bakmalıyım?
Net bir belirti varsa yukarıdaki hızlı teşhis tablosundan başlayın. Belirsizse Adım 1'i çalıştırın; hata dağılımı sorunun API katmanında mı yoksa token reddi mi olduğunu gösterir.
Token çözüldüğü hâlde neden reddediliyor?
En sık üç neden: token forma eklenmeden süresi doldu, sitekey değişti ya da pageurl ile gerçek alan adı uyuşmuyor. Adım 2 ve Adım 4 bu üçünü ayırt eder.
Her ERROR_CAPTCHA_UNSOLVABLE hatasını bildirmeli miyim?
Hayır. Karmaşık CAPTCHA'larda %2–5 aralığında çözülememe oranı normaldir. Yalnızca oran sürekli %15–20'yi aşarsa CaptchaAI'ye bildirin.
Çözüm oranı ne kadar sürede toparlanır?
Sorun CaptchaAI tarafındaysa toparlanma genellikle birkaç saat içindedir. Hedef site değiştiyse entegrasyon parametrelerinizi güncelleyin.
İlgili Makaleler
- CAPTCHA çözüm oranı için SLI/SLO izleme rehberi
- Zaman serisiyle çözüm performansı trendlerini izleme
- Çözüm başarı oranı düşüşü teşhisi
Sonraki Adımlar
CAPTCHA işlem hattınızı sağlıklı tutun — CaptchaAI API anahtarınızı alın.
İlgili kılavuzlar: