Skip to content

Single-page apps ​

The tag counts a page view on load and on every client-side navigation it sees: history.pushState, history.replaceState and popstate. That covers React Router, Next.js, Vue Router, Nuxt, Angular and SvelteKit without any code.

  • Hash routing (/#/products): turn on hashRouting.

    js
    eureka('config', { hashRouting: true })
  • Manual page views: if your router doesn't change the URL, or you want full control, turn page autocapture off and send page views yourself.

    js
    eureka('config', { autocapture: { pageview: false } })
    // after each route change, once the title is set:
    eureka('page_view', { page_type: 'product' })

Before each SPA navigation the tag sends page_leave for the previous page with its engaged time and scroll depth. Agent detection continues across navigations: an agent that keeps browsing stays an agent.

Agents & humans, every visit counts!