Integration Guides
The qvctrs SDK uses a command queue pattern (like Google Analytics) that works with any async loading strategy. Copy the snippet, paste it, done.
Plug and Play
No timing hacks, no retry loops, no framework-specific workarounds needed. The same snippet works everywhere.
Choose Your Platform
Plain HTML
Static sites, vanilla JavaScript, or any HTML page
Next.js
App Router and Pages Router with next/script
React
Create React App, Vite, or any React project
Vue
Vue 3, Nuxt, or any Vue project
WordPress
Theme customizer, plugins, or direct theme editing
Shopify
Theme editor or Shopify app integration
Webflow
Site settings custom code injection
Google Tag Manager
Custom HTML tag for GTM-managed sites
How It Works
The qvctrs snippet consists of two parts:
- Shim script — Creates a lightweight queue that captures
init()calls immediately, even before the SDK loads - SDK script — Loads asynchronously and processes any queued commands when ready
This means you can call qvctrs.init() at any time — the command is either executed immediately (if SDK is loaded) or queued for later (if not).
Universal Snippet
This snippet works on any website:
<script>
window.qvctrs=window.qvctrs||{};window.qvctrs.q=window.qvctrs.q||[];
window.qvctrs.init=window.qvctrs.init||function(){window.qvctrs.q.push(['init'].concat(Array.prototype.slice.call(arguments)))};
window.qvctrs.init({siteId:'YOUR_SITE_ID'});
</script>
<script src="https://www.qvctrs.com/qvctrs-sdk-v2.js" async></script>Replace YOUR_SITE_ID with your actual Site ID from the dashboard.