Skip to main content
Les applications monopage (SPA) ont un cycle de vie différent des sites multipages classiques. Le navigateur ne recharge pas entièrement lors de la navigation, si bien que le autoPageview standard ne se déclenche qu’une fois, au chargement initial. Ce guide montre comment gérer correctement le suivi dans React, Next.js et Vue.

La différence essentielle avec les SPA

Sur un site classique, chaque navigation provoque un rechargement complet qui réexécute le SDK et déclenche un pageview. Dans une SPA :
  • La page se charge une seule fois
  • Les navigations suivantes sont pilotées par JavaScript (l’URL change, mais la page ne se recharge pas)
  • autoPageview ne se déclenche qu’à ce premier chargement
  • Vous devez déclencher manuellement un événement pageview à chaque changement de route

Règles générales pour toutes les SPA

  1. Chargez le snippet du SDK une seule fois — dans votre fichier HTML racine ou votre composant racine, pas dans chaque composant de page ou de route
  2. Appelez scanova('init', ...) une seule fois — dans le point d’entrée de votre application
  3. Désactivez autoPageview — gérez vous-même les pages vues lors des changements de route
  4. Déclenchez scanova('track', 'pageview') à chaque changement de route — via l’événement de navigation ou le hook de votre routeur

React (Create React App / Vite)

public/index.html — charger le SDK :
src/main.jsx ou src/App.jsx — initialiser une fois et suivre les changements de route :

Next.js (App Router)

Dans l’App Router de Next.js, utilisez un composant client dans votre layout racine. app/layout.tsx:
components/ScanovaTracker.tsx:

Next.js (Pages Router)

pages/_app.tsx:
Ajoutez le chargeur du SDK dans pages/_document.tsx :

Vue 3 (Vue Router)

index.html — charger le SDK :
src/main.ts:

Erreurs fréquentes