--- title: Fraud Prevention — Karar Referansı --- # Karar Referansı Her Fraud Prevention kararı — ister [Web SDK](./web-sdk) içindeki `onVerdict` geri çağırmanıza teslim edilsin, ister [Data API](./data-api) üzerinden çekilsin — aynı `BotVerdict` nesnesidir. Bu sayfa her alanı ve buna göre nasıl hareket edileceğini belgeler. ```json { "is_bot": false, "score": 18, "level": "low", "action": "record_only", "consistency": { "ok": true }, "degraded": false } ``` ## Alanlar | Alan | Tür | Açıklama | | --- | --- | --- | | `is_bot` | boolean | Ana karar. `true` = ziyaret otomatik veya geçersiz trafik olarak değerlendirilir; `false` = gerçek bir kişi gibi görünür. Çoğu entegrasyonun dallandığı tek alan budur. | | `score` | number (0–100) | Ziyaretin ne kadar şüpheli olduğu. **Yüksek olması daha şüpheli demektir.** Kendi eşiklerinizi belirlemek için kullanın — ör. seçtiğiniz bir kesim değerinin üzerindeki ziyaretleri hariç tutun. Tam değer risk modelimiz tarafından üretilir ve tersine mühendislik yapılması amaçlanmamıştır. | | `level` | enum | `score` değerinin kaba bandı: `low`, `medium`, `high`, `critical`. Ham bir sayı yerine kovalar istediğinizde kullanışlıdır. | | `action` | enum | Ziyaret için **önerdiğimiz işleme**: `record_only`, `challenge` veya `flag`. Aşağıya bakın. | | `consistency` | object | Sinyaller arası bir tutarlılık sonucu. `consistency.ok` değerini okuyun (boolean): `true` = ziyaretin sinyalleri beklendiği gibi örtüşür; `false` = bir şey uyuşmadı ve ziyaret ekstra incelemeyi hak ediyor. Bu sonucun arkasındaki iç ayrıntılar açığa çıkarılmaz. | | `degraded` | boolean | Karar tam olarak hesaplanamadığında (servise ulaşılamaması, hata vb.) ve muhafazakâr bir yedek döndürüldüğünde `true`. Düşürülmüş kararları "temiz" değil "bilinmeyen" olarak ele alın. | ## `action` — ne yapmalı `action` bizim önerimizdir; nihai karar üzerindeki kontrol sizde kalır. | `action` | Anlamı | Ne yapmalı | | --- | --- | --- | | `record_only` | Ziyaret normal görünüyor. | Her zamanki gibi devam edin. Sadece kararı raporlama ve mutabakat için kaydedin. | | `flag` | Ziyaret şüpheli ama kesin olarak kötü değil. | Sayfayı sunmaya devam edin, ancak ziyareti düşük kaliteli olarak işaretleyin — metriklerinizden çıkarın, alt akış süreçlerinden ayırın ve kendi kararlarınızda ağırlıklandırın (ör. dönüşüm atıfı veya ziyarete ne kadar güvendiğiniz). | | `challenge` | Ziyaret yüksek riskli. | Ziyaretçiyi insan olarak ele almadan önce bir ek doğrulama isteyin. Web SDK'nın `escalate: true` seçeneğiyle bu sizin için ele alınır (bkz. [Yükseltme](./web-sdk#escalation)); aksi halde kendi geçidinizi uygulayın. | ## Yapılandırılabilir işleme eylemi **Yüksek riskli** bir ziyaret için `action` değerinin ne raporladığı **uygulama başına yapılandırmadır** ve kontrol panelinde uygulamanızın ayrıntıları altında ayarlanır. Karar **sunucu-yetkilidir**: `action` yalnızca ziyaret yüksek risk bandına ulaştığında **ve** uygulamanız eşleşen eylemle yapılandırıldığında `challenge` veya `flag` olur. Bu bandın altında karar `record_only` olarak kalır. | Ayar | Yüksek riskte döndürülen `action` | Anlamı | | --- | --- | --- | | `record_only` (varsayılan) | `record_only` | Yalnızca kaydet. Karar raporlama ve mutabakat için kaydedilir; ziyaretçiden hiçbir şey istenmez. | | `challenge` | `challenge` | Bir yeniden-doğrulama CAPTCHA'sı tetikler. Web SDK bir challenge açar (stillendirme SDK'nın `challengeConfig` ayarıyla kontrol edilir). | | `flag` | `flag` | Ziyareti işaretle. Karar `flag` taşır; entegrasyonunuz buna nasıl tepki vereceğine karar verir (engelle / ayır / işle). | Karar sunucu tarafında verildiği için kodunuz basit kalır: `onVerdict` içinde `verdict.action` değerini okuyun ve buna göre hareket edin — devam edin, engelleyin veya SDK'nın bir challenge sunmasına izin verin. Riski kendiniz yeniden türetmenize gerek yoktur. ### `escalate_result` Yönetilen bir captcha yükseltmesi çalıştıktan sonra bulunur — yani `action` `challenge` olduğunda ve SDK captcha'yı çalıştırdığında. Hiç yükseltme çalışmadığında `null`. Ayrıca `onEscalateDone(passed, detail)`'a iletilir. | alan | açıklama | |---|---| | `passed` | ziyaretçinin captcha'yı geçip geçmediği | | `token` | captcha pass token'ı — geçişi doğrulamak için **sunucu tarafında doğrulayın** (yalnızca istemcideki `passed`'a güvenmeyin) | | `challenge_id` | captcha challenge id'si | | `cid` | bir click token mevcutsa bu yükseltmenin bağlı olduğu click id | ## `level` ile `score` `level`, kolaylık için sağlanan, `score` değerinin yalnızca bir bantlamasıdır: | `level` | Ne zaman kullanılır | | --- | --- | | `low` | Temiz trafik olarak ele alın. | | `medium` | Sınırda — kaydetmek sorun değil, yüksek değerli hunilerden hariç tutmayı düşünün. | | `high` | Kuvvetle şüpheli — işaretleyin ve hariç tutun. | | `critical` | Neredeyse kesinlikle geçersiz — işaretleyin/hariç tutun ve ideal olarak yükseltin. | ::: tip İş akışınıza uyan alanı seçin - Basit evet/hayır geçidi → **`is_bot`** üzerinde dallanın. - Öneri odaklı → **`action`** üzerinde dallanın. - Özel eşikler → **`score`** üzerinde dallanın (veya kovalar için **`level`**). ::: ## Düşürülmüş kararları ele alma `degraded` değeri `true` olduğunda, karar tam olarak hesaplanmamıştır. Yedek değer kasıtlı olarak muhafazakârdır (`is_bot: false`, `action: record_only`); böylece gerçek kullanıcılar asla engellenmez. Raporlamada bunları onaylı-temiz trafik olarak saymak yerine **bilinmeyen** olarak ele alın. ## Sonraki adımlar - [Web SDK](./web-sdk) — kararları sayfanızda alın - [Data API](./data-api) — kararları ve istatistikleri sunucu tarafında çekin