İçeriğe geç
Veri teslimi

Verileriniz, kararı verdiğiniz yerde

Her tanımlama sistemlerinize iki yoldan ulaşabilir: gerçekleştiği anda sunucunuza gönderilerek ya da tam karar verdiğiniz saniyede sizin tarafınızdan çekilerek. İki kanal da aynı sayıları taşır — bunu güvence altına alan bir söz değil, bir testtir.

İki kanal

Push ya da pull

Webhook'lar olayları gerçekleştikçe size gönderir. Data API ise yanıta ihtiyaç duyduğunuz anda sormanızı sağlar. Ekiplerin çoğu ikisini birden kullanır: kaydetmek ve tepki vermek için webhook'lar, satır içi kontrol için Data API.

Webhook'lar — push, gerçek zamanlı

Bir şey olduğu anda uç noktanıza imzalı bir JSON olayı POST ederiz: bir ziyaretçi tanımlandığında, bir hesap ele geçirme işaretlendiğinde, bir bot saldırısı başladığında. Sorgulanacak bir şey yok, zamanlanacak bir şey yok.

Şunlar için ideal: her ziyareti kaydetmek, saldırılara tepki vermek, veri ambarınızı ya da SIEM'inizi beslemek.

p50 teslim gecikmesi 44–140 ms, olaydan uç noktanıza.

Data API — pull, talep üzerine

Sunucudan sunucuya özel bir API. Backend'iniz gizli bir anahtarla kimlik doğrular ve bir ziyaretçi hakkında bildiklerimizi tam karar verdiği saniyede okur — tipik olarak bir oturum açma ya da ödeme işleyicisinin içinde.

Şunlar için ideal: bir kartı çekmeden, bir kaydı onaylamadan ya da bir hesabın kilidini açmadan önce satır içi kontrol.

Pro planından itibaren kullanılabilir.

Webhook'lar

Dört olay türü, tek bir zarf

Her teslim aynı zarfla gelir; olay türü hem gövdede hem de X-Tracio-Event-Type başlığındadır — böylece tek bir işleyici dördünü de yönlendirebilir.

Ziyaretçi tanımlandı

Çekirdek olay: bir ziyaret skorlandı. Ziyaretçi kimliğini, tarayıcı ve işletim sistemini, coğrafya ve ağ bilgisini, bot kararını ve risk kararını taşır. Fazlar hâlinde teslim edilir — sayfa yüklenirken birincil bir olay, ardından daha yavaş kanıtlar kararı değiştirdiğinde geç ya da düzeltme fazı. Fazları requestId ile ilişkilendirin.

identification

Hesap ele geçirme

Hesap ele geçirme dedektörü bir ziyarette tetiklendi: bilinen bir hesabın arkasındaki cihaz artık o hesabın sahibi olan cihaza benzemiyor. Bir tanımlama gövdesinin içine saklanmak yerine, hesap bağlamı iliştirilmiş kendi olayı olarak gelir.

account_takeover

Bot saldırısı

Çalışma alanınızda otomatik trafik dalgası. Bunun arkasında bir ziyaret yoktur — çalışma alanı düzeyinde bir uyarıdır, dolayısıyla ziyarete ilişkin bloklar sıfırlanmış skorlarla boş kabuklar hâlinde gelmek yerine gövdede hiç bulunmaz.

attack_detected

İtibar değişimi

Bir profil itibar bantları arasında yer değiştirdi. Saldırı uyarısıyla aynı zarf — ziyaret iliştirilmemiş, profil düzeyinde bir olay; yeni bandı ve bir öncekini taşır.

reputation_changed

Kırpılmış bir teslim

Bu, temel gövdedir. Pro ziyaret velocity'sini ekler; Business ise karar gerekçe kodlarını, davranış sinyallerini, guidance'ı ve tarayıcılar arası cihaz verisini tam olarak aynı biçime ekler — yeni bloklar belirir, var olan yollar asla yer değiştirmez.

JSON
{
"version": 2,
"event": "identification",
"eventId": "req_8f21c4:primary",
"requestId": "req_8f21c4",
"phase": "primary",
"visitorId": "3f9a1b2c4d5e6f70",
"timestamp": "2026-07-30T12:00:00Z",
"geo": { "country": "DE", "city": "Berlin", "timezone": "Europe/Berlin" },
"network": { "vpn": true, "proxy": false, "tor": false, "datacenter": false },
"bot": { "result": "human", "score": 12 },
"identification": { "confidence": 0.97, "incognito": false },
"decision": { "action": "suspicious", "riskScore": 65.9 }
}

Her istek iki imza taşır

X-Tracio-Signature, imza zaman damgasının ham istek gövdesiyle birleştirilmesi üzerinde, webhook gizli anahtarınızla üretilen bir HMAC-SHA256'dır — göndericinin ikinizin de elindeki sırrı bildiğini kanıtlar. X-Tracio-Signature-Ed25519 ise platform imzasıdır: onu, iyi bilinen bir uç noktadan alınan açık anahtarla doğrularsınız, dolayısıyla sizin tarafınızda saklanacak gizli hiçbir şey kalmaz. Zaman damgası imzalanan içeriğin parçasıdır; eski bir kaydın yeniden oynatılmasını işe yaramaz kılan da budur.

