> ## 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 المتصفح من Scanova تلقائيًا: مشاهدات الصفحة، والنقرات، وعمق التمرير، وإرسال النماذج، مع نوع كل حدث وبياناته الوصفية وحمولته.

عند تفعيل خيارات التتبع التلقائي في `scanova('init', ...)`، يلتقط SDK إجراءات المستخدم تلقائيًا دون أي شيفرة إضافية. تعرض هذه الصفحة بالضبط ما ترسله كل خاصية من خصائص التتبع التلقائي.

## مشاهدة الصفحة

**يُفعَّل بواسطة:** `autoPageview: true`

يُطلَق مرة واحدة لكل تحميل للصفحة، بمجرد تهيئة SDK.

**نوع الحدث:** `pageview`

**البيانات الوصفية الملتقطة:** *(لا شيء — سياق الصفحة موجود في حقول المستوى الأعلى)*

**مثال كامل على الحمولة:**

```json theme={null}
{
  "event_id": "f9ac7db6-f900-4d8e-8918-c846834195a8",
  "event_type": "pageview",
  "site_id": "YOUR_SITE_ID",
  "scan_session_id": "7ad26d4f-3181-4ef8-b6ca-b8f59499dd43",
  "web_session_id": "2d0c328a-01d0-4010-85f4-f327130d1bd4",
  "visitor_id": "363fe851-7d8f-4090-902f-0f5a462829f5",
  "page_url": "https://yoursite.com/?scnv=7ad26d4f-3181-4ef8-b6ca-b8f59499dd43",
  "referrer": "https://google.com",
  "timestamp": "2026-05-13T10:00:00.000Z",
  "device": {
    "user_agent": "Mozilla/5.0 ...",
    "screen_width": 1440,
    "screen_height": 900,
    "language": "en-US"
  },
  "metadata": {}
}
```

**مهم:** يُطلَق `autoPageview` عند تهيئة SDK. وإذا استدعيت أيضًا `scanova('track', 'page_view', ...)` يدويًا، فستُرسل حدثين لكل تحميل للصفحة. استخدم أحدهما فقط.

**منع التكرار:** يمنع SDK إطلاق `pageview` مرتين للرابط نفسه ضمن دورة حياة واحدة. في موقع تقليدي متعدد الصفحات، إذا غادر الزائر ثم عاد إلى الرابط نفسه، فإن التحميل الثاني يعيد تهيئة SDK ويُطلق الحدث بشكل طبيعي. أما في تطبيق الصفحة الواحدة (SPA) حيث يتغيّر الرابط من جهة العميل، فيعني هذا المنع أن العودة إلى مسار سبقت زيارته **لا** تعيد إطلاق مشاهدة الصفحة — عليك معالجة ذلك بنفسك. راجع [دليل SPA](/ar/conversion-tracking/browser/spa-frameworks).

***

## النقر

**يُفعَّل بواسطة:** `autoClicks: true`

يُطلَق عندما ينقر الزائر على رابط (`<a>`) أو زر (`<button>`) أو أي عنصر يحمل `role="button"`.

**نوع الحدث:** `click`

**البيانات الوصفية الملتقطة:**

| المفتاح           | الوصف                                                                                                                 |
| ----------------- | --------------------------------------------------------------------------------------------------------------------- |
| `element_type`    | اسم وسم HTML: `A` أو `BUTTON`                                                                                         |
| `element_text`    | النص الظاهر أو `aria-label` للعنصر (100 حرف كحد أقصى). وإذا كان `data-scnv-name` مضبوطًا، تُستخدم قيمته بدلًا من ذلك. |
| `destination_url` | قيمة `href` لعناصر الروابط (تُدرج فقط عند وجودها وألا تكون `javascript:` أو `mailto:`)                                |

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

```json theme={null}
{
  "event_type": "click",
  "metadata": {
    "element_type": "A",
    "element_text": "View Pricing",
    "destination_url": "/pricing"
  }
}
```

**تسميات مخصصة للعناصر:**

