هل تغيّر تصميم موقعك دون أن تلاحظ؟
أداة المراقبة البصرية تلتقط صورة كاملة لصفحة ويب على فترات منتظمة، وتقارنها بكسلًا ببكسل مع الصورة السابقة، فترصد أي تغيير في التصميم أو الألوان أو ترتيب العناصر — حتى لو بقي النص المقروء نفسه دون أي تعديل ظاهر للعين المجردة عند القراءة السريعة.
لماذا لا يكفي فحص النص وحده
قد يتغيّر شعار في الترويسة، أو يختفي بنر عرض، أو ينهار تنسيق قسم كامل بسبب خطأ برمجي في تحديث أخير، دون أن يتغيّر حرف واحد في النص المقروء. من يعتمد على فحص نصي فقط لا يرى هذا النوع من الأعطال إطلاقًا، بينما المقارنة البصرية تلتقطه فور حدوثه، لأنها تقرأ الصفحة كما يراها زائر حقيقي بعينيه، لا كما تُقرأ شفرتها البرمجية في الخلفية.
كيف تقرأ الأداة الفرق بين لقطتين
تحدد الأداة المناطق التي تغيّرت بصريًا بين لقطة وأخرى وتُبرزها بوضوح على الصورة نفسها، بدل ترك المستخدم يقارن صورتين كاملتين بعينه المجردة بحثًا عن فرق قد يكون دقيقًا وصعب الملاحظة، خصوصًا في صفحات طويلة أو معقّدة التصميم بأقسام كثيرة متراكبة. هذا يختصر مراجعة قد تستغرق دقائق طويلة إلى نظرة واحدة سريعة على الفروق المميّزة فقط دون بقية الصورة، فتوفّر وقت المراجعة اليدوية المتكرر.
الحالة التجريبية للأداة
الأداة في مرحلة تجريبية حاليًا، بمعنى أنها تعمل فعليًا وتُنتج نتائج حقيقية يمكن الاعتماد عليها اليوم، لكن آلية اكتشاف الفروق البصرية قد تُحدَّث أو تُضاف لها خيارات جديدة في الأسابيع القادمة قبل استقرارها نهائيًا في صورتها الكاملة. من يبدأ استخدامها الآن يحصل على قيمتها الفعلية دون انتظار، مع تحسّن متوقّع في دقّة اكتشاف الفروق تدريجيًا مع كل تحديث قادم للأداة نفسها.
السعر
تكلفة فحصة واحدة $0.040 للطلب إضافة إلى $0.001 لكل رابط، أي نحو $0.041 للفحصة — أعلى قليلًا من مراقبة النص لأنها تلتقط صورة كاملة للصفحة في كل مرة لا نصًا فقط. تُدار من صفحة الأداة على الويب مباشرة بجدول تختاره بنفسك، أو عبر الـAPI لدمجها في نظام مراقبة أوسع يشمل عدة صفحات في آن واحد، بلا اشتراك شهري ثابت.
حالات الاستخدام
رصد عطل تصميم بعد تحديث الموقع
يراقب صاحب متجر إلكتروني صغير مظهر صفحته الرئيسية بعد كل تحديث لقالب المتجر، للتأكد أن التحديث لم يكسر تنسيق قسم العروض أو يخفي زر الشراء.
متابعة ظهور بنر حملة تسويقية لدى منافس
تراقب شركة الخليج الرقمية الصفحة الرئيسية لمنافس مباشر لرصد لحظة ظهور بنر حملة تسويقية جديدة، والرد عليها بسرعة بدل اكتشافها متأخرًا.
التأكد من ثبات تصميم صفحة هبوط مدفوعة
يتحقق مسؤول تسويق رقمي دوريًا أن صفحة هبوط ممولة بإعلانات مدفوعة لم يتغيّر تصميمها بخطأ تقني يفقدها زوارًا دون أن يلاحظ أحد.
الأسئلة الشائعة
ما الفرق بين هذه الأداة وأداة مراقبة تغيّر النص؟
أداة النص تقارن المحتوى المكتوب فقط؛ هذه الأداة تلتقط صورة كاملة للصفحة وتقارنها بصريًا، فترصد تغييرات في التصميم لا يظهرها فحص النص.
هل تُحفظ الصور الملتقطة على خوادمكم؟
تُحفظ آخر لقطة فقط لأغراض المقارنة مع الفحص التالي، ولا تُستخدم لأي غرض آخر ولا تُشارك مع طرف ثالث.
كم تكلفة كل فحصة بصرية؟
نحو $0.041، بواقع $0.040 للطلب و$0.001 لكل رابط.
ماذا يعني أن الأداة في مرحلة تجريبية؟
تعمل وتُنتج نتائج فعلية حاليًا، لكن آلية اكتشاف الفروق قد تتحسّن مع تحديثات قادمة قبل استقرارها الكامل.
هل ترصد الأداة تغييرًا بسيطًا في لون واحد أو بكسل واحد؟
ترصد فروقًا ذات دلالة بصرية واضحة، لا كل بكسل منفرد، لتجنّب تنبيهات كثيرة لا فائدة منها.
هل تعمل على أي صفحة عامة دون تسجيل دخول؟
نعم، طالما الصفحة متاحة لأي زائر عادي دون الحاجة لتسجيل دخول مسبق.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/web/monitor-visual \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"input":"…"}'const res = await fetch("https://api.kit.forhosting.com/web/monitor-visual", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"input": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/monitor-visual",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"input": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/monitor-visual", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"input":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"input":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/monitor-visual", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"input": "…"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.monitor_visual",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
timeout_sec | 30 |
max_crawl_pages | 25 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
422 | task_failed | لم تنجح معالجة المهمة، ولن تُحتسب عليك؛ أعد المحاولة أو راسلنا مباشرة. |