> ## Documentation Index
> Fetch the complete documentation index at: https://docs.scanova.io/llms.txt
> Use this file to discover all available pages before exploring further.

# التحقق من SDK المتصفح وتصحيح أخطائه

> تأكّد من تثبيت SDK المتصفح من Scanova بشكل صحيح، ومن إرسال الأحداث، ومن عمل النسبة إلى رمز QR، عبر قائمة تحقق خطوة بخطوة داخل DevTools.

## قائمة التحقق

استخدم هذه القائمة بعد تثبيت النص البرمجي للتأكد من أن كل شيء يعمل:

### 1. تحقّق من طلب الشبكة

1. افتح موقعك في Chrome أو Firefox
2. افتح **DevTools** (‏F12 أو زر الفأرة الأيمن ← فحص)
3. انتقل إلى علامة التبويب **Network**
4. رشّح باستخدام `/ct`
5. أعد تحميل الصفحة تحميلًا قسريًا (‏Ctrl+Shift+R / Cmd+Shift+R)

من المفترض أن ترى طلب `POST` إلى `https://t.scanova.io/ct` بالحالة `200`.

### 2. افحص حمولة الطلب

انقر على طلب `/ct` ← علامة التبويب **Payload**. تأكّد مما يلي:

* أن `site_id` يطابق معرّف موقع التتبع لديك في لوحة التحكم
* أن `event_type` هو `pageview` (إذا كان `autoPageview: true`)
* أن `scan_session_id` موجود (إذا زرت الصفحة بمعامل `?scnv=`)

**مثال على حمولة سليمة:**

```json theme={null}
{
  "event_id": "f9ac7db6-f900-4d8e-8918-c846834195a8",
  "site_id": "YOUR_SITE_ID",
  "event_type": "pageview",
  "scan_session_id": "7ad26d4f-3181-4ef8-b6ca-b8f59499dd43",
  "page_url": "https://yoursite.com/?scnv=7ad26d4f-3181-4ef8-b6ca-b8f59499dd43",
  "timestamp": "2026-05-13T10:00:00.000Z"
}
```

### 3. اختبر النسبة إلى رمز QR

زُر صفحتك بمعامل `?scnv=` لمحاكاة عملية مسح:

```
https://yoursite.com/?scnv=00000000-0000-0000-0000-000000000001
```

افحص الحمولة — يجب أن يطابق `scan_session_id` القيمة التي استخدمتها.

### 4. فعّل وضع التصحيح مؤقتًا

أضف `debug: true` إلى استدعاء init وأعد التحميل. عندها يطبع SDK كل نشاطه في وحدة تحكم المتصفح:

```javascript theme={null}
scanova('init', 'YOUR_SITE_ID', { debug: true, autoPageview: true });
```

من المفترض أن تُظهر وحدة التحكم ما يلي:

```
[QCG SDK] Initialized with Site ID: YOUR_SITE_ID
[QCG SDK] Loaded version 1.x.x
```

أزل `debug: true` قبل النشر إلى بيئة الإنتاج.

***

## الأخطاء الشائعة وحلولها

### لا يظهر أي طلب `/ct`

| السبب                                                  | الحل                                                                                    |
| ------------------------------------------------------ | --------------------------------------------------------------------------------------- |
| النص البرمجي ليس داخل `<head>`                         | الصقه قبل `</head>`، لا داخل `<body>`                                                   |
| حجب النص بواسطة CSP                                    | أضف `https://cdn.scanova.io` و`https://t.scanova.io` إلى `Content-Security-Policy` لديك |
| مانع إعلانات أو إضافة متصفح تحجب الطلب                 | اختبر في نافذة خاصة مع تعطيل الإضافات                                                   |
| `autoPageview: false` ولا يوجد استدعاء يدوي لـ `track` | فعّل `autoPageview` أو أضف حدثًا يدويًا                                                 |
| استدعيت `init` قبل اكتمال تحميل SDK                    | يصفّ SDK الاستدعاءات السابقة لتحميله — ومن المفترض أن يُحل الأمر تلقائيًا               |

### `400` — طلب غير صالح

قيمة `site_id` غير صالحة أو فارغة أو تخص موقعًا غير نشط. تحقّق من:

* أنك تستخدم `site_id` الخاص بموقع التتبع الصحيح في لوحة التحكم
* أن الموقع نشط (راجع حالته في لوحة التحكم)

### `403` — النطاق غير مسموح به

نطاق موقعك غير مُدرج في قائمة **Allowed Domains** الخاصة بموقع التتبع هذا.

1. انتقل إلى **التحليلات ← تتبع التحويلات**
2. اختر موقعك ← انقر على **Edit**
3. أضف اسم المضيف بدقة (مثل `yoursite.com` و`www.yoursite.com` و`staging.yoursite.com`)
4. احفظ

<Note>
  يعتمد فحص النطاق على ترويسة `Origin` أو `Referer` في الطلب. أضف اسم المضيف تمامًا كما يظهر في شريط العنوان — فوجود `www` أو غيابه يُحدث فرقًا.
</Note>

### `422` — خطأ في التحقق

لم تجتز حمولة الحدث عملية التحقق. الأسباب الشائعة:

* `event_type` مفقود أو فارغ
* تجاوز أحد الحقول الطول المسموح به
* احتواء `metadata` على عنوان بريد إلكتروني صريح — استخدم `user_identifiers` بقيمة مجزّأة بدلًا من ذلك
* تجاوز `metadata` حجم 10 كيلوبايت

### `429` — تجاوز حد المعدل

يرسل موقعك الأحداث أسرع من المعدل المسموح به (100 حدث في الدقيقة لكل عنوان IP لأحداث المتصفح). وهذا نادر في الاستخدام الطبيعي. وإن واجهته أثناء الاختبار، فباعِد بين أحداثك الاختبارية.

### تظهر الأحداث في الشبكة لكن لا تظهر في لوحة التحكم

* انتظر حتى 60 ثانية — هناك تأخير معالجة قصير
* تأكّد من أنك تنظر إلى موقع التتبع الصحيح في لوحة التحكم
* تحقّق من أن `site_id` في حمولة الحدث يطابق الموقع في لوحة التحكم

### لا يظهر أي طلب `/ct` في زيارة معيّنة

إذا لم تُنتج الزيارة أي طلب شبكة، فالأرجح أن الزائر وصل دون مسح رمز QR — أي أن المعامل `?scnv=` غير موجود. ولا يرسل SDK أي حدث في غياب `scan_session_id`. وهذا سلوك متوقّع: إذ لا يتتبّع SDK سوى الزيارات الناتجة عن مسح رمز QR.

### إطلاق حدثين لكل تحميل للصفحة

لديك `autoPageview: true` واستدعاء يدوي `scanova('track', 'page_view', ...)` معًا في شيفرتك. احذف أحدهما. راجع [الأحداث التلقائية](/ar/conversion-tracking/browser/auto-tracking#page-view) للتفاصيل.