Ham istek baytları üzerinde doğrulayın — yeniden serileştirilmiş JSON baytları değiştirir ve imza tutmaz. Yeniden denemeler aynı X-Tracio-Event-Id'yi taşır, dolayısıyla yinelenenleri onun üzerinden ayıklayın.

Her teslimde bulunan başlıklar

Text
X-Tracio-Signature: t=1753444800,v1=5257a869e7ecebed...
X-Tracio-Signature-Ed25519: t=1753444800,kid=k1,v1=0Zx0M0n8...
X-Tracio-Event-Type: identification
X-Tracio-Event-Id: req_8f21c4:primary
X-Tracio-Delivery-Attempt: 1
X-Tracio-Payload-Version: 2
Güvenilirlik

Olay kaybetmemek için kuruldu

Teslim ayrı bir filoda çalışır ve doğruluğun kaynağı bir sürecin belleği değil, kuyruktur. En az bir kez teslimi gerçek kılan da budur: bir teslim düğümü uçuş ortasında ölürse olay hâlâ kuyruktadır ve başka bir düğüm onu alır.

tek bir webhook üzerinden saniyedeki olay; temmuzdaki yeniden yazımdan önce bu sayı yaklaşık 50'ydi
44–140 msolaydan uç noktanıza p50 teslim gecikmesi
genişleyen bir merdivende teslim denemesi, 8,7 saate kadar yayılmış
yük altındaki bir teslim düğümünü öldüren bir tatbikatta teslim edilen 90.000 olayın oranı

Gerçek kesintilere uyan yeniden denemeler

5 sn, 30 sn, 2 dk, 10 dk, 30 dk, 2 sa, 6 sa. İlk denemeler bir dakika içinde gelir, dolayısıyla servisinizin kısa bir yeniden başlatması size hiçbir şeye mal olmaz. Her bekleme, listelenen değerin yarısı ile tamamı arasında rastgele seçilir; böylece bir kesintiden sonra yeniden denemeler tek bir yaylım ateşi hâlinde geri dönmez.

Yanlış tetiklenmeyen otomatik devre dışı bırakma

Bir webhook yalnızca hatalar hem eşiğe ulaştığında hem de en az 15 dakika kesintisiz sürdüğünde kapatılır — yeniden başlatma sırasında kuyruğa yığılan tesliminizin bir anlık patlaması entegrasyonu öldürmez. 410 Gone anında devre dışı bırakır. Panel gerekçeyi, yanıt kodunu ve yeniden etkinleştirme düğmesini gösterir.

Boşluk bırakmadan gizli anahtar rotasyonu

Bir rotasyondan sonra her iki gizli anahtar da 24 saat geçerli kalır ve başlık iki imzayı birden taşır, dolayısıyla birinin tutması yeterlidir. Yapılandırmanızı ani bir geçişle yarışmak yerine bu pencerenin içinde güncellersiniz; “Şimdi iptal et” ise anahtarın hemen gitmesi gerektiğinde pencereyi kısaltır.

Okuyabileceğiniz bir teslim günlüğü

Her deneme — yanıt kodu, süre, hata metni — panelde webhook başına görünür; yanında, uç noktanıza imzalı bir örnek payload gönderen bir test eylemi vardır, böylece yayına almadan önce doğrulayıcınızı teyit edebilirsiniz.

Data API

Karar verdiğiniz anda sorun

api.tracio.ai üzerinde, sunucudan sunucuya özel bir API. Backend'iniz gizli bir anahtarla kimlik doğrular ve kendi verisini okur. Bilerek hiç CORS başlığı göndermez: gizli anahtar çalışma alanınızdaki her şeye erişim verir ve asla bir tarayıcıya ulaşmamalıdır. Pro planından itibaren kullanılabilir.

YöntemYolDöndürdüğü
GET/v1/visitors/{visitorId}Ziyaretçi özeti: ilk ve son görülme, ziyaret sayısı, benzersiz IP ve ülkeler, tarayıcılar ve cihazlar, risk geçmişi — artı en son oturumu.
GET/v1/visitors/{visitorId}/sessionsİmleç sayfalamalı oturum listesi; tarih aralığı, bot sonucu ve en düşük risk skoru filtreleriyle.
GET/v1/visitors/{visitorId}/sessions/latestEn son oturum, liste zarfı olmadan tek bir nesne olarak.
GET/v1/sessions/{requestId}Belirli bir oturum. Yanında visitorId da gönderirseniz arama, tüm geçmişiniz yerine ziyaretçi indeksi üzerinden gider.
GET/v1/visitors/{visitorId}/velocityBir pencere boyunca etkinlik — 1h, 24h ya da 7d: kaç ziyaret, kaç IP'den, kaç ülkeden, kaç hesap altında.

