Skip to main content
تختلف دورة حياة الصفحة في تطبيقات الصفحة الواحدة (SPA) عن المواقع التقليدية متعددة الصفحات. فالمتصفح لا يعيد التحميل بالكامل عند التنقل، ولذلك يُطلَق autoPageview المعتاد مرة واحدة فقط — عند التحميل الأول. يوضح هذا الدليل كيفية التعامل مع التتبع بشكل صحيح في React وNext.js وVue.

الفرق الجوهري في تطبيقات SPA

في الموقع التقليدي، يؤدي كل تنقّل إلى إعادة تحميل كاملة تعيد تشغيل SDK وتُطلق حدث pageview. أما في تطبيق SPA:
  • تُحمَّل الصفحة مرة واحدة
  • تتم عمليات التنقّل اللاحقة عبر JavaScript (يتغيّر الرابط دون إعادة تحميل الصفحة)
  • يُطلَق autoPageview عند ذلك التحميل الأول فقط
  • عليك إطلاق حدث pageview يدويًا عند كل تغيّر للمسار

قواعد عامة لكل تطبيقات SPA

  1. حمّل نص SDK مرة واحدة — في ملف HTML الجذر أو المكوّن الجذر، لا في كل مكوّن صفحة أو مسار
  2. استدعِ scanova('init', ...) مرة واحدة — في نقطة دخول تطبيقك
  3. عطّل autoPageview — وتولَّ بنفسك أحداث مشاهدة الصفحة عند تغيّر المسار
  4. أطلق scanova('track', 'pageview') عند كل تغيّر للمسار — باستخدام حدث التنقّل أو الخطّاف الخاص بالموجّه لديك

React (Create React App / Vite)

public/index.html — لتحميل SDK:
src/main.jsx أو src/App.jsx — للتهيئة مرة واحدة وتتبّع تغيّرات المسار:

Next.js (App Router)

في App Router الخاص بـ Next.js، استخدم مكوّن عميل داخل التخطيط الجذر لديك. app/layout.tsx:
components/ScanovaTracker.tsx:

Next.js (Pages Router)

pages/_app.tsx:
أضف مُحمِّل SDK إلى pages/_document.tsx:

Vue 3 (Vue Router)

index.html — لتحميل SDK:
src/main.ts:

أخطاء شائعة