بياناتك، حيث تتخذ القرار
كل عملية تعرّف يمكن أن تصل إلى أنظمتك بطريقتين: مدفوعة إلى خادمك لحظة حدوثها، أو مسحوبة منك في الثانية التي تقرر فيها بالضبط. وتحمل القناتان الأرقام نفسها — وهذا الجزء يضبطه اختبار، لا وعد.
دفع أم سحب
تدفع webhooks الأحداث إليك فور وقوعها. وتتيح لك واجهة Data API أن تسأل في اللحظة التي تحتاج فيها إلى إجابة. ومعظم الفرق تشغّل الاثنتين: webhooks للتسجيل والتفاعل، وواجهة Data API للفحص المباشر.
الدفع عبر webhooks — في الزمن الحقيقي
نرسل POST بحدث JSON موقّع إلى نقطة النهاية لديك لحظة وقوع شيء: تعرّف على زائر، أو رصد استيلاء على حساب، أو بدء هجوم روبوتات. لا استطلاع دوري، ولا جدولة.
الأفضل لـ: تسجيل كل زيارة، والتفاعل مع الهجمات، وتغذية مستودع بياناتك أو نظام SIEM.
زمن التسليم p50 من 44 إلى 140 مللي ثانية، من الحدث إلى نقطة النهاية لديك.
السحب عبر Data API — عند الطلب
واجهة خاصة من خادم إلى خادم. يستوثق خادمك بمفتاح سري ويقرأ ما نعرفه بالضبط عن زائر في الثانية التي يقرر فيها — عادةً داخل معالج تسجيل دخول أو معالج دفع.
الأفضل لـ: فحص مباشر قبل أن تخصم من بطاقة، أو تعتمد تسجيلًا، أو تفتح حسابًا.
متاحة اعتبارًا من خطة Pro.
أربعة أنواع أحداث، غلاف واحد
كل عملية تسليم تصل في الغلاف نفسه، ونوع الحدث موجود في الجسم وفي ترويسة X-Tracio-Event-Type — فيستطيع معالج واحد توجيه الأربعة جميعًا.
تعرُّف على زائر
الحدث الأساسي: زيارة جرى تقييمها. يحمل معرّف الزائر، والمتصفح ونظام التشغيل، والموقع الجغرافي والشبكة، وحُكم الروبوت وقرار المخاطر. يُسلَّم على مراحل — حدث أساسي عند تحميل الصفحة، ثم مرحلة متأخرة أو تصحيحية حين تغيّر أدلة أبطأ الحُكم. اربط المراحل عبر requestId.
identificationالاستيلاء على الحساب
أُطلق كاشف الاستيلاء على الحساب في زيارة: الجهاز الذي يقف خلف حساب معروف لم يعد يشبه الجهاز الذي يملكه. يصل كحدث مستقل، مع سياق الحساب مرفقًا، بدل أن يختبئ داخل جسم حدث تعرّف.
account_takeoverهجوم روبوتات
موجة من التعاملات الآلية على مساحة عملك. هذا الحدث لا زيارة خلفه — فهو تنبيه على مستوى مساحة العمل، ولذلك تغيب كتل الزيارة من الجسم ببساطة بدل أن تصل كأصداف فارغة بدرجات مصفّرة.
attack_detectedتغيّر في السمعة
انتقل ملف تعريف بين نطاقات السمعة. الغلاف نفسه المستخدم في تنبيه الهجوم — حدث على مستوى الملف بلا زيارة مرفقة، يحمل النطاق الجديد والنطاق السابق.
reputation_changedعملية تسليم، مختصرة
هذا هو الجسم الأساسي. تضيف Pro سرعة تكرار الزيارات؛ وتضيف Business رموز أسباب الحُكم، والإشارات السلوكية، والإرشاد، وبيانات الجهاز عبر المتصفحات إلى الشكل نفسه تمامًا — تظهر كتل جديدة، ولا تتحرك المسارات القائمة أبدًا.
{ "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 }}كل طلب يحمل توقيعين
الترويسة X-Tracio-Signature هي HMAC-SHA256 على طابع التوقيع الزمني موصولًا بجسم الطلب الخام، بمفتاح webhook السري لديك — وهي تثبت أن المرسِل يعرف السر الذي تحملانه معًا. أما X-Tracio-Signature-Ed25519 فهو توقيع المنصة: تتحقق منه بمفتاح عام تجلبه من نقطة نهاية معلومة، فلا شيء سريًا تخزّنه لديك. والطابع الزمني جزء من المحتوى الموقَّع، وهذا ما يجعل أي التقاط قديم عديم الفائدة لإعادة الإرسال.
تحقّق مقابل بايتات الطلب الخام — فإعادة تسلسل JSON تغيّر البايتات ولن يتطابق التوقيع. وتحمل إعادات المحاولة القيمة نفسها في X-Tracio-Event-Id، فأزل التكرار بناءً عليها.
الترويسات في كل عملية تسليم
X-Tracio-Signature: t=1753444800,v1=5257a869e7ecebed...X-Tracio-Signature-Ed25519: t=1753444800,kid=k1,v1=0Zx0M0n8...X-Tracio-Event-Type: identificationX-Tracio-Event-Id: req_8f21c4:primaryX-Tracio-Delivery-Attempt: 1X-Tracio-Payload-Version: 2مبنية على ألا تفقد أحداثًا
يعمل التسليم على أسطول مخصص، والطابور — لا ذاكرة عملية — هو مصدر الحقيقة. وهذا ما يجعل «مرة واحدة على الأقل» حقيقيًا: إذا ماتت عقدة تسليم في منتصف الطريق، يبقى الحدث في الطابور وتلتقطه عقدة أخرى.
إعادات محاولة تناسب الأعطال الحقيقية
5 ثوانٍ، 30 ثانية، دقيقتان، 10 دقائق، 30 دقيقة، ساعتان، 6 ساعات. تصل أولى الإعادات خلال دقيقة، فإعادة تشغيل قصيرة لخدمتك لا تكلّفك شيئًا. وكل فترة انتظار تُختار عشوائيًا بين نصف القيمة المذكورة وكاملها، فلا تعود الإعادات كدفعة واحدة بعد العطل.
تعطيل تلقائي لا يخطئ الهدف
لا يُطفَأ webhook إلا حين تبلغ الإخفاقات العتبة وتستمر 15 دقيقة متتالية على الأقل — فدفعة من عمليات التسليم المتراكمة أثناء إعادة تشغيل لن تقتل التكامل. والرمز 410 Gone يعطّل فورًا. وتعرض لوحة التحكم السبب ورمز الاستجابة وزر إعادة التفعيل.
تدوير السر بلا فجوة
بعد التدوير يبقى السرّان صالحين 24 ساعة وتحمل الترويسة التوقيعين، فتطابق أحدهما يكفي. تحدّث إعدادك داخل النافذة بدل أن تسابق تبديلًا لحظيًا؛ و«إلغاء الآن» يقصّر النافذة حين تحتاج إلى إنهائها.
سجل تسليم يمكنك قراءته
كل محاولة — رمز الاستجابة والمدة ونص الخطأ — ظاهرة لكل webhook في لوحة التحكم، بجوار إجراء اختبار يرسل حمولة عيّنة موقّعة إلى نقطة النهاية لديك لتؤكد صحة مدقّقك قبل الانتقال إلى الإنتاج.
اسأل في اللحظة التي تقرر فيها
واجهة خاصة من خادم إلى خادم على api.tracio.ai. يستوثق خادمك بمفتاح سري ويقرأ بياناته هو. وهي لا ترسل ترويسات CORS عمدًا: فالمفتاح السري يمنح وصولًا إلى كل شيء في مساحة عملك ويجب ألا يصل إلى متصفح أبدًا. متاحة اعتبارًا من خطة Pro.
| الطريقة | المسار | المُعاد |
|---|---|---|
| GET | /v1/visitors/{visitorId} | ملخص الزائر: أول وآخر ظهور، وعدد الزيارات، وعناوين IP والدول الفريدة، والمتصفحات والأجهزة، وتاريخ المخاطر — إضافة إلى أحدث جلسة له. |
| GET | /v1/visitors/{visitorId}/sessions | قائمة الجلسات مع ترقيم بالمؤشر وتصفية حسب المدى الزمني ونتيجة الروبوت والحد الأدنى لدرجة المخاطر. |
| GET | /v1/visitors/{visitorId}/sessions/latest | أحدث جلسة ككائن واحد، دون غلاف قائمة. |
| GET | /v1/sessions/{requestId} | جلسة بعينها. مرّر visitorId معها فيمر البحث عبر فهرس الزائر بدل تاريخك كله. |
| GET | /v1/visitors/{visitorId}/velocity | النشاط خلال نافذة — 1h أو 24h أو 7d: كم زيارة، ومن كم عنوان IP، ومن كم دولة، وتحت كم حساب. |
فحص زائر عند الدفع
الاستدعاء النموذجي: داخل معالج الدفع لديك، قبل أن تفوّض البطاقة. طلب واحد وإجابة واحدة، وتبلّغ كتلة meta بالنافذة التي حصلت عليها فعلًا — فإذا طلبت ستة أشهر وكانت خطتك تحتفظ بـ30 يومًا، تُعيد 30 يومًا وتقول ذلك.
الطلب
# Inside your checkout handler, before you authorize the cardcurl -s -H "Authorization: Bearer $TRACIO_SECRET_KEY" \ "https://api.tracio.ai/v1/visitors/3f9a1b2c/velocity?window=24h"الاستجابة
{ "window": "24h", "events": 128, "uniqueIps": 4, "uniqueCountries": 2, "uniqueAccounts": 1, "meta": { "plan": "business", "retentionDays": 30 }}الأرقام نفسها في كل مكان
الزيارة التي تُقيَّم 65.9 في لوحة التحكم تُقيَّم 65.9 في Data API و65.9 في جسم webhook. يمكن لعرضين مستقلين أن ينحرفا — والمقاييس هي الطريقة الكلاسيكية لذلك، إذ تعطيك قناة 0.93 حيث تقول الأخرى 93 — لذلك يبني اختبار التكافؤ زيارة واحدة، ويعرضها عبر القناتين، ويقارن الحقول العامة على JSON الخام. الاتفاق مفروض، لا مُدَّعى.
نصيحة، لا أرقام فقط
الدرجات تخبرك بما رأيناه. والإرشاد يخبرك بما تفعله حياله، في القرارات الأربعة التي تكلّف مالًا فعلًا — محسوبًا بقواعد مرقّمة بإصدارات، مع التعليل مرفقًا.
أتقبل الدفعة؟
يوازن المخاطر وسمعة الاحتيال وحُكم الروبوت قبل أن تفوّض بطاقة.
أتقبل التسجيل؟
يمسك الحساب المؤقت قبل أن يوجد — وتعدد الحسابات والسمعة هما الأثقل هنا.
أتسمح بالدخول؟
يتشدد تلقائيًا حين يكون كاشف الاستيلاء على الحساب قد أُطلق في الزيارة.
أتحتسب التحويل؟
يفصل الإحالة الحقيقية عن إحالة ذاتية أو روبوت محفَّز.
مفردات من أربع كلمات
يحصل كل سيناريو على واحدة من أربع إجابات، ومعها الأساس الذي صدرت عليه — المحاور الحاسمة من مفردات ثابتة: الروبوت، والمخاطر، وسمعة الاحتيال، والسلوك، وتعدد الحسابات، والاستيلاء على الحساب، والشبكة، ونمط التسويق بالعمولة. تعرف دائمًا أي محور حرّك النصيحة، دون أن ترى أسماء إشارات أو أوزانًا أو عتبات.
حساب واحد، ثلاث قنوات
كتلة الإرشاد نفسها تركب webhook، وتجيب في Data API، وتُعرض على بطاقة الزائر في لوحة التحكم — مجموعة قواعد واحدة، ونتيجة واحدة، ولا مطابقة عليك. اقرأ النصيحة الخاصة بسيناريوك بدل الإجمالية: فالإجمالية ببساطة أشد الأربع، ملخص للوحات لا قرار دفع. ويُشحن إصدار القاعدة في الحمولة، فتغيّر القواعد أمر تلاحظه، لا أمر تستنتجه من نصيحة تبدّلت.
"guidance": { "version": 1, "overall": "review", "payment": "review", "registration": "challenge", "login": "allow", "affiliate": "allow", "basis": ["risk", "fraud_reputation"]}خمس حزم SDK في الواجهة، وقناتان في الخلفية
يُشحن جانب المتصفح كخمس حزم SDK — JavaScript الخام، React، Vue 3، Angular، Svelte 5. ولا توجد حزم SDK لجانب الخادم، وهذا مقصود: يتكامل خادمك عبر HTTP عادي من خلال webhooks موقّعة وواجهة Data API. والتحقق من التوقيع بضعة أسطر مقابل متجه مرجعي ننشره، ولا شيء إضافي تبقى مضطرًا لترقيته في شجرة اعتماديات خادمك.
الأسئلة المتكرّرة
اربطها في فترة بعد ظهر واحدة
أنشئ webhook في لوحة التحكم، ووجّهه إلى نقطة النهاية لديك، واضغط اختبار. تحقّق من التوقيع مقابل متجهنا المرجعي، ويكون الجزء الصعب قد انتهى.