Ödeme adımında bir ziyaretçiyi kontrol etmek

Tipik çağrı: ödeme işleyicinizin içinde, kartı yetkilendirmeden hemen önce. Tek istek, tek yanıt; meta bloğu da gerçekten aldığınız pencereyi bildirir — altı ay isterseniz ve planınız 30 gün saklıyorsa, 30 gün döndürür ve bunu söyler.

İstek

bash
# Inside your checkout handler, before you authorize the card
curl -s -H "Authorization: Bearer $TRACIO_SECRET_KEY" \
"https://api.tracio.ai/v1/visitors/3f9a1b2c/velocity?window=24h"

Yanıt

JSON
{
"window": "24h",
"events": 128,
"uniqueIps": 4,
"uniqueCountries": 2,
"uniqueAccounts": 1,
"meta": { "plan": "business", "retentionDays": 30 }
}

Her yerde aynı sayılar

Panelinizde 65,9 alan bir ziyaret, Data API'de de 65,9, webhook gövdesinde de 65,9 alır. Birbirinden bağımsız iki gösterim zamanla ayrışabilir — ölçekler bunun klasik yoludur; bir kanal size 0,93 verirken diğeri 93 der — bu yüzden bir eşitlik testi tek bir ziyaret kurar, onu iki kanaldan da render eder ve ham JSON üzerinde herkese açık alanları karşılaştırır. Uyum iddia edilmez, zorunlu kılınır.

Guidance — Business ve üstü

Yalnızca sayı değil, tavsiye

Skorlar ne gördüğümüzü söyler. Guidance ise gerçekten paraya mal olan dört karar için bu konuda ne yapacağınızı söyler — sürümlenmiş kurallarla hesaplanır ve gerekçesi ilişiktir.

Ödemeyi alalım mı?

Bir kartı yetkilendirmeden önce riski, dolandırıcılık itibarını ve bot kararını tartar.

Kaydı kabul edelim mi?

Tek kullanımlık hesabı var olmadan yakalar — burada en çok çoklu hesap ve itibar ağırlık taşır.

İçeri alalım mı?

Hesap ele geçirme dedektörü ziyarette tetiklendiğinde otomatik olarak sıkılaşır.

Dönüşümü sayalım mı?

Gerçek bir referansı, kendi kendine referanstan ya da teşvikli bir bottan ayırır.

Dört kelimelik bir sözlük

allowÜzerine harekete geçmeye değer bir şey yok.
challengeİkinci bir faktör isteyin.
reviewBir insan için bekletin.
denyDoğrudan reddedin.

Her senaryo dört yanıttan birini alır ve yanıtla birlikte hangi temele dayandığını da alır — sabit bir sözlükten belirleyici eksenler: bot, risk, dolandırıcılık itibarı, davranış, çoklu hesap, hesap ele geçirme, ağ, ortaklık örüntüsü. Sinyal adlarını, ağırlıkları ya da eşikleri hiç görmeden, tavsiyeyi hangi eksenin oynattığını her zaman bilirsiniz.

Tek hesaplama, üç kanal

Aynı guidance bloğu webhook'ta yolculuk eder, Data API'de yanıt verir ve panelde ziyaretçi kartında görüntülenir — tek kural seti, tek sonuç, sizin tarafınızda hiçbir mutabakat gerekmez. Genel tavsiye yerine kendi senaryonuzun tavsiyesini okuyun: genel olan, dördünün en katısıdır; panolar için bir özettir, bir ödeme kararı değil. Kural sürümü payload ile gelir; böylece kural değişikliği, kayan bir tavsiyeden çıkardığınız bir sonuç değil, fark ettiğiniz bir şey olur.

JSON
"guidance": {
"version": 1,
"overall": "review",
"payment": "review",
"registration": "challenge",
"login": "allow",
"affiliate": "allow",
"basis": ["risk", "fraud_reputation"]
}
Entegrasyon

Ön uçta beş SDK, arka uçta iki kanal

Tarayıcı tarafı beş SDK olarak gelir — düz JavaScript, React, Vue 3, Angular ve Svelte 5. Sunucu tarafı SDK yoktur ve bu bilinçlidir: backend'iniz düz HTTP üzerinden, imzalı webhook'lar ve Data API ile entegre olur. İmza doğrulaması, yayımladığımız bir referans vektöre karşı bir düzine satırdır ve sunucunuzun bağımlılık ağacında sürekli yükseltilecek fazladan bir şey kalmaz.

Tarayıcı SDK'ları
JavaScriptReactVue 3AngularSvelte 5
SSS

Sıkça sorulan sorular

Bir öğleden sonrada bağlayın

Panelde bir webhook oluşturun, uç noktanıza yönlendirin ve Test'e basın. İmzayı referans vektörümüze karşı doğrulayın; zor kısım artık geride.