--- title: Fraud Prevention — Web SDK --- # Fraud Prevention Web SDK Fraud Prevention Web SDK, **sizin sayfanızda** çalışır — bir açılış sayfası, bir kayıt veya oturum açma ekranı ya da korumak istediğiniz herhangi bir kaynak. Mevcut ziyaret için bir karar ister ve bunu kodunuza geri teslim eder; böylece trafiğe ne yapacağınıza karar verebilirsiniz — kaydetmek, işaretlemek veya ziyaretçiden bir ek doğrulama istemek. ## Hızlı başlangıç ```html ``` `BotSignal.init()` ayrıca bir `Promise` döndürür; bu nedenle `onVerdict` yerine onu `await` ile de kullanabilirsiniz — her ikisi de aynı karar nesnesini alır. ```js const verdict = await BotSignal.init({ appKey: 'YOUR_APP_KEY' }); ``` ## Seçenekler | Seçenek | Tür | Varsayılan | Açıklama | | --- | --- | --- | --- | | `appKey` | string | — | Fraud Prevention uygulama anahtarınız (zorunlu). | | `domain` | string | servis varsayılanı | Karar servisi uç noktası. Size özel bir alan adı verilmedikçe ayarlamadan bırakın. | | `escalate` | boolean | `false` | Bir ziyaret yüksek riskli göründüğünde Fraud Prevention'ın ziyaretçiden **bir ek doğrulama** istemesine izin verir. Bkz. [Yükseltme](#escalation). | | `collectWindowMs` | number | `1200` | SDK'nın bir karar istemeden önce ziyareti ne kadar (ms) gözlemlediği. Daha uzun pencereler, küçük bir gecikme karşılığında daha emin bir karar verir. | | `onVerdict` | `(v) => void` | — | Nihai kararla bir kez çağrılır. Birincil entegrasyon noktası. | | `onError` | `(err) => void` | — | Bir şeyler ters giderse çağrılır. SDK sayfanıza asla istisna fırlatmaz. | | `onEscalate` | `(displayType) => void` | — | Bir ek doğrulama gösterildiğinde çağrılır (yalnızca `escalate: true` iken). | | `onEscalateDone` | `(passed) => void` | — | Ek doğrulama bittikten sonra çağrılır; ziyaretçi geçtiyse `passed` değeri `true` olur. | ::: tip Trafik kaynağı senaryoları Bir üçüncü taraf size ziyaretçi getiriyorsa ve her iki tarafın tıklama başına bir sonuç üzerinde mutabık kalması gerekiyorsa, SDK sayfa URL'sinden bir tıklama token'ı da okuyabilir. Bu, ücretli trafik akışlarına özgüdür — bkz. [Reklam dolandırıcılığı](./scenarios/ad-fraud) kılavuzu. ::: ## Kararı kullanma `onVerdict`, bir `BotVerdict` nesnesi alır. En çok kullanacağınız iki alan: - **`verdict.is_bot`** — ziyaret otomatik/geçersiz olarak değerlendirildiğinde `true`. - **`verdict.action`** — yapmanızı önerdiğimiz: `record_only`, `challenge` veya `flag`. ```js BotSignal.init({ appKey: 'YOUR_APP_KEY', onVerdict: function (verdict) { switch (verdict.action) { case 'record_only': // normal görünen trafik — devam edin, sadece kararı kaydedin break; case 'flag': // şüpheli — sayfayı sunmaya devam edin ama bu ziyareti düşük kaliteli işaretleyin markLowQuality(verdict); break; case 'challenge': // yüksek risk — etkinse yükseltme tarafından ele alınır (aşağıya bakın) break; } }, }); ``` Tam alan listesi ve önerilen işleme yöntemleri için [Karar Referansı](./verdict-reference) sayfasına bakın. ## Yükseltme {#escalation} Bir ziyaret yüksek riskli göründüğünde, Fraud Prevention onu gerçek bir kullanıcı olarak ele almadan önce ziyaretçiden **bir ek doğrulamayı** tamamlamasını isteyebilir. Bu, isteğe bağlıdır. `escalate: true` ile etkinleştirin: ```js BotSignal.init({ appKey: 'YOUR_APP_KEY', escalate: true, onEscalate: function (displayType) { // ziyaretçiye bir ek doğrulama gösteriliyor }, onEscalateDone: function (passed) { if (passed) { // ziyaretçi ek kontrolü geçti — insan olarak ele alın } else { // geçmedi — orijinal kararın önerisini koruyun } }, onVerdict: function (verdict) { // ziyaretçi yükseltmeyi geçtiyse, verdict.is_bot false olarak güncellenir }, }); ``` Notlar: - Yükseltme yalnızca kararın `action` değeri `challenge` olduğunda tetiklenir. Diğer tüm ziyaretlerde hiçbir şey gösterilmez ve ziyaretçi deneyimine dokunulmaz. - Ziyaretçi ek doğrulamayı geçerse, `onVerdict` ile teslim edilen karar bunu yansıtır (insan olarak ele alınır). - Yükseltme **açık şekilde başarısız olur (fail open)**: ek doğrulama yüklenemez veya gösterilemezse, SDK sayfanızı engellemek yerine orijinal kararı korur. ::: info Fraud Prevention sizin *yerinize* asla karar vermez. `challenge`/`flag` durumunda bile ziyaretin devam edip etmeyeceği konusunda kontrol sizin kodunuzda kalır — SDK yalnızca kararı yüzeye çıkarır ve isteğe bağlı olarak ek doğrulamayı çalıştırır. ::: ## Dayanıklılık Karar servisine ulaşılamazsa veya herhangi bir hata oluşursa, SDK sayfanızı başarısız kılmak yerine **düşürülmüş (degraded)** bir karar (`degraded: true`) döndürür. Düşürülmüş bir karar muhafazakârdır (`is_bot: false`, `action: record_only`), bu yüzden gerçek kullanıcıları asla engellemez. Bu ziyaretleri özel olarak ele almak isterseniz `verdict.degraded` değerini kontrol edin. ## Sonraki adımlar - [Karar Referansı](./verdict-reference) — her alan ve buna göre nasıl hareket edilir - [Data API](./data-api) — kararları sunucu tarafında çekin ve mutabık kalın