Skip to main content
  1. Copy the script from dashboard.
  2. Paste it before </head> in your site template.
  3. Deploy.
  4. Verify browser network calls to /collect.
Example:
<head>
  <!-- other tags -->
  <script>
  (function(w,d,s,o,f,js,fjs){
    w['ScanovaTrackingObject']=o;w[o]=w[o]||function(){(w[o].q=w[o].q||[]).push(arguments)};
    js=d.createElement(s),fjs=d.getElementsByTagName(s)[0];
    js.id=o;js.src=f;js.async=1;fjs.parentNode.insertBefore(js,fjs);
  })(window,document,'script','scanova','https://cdn.scanova.io/ct/js/qcg.min.js');

  scanova('init', 'YOUR_SITE_ID', {
    debug: false,
    autoPageview: true,
    autoClicks: true,
    autoForms: true,
    autoScroll: true
  });
  </script>
</head>

Option B: Install Using Google Tag Manager (GTM)

  1. Open GTM container.
  2. Create a new Custom HTML tag.
  3. Paste the same Scanova script snippet.
  4. Trigger: All Pages.
  5. Save and publish container.

GTM Best Practices

  • Ensure only one Scanova script instance is loaded.
  • Do not duplicate direct + GTM install on same page.
  • Keep script in head-equivalent loading path for earliest capture.
  • If your site is SPA, keep loader persistent and avoid repeated init.

SPA Frameworks

  • Add loader snippet in your root HTML (for example index.html).
  • Keep one scanova('init', ...) call per page load lifecycle.

Send Custom Events from Frontend Code

After scanova('init', ...), send custom events any time:
scanova('track', 'event_name', { key: 'value' });

Example: CTA click

document.getElementById('buy-now-btn')?.addEventListener('click', () => {
  scanova('track', 'buy_now_click', {
    page: window.location.pathname,
    plan: 'pro'
  });
});

Example: Signup completed

scanova('track', 'signup_completed', {
  method: 'email',
  campaign: 'spring_offer'
});

Metadata Guidelines

  • Send compact JSON metadata.
  • Do not send raw emails/PII in browser metadata.
  • Use stable event names (snake_case recommended).
  • For conversions from backend systems, prefer server events.

Optional Element Naming

Use data-scnv-name on links/buttons/forms for cleaner click labels in reports. Example:
<button data-scnv-name="Pricing CTA">Start Trial</button>

Next