أضف `data-scnv-name` إلى أي عنصر للتحكم في التسمية التي تظهر في التقارير:

```html theme={null}
<button data-scnv-name="Hero CTA">Get Started Free</button>
<a href="/pricing" data-scnv-name="Nav Pricing">Pricing</a>
```

***

## إرسال النموذج

**يُفعَّل بواسطة:** `autoForms: true`

يُطلَق عندما يرسل الزائر أي `<form>` في الصفحة. قيم الحقول **لا تُلتقط أبدًا** — تُلتقط هوية النموذج فقط.

**نوع الحدث:** `form_submit`

**البيانات الوصفية الملتقطة:**

| المفتاح       | الوصف                                                                                                   |
| ------------- | ------------------------------------------------------------------------------------------------------- |
| `form_name`   | معرّف النموذج. ترتيب الأولوية: `data-scnv-name` ← `aria-label` ← السمة `name` ← `id` ← `"unnamed-form"` |
| `form_action` | السمة `action` للنموذج، أو المسار الحالي إن لم تكن مضبوطة                                               |

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

```json theme={null}
{
  "event_type": "form_submit",
  "metadata": {
    "form_name": "Contact Form",
    "form_action": "/contact"
  }
}
```

**اسم مخصص للنموذج:**

```html theme={null}
<form data-scnv-name="Newsletter Signup" action="/subscribe">
  ...
</form>
```

***

## عمق التمرير

**يُفعَّل بواسطة:** `autoScroll: true`

يُطلَق عندما يتجاوز الزائر علامات محددة في الصفحة. تُطلَق كل علامة **مرة واحدة لكل تحميل للصفحة** — والتمرير صعودًا ونزولًا بشكل متكرر لا يعيد إطلاق العلامة نفسها.

**نوع الحدث:** `scroll`

**العلامات:** 25% و50% و75% و90%

**البيانات الوصفية الملتقطة:**

| المفتاح        | الوصف                                                           |
| -------------- | --------------------------------------------------------------- |
| `scroll_depth` | النسبة المئوية التي بلغها التمرير: `25` أو `50` أو `75` أو `90` |

**أمثلة على الحمولة:**

```json theme={null}
{ "event_type": "scroll", "metadata": { "scroll_depth": 25 } }
{ "event_type": "scroll", "metadata": { "scroll_depth": 50 } }
{ "event_type": "scroll", "metadata": { "scroll_depth": 75 } }
{ "event_type": "scroll", "metadata": { "scroll_depth": 90 } }
```

تستخدم أحداث التمرير مهلة تهدئة قدرها 100 مللي ثانية لتجنّب الإطلاق مع الحركات الطفيفة.

**تنبيه خاص بتطبيقات SPA:** تُحفظ علامات التمرير في الذاكرة و**لا تُعاد تهيئتها عند تغيير المسار** في تطبيق الصفحة الواحدة. فإذا بلغ الزائر 75% في `/home` ثم انتقل إلى `/pricing`، لن يُطلق SDK أحداث 25% أو 50% أو 75% في `/pricing` — بل الأحداث الخاصة بالعلامات التي تتجاوز ما بلغه سابقًا فقط. ولإعادة تهيئة تتبع التمرير عند تغيير المسار، أعد تحميل SDK أو اعتمد أحداث تمرير يدوية.

***

## الجمع بين التتبع التلقائي والأحداث المخصصة

تتعايش الأحداث التلقائية والمخصصة دون تعارض. الإعداد المعتاد يتتبّع مشاهدات الصفحة وعمق التمرير تلقائيًا، ويضيف أحداثًا مخصصة للإجراءات عالية القيمة:

```javascript theme={null}
scanova('init', 'YOUR_SITE_ID', {
  autoPageview: true,
  autoScroll: true,
  autoClicks: false,  // disabled; we use custom click tracking below
  autoForms: false
});

// Manual click event for a specific button
document.getElementById('cta-btn').addEventListener('click', () => {
  scanova('track', 'cta_click', { plan: 'pro', section: 'hero' });
});
```
