All Website Platforms
Find your website platform, CMS, ecommerce system, framework, or host and see exactly where the Ours Privacy Web SDK snippet goes.
Ours Privacy installs with a single snippet in your site's <head>, so it works on any platform that lets you add code to the head. That covers almost everything.
Use the tables below to find your platform and see where the snippet goes. Platforms with a linked guide have step-by-step instructions. For everything else, copy your snippet from the Install Ours page and paste it in the location listed.
A note on plans. Many platforms put custom code behind a paid plan, and which plan that is changes over time. Where a row says paid plan, check your platform's current plan comparison, or its linked guide below, for the specific tier.
You may not need custom code at all. Plenty of platforms that give you no raw head editor still have a built-in Google Tag Manager field. If yours does, install through the Ours Privacy GTM template instead: the platform loads GTM, and GTM loads Ours. That is often the way in when the head is locked or sits behind a higher plan.
Where you can add code once, the Ours Privacy Tag Manager is the better long-term choice. Its install tag goes in the <head> like any other snippet, but you only paste it a single time — after that you add, change, and remove tags visually without touching the site again.
Don't see your platform? Contact support@oursprivacy.com. If it accepts head code or a tag manager, it works, and we will confirm it for you.
Website Builders
| Platform | Where the snippet goes |
|---|---|
| Squarespace | Settings, Advanced, Code Injection, Header (paid plan) |
| Wix | Settings, Custom Code, Head (paid plan with a connected domain) |
| Webflow | Site Settings, Custom Code, Head (paid plan) |
| Framer | Site Settings, Custom Code, Head |
| Weebly and Square Online | Settings, SEO, Header Code |
| Duda | Settings, site-wide Head HTML |
| GoDaddy | Managed WordPress, cPanel, and VPS hosting all expose the head |
| Carrd | Embed element, placement Head (paid plan) |
| Dorik | Custom Code, site level (paid plan) |
| Umso | Custom Site Code (paid plan) |
| Typedream | Site Settings, Code Injection (paid plan) |
| Super.so | Code, Head tab |
Content Management Systems
| Platform | Where the snippet goes |
|---|---|
| WordPress | Head and footer plugin, or your theme's head |
| WordPress.com | Requires plugin support (paid plan) |
| Adobe Experience Manager | Page component head, or a client library |
| Sitecore | SXA snippet, layout view, or XM Cloud front end |
| Optimizely CMS | Shared layout view |
| Kentico | Shared layout view |
| HubSpot CMS | Settings, Content, Pages, Site header HTML (paid plan) |
| Drupal | Head-asset module, or your theme |
| Acquia | Drupal install, deployed through Acquia Cloud |
| Ghost | Settings, Code injection, Site header |
| Joomla | Head-code plugin, or your template |
| Craft CMS | Your Twig layout template |
| Statamic | Your layout template |
| Umbraco | Your Razor layout |
| Wagtail | Base template head block |
Headless Content Platforms
With a headless CMS there is no head field to paste into, because the CMS does not render your pages. Install in the front end instead. See Installing on a headless CMS.
| Platform | Where the snippet goes |
|---|---|
| Contentful | Your front-end application |
| Contentstack | Your front-end application |
| Sanity | Your front-end application |
| Strapi | Your front-end application |
| Storyblok | Your front-end application |
| Prismic | Your front-end application |
| Payload | Your Next.js root layout |
| Hygraph | Your front-end application |
| Directus | Your front-end application |
| Builder.io | Your front-end application |
Ecommerce
| Platform | Where the snippet goes |
|---|---|
| Shopify | Custom pixel using Shopify's Customer Events |
| WooCommerce | WordPress head, plus order tracking |
| BigCommerce | Settings, Advanced, Script Manager, Head |
| Adobe Commerce and Magento | Content, Design, Configuration, HTML Head |
| Salesforce Commerce Cloud | Storefront head template, through a cartridge |
| SAP Commerce Cloud | Storefront index.html or shared template |
| Wix Stores | Wix Custom Code, Head (paid plan) |
| Squarespace Commerce | Code Injection. Squarespace does not run custom code on checkout, so track the order from the confirmation page. |
| Shopware | Template override, or a marketplace plugin |
| PrestaShop | Custom-code module, or your template |
| Ecwid | Custom JavaScript setting (paid plan) |
| Big Cartel | Integration Code, Head tab (paid plan) |
| commercetools | Your front-end application |
| Medusa | Your storefront application |
| Swell | Your storefront application |
Frameworks
Most frameworks put the snippet in one root layout or HTML entry file. Client-side navigation is tracked automatically, as described in Tracking page views in single-page apps.
| Framework | Where the snippet goes |
|---|---|
| Next.js | Root layout, or _document on Pages Router |
| Vite and React Router | index.html head |
| Nuxt | nuxt.config head, or useHead |
| SvelteKit | src/app.html head |
| Astro | Your shared layout component |
| Remix and React Router 7 | app/root.tsx head |
| Gatsby | gatsby-ssr.js head components |
| Angular | src/index.html head |
| Vue | index.html head |
| Hugo | Your theme's base template head |
| Jekyll | _includes/head.html |
| Eleventy | Your base layout template |
| Docusaurus | docusaurus.config.js head tags |
Hosting Providers
Hosting rarely changes the install, because the snippet lives in your site's code.
| Host | Where the snippet goes |
|---|---|
| Netlify | Snippet Injection, or your framework's head. Injection skips server-rendered routes, so prefer the framework head if you server-render. |
| Cloudflare Pages and Workers | Your framework's head, or an edge worker |
| Vercel | Your framework's head |
| AWS Amplify | Your framework's head |
| Amazon S3 with CloudFront | Your HTML templates |
| Render | Your framework's head |
| Railway | Your application's head |
| Fly.io | Your application's head |
| Heroku | Your application's head |
| DigitalOcean App Platform | Your application's head |
| Azure Static Web Apps | Your HTML templates |
| GitHub Pages | Your site generator's head template |
AI App Builders
Most AI builders generate a real codebase, so you edit the head directly or after exporting. See Tracking page views in single-page apps for the routing note.
| Platform | Where the snippet goes |
|---|---|
| Lovable | index.html head |
| v0 | Root layout head |
| Bolt.new | index.html head |
| Replit | Your HTML source before deploying |
| Bubble | Settings, SEO and metatags, header script |
| Base44 | Exported source head |
| Softr | Custom Code block (paid plan) |
| Hostinger Horizons | Exported source head |
| Create.xyz | Exported project head |
| 10Web | WordPress head, since 10Web generates WordPress |
Marketing Automation and Landing Pages
| Platform | Where the snippet goes |
|---|---|
| HubSpot landing pages | Site header HTML, or per-page head (paid plan) |
| Adobe Marketo Engage | Landing page template head |
| Salesforce Account Engagement | Layout template head |
| Salesforce Marketing Cloud | CloudPage head |
| Oracle Eloqua | Landing page template head |
| Unbounce | Script Manager, Head (custom domain required) |
| Instapage | Page head, or Workspace Scripts (paid plan for account-wide scripts) |
| Leadpages | Page tracking field, or Global Scripts (paid plan for global scripts) |
| ClickFunnels | Header code, at site or funnel level |
| Kajabi | Header Page Scripts. Site-wide scripts do not run on checkout, so fill in the checkout field as well. |
| Kartra | Page tracking code, Header (paid plan) |
| Systeme.io | Page settings, custom code |
| GoHighLevel | Settings, Custom Code, Header |
Courses, Community, and Membership
| Platform | Where the snippet goes |
|---|---|
| Circle | Settings, Code Snippets, Head (paid plan) |
| Teachable | School-level Code Snippets, head. Checkout and login pages are excluded. |
| Thinkific | Site Footer Code, which loads later in the page than a head script would |
| Podia | Body injection, since there is no head field |
| Memberstack | Your host site's head |
| Outseta | Your host site's head |
Booking and Scheduling
Booking tools usually render inside an iframe served from the tool's own domain. The snippet in your site's head tracks the visit to your page, but it cannot see the steps inside the widget. Track the completed booking from your own page instead.
That applies the same way to Acuity and Squarespace Scheduling, Mindbody, SimplePractice, Jane App, IntakeQ, and Vagaro — install the snippet in your site's head as you normally would, and record the booking as an event when the widget hands the visitor back to you.
Calendly and Cal.com have their own guides.
Healthcare and Vertical Site Providers
Many practices run marketing sites built by a specialist provider. In most cases the provider controls the head, so the install is a short request to them: send them your snippet and ask for it in the site-wide header. That is the path for Officite, RevenueWell, Henry Schein and Dentrix sites, Scorpion, and BentoBox.
Where you manage the site settings yourself, add the snippet to your host site's head as usual — Tebra exposes a header code field directly, and Solutionreach, Luma Health, Klara, kvCORE, Real Geeks, and Housecall Pro all let you edit the head of the site they serve.
Because these are regulated environments, be deliberate about what you collect. Ours Privacy is built for HIPAA-regulated workflows, and Global Data Governance controls which properties reach each destination. Keep marketing tags on your marketing pages: a logged-in patient portal is not a surface we would recommend instrumenting this way.
Embeds: Maps, Videos, and Video Channels
Everything above is about the tracking snippet, which goes in your site's <head>. Embeddable maps, video players, and video channels are different: each is a self-contained block of HTML that goes into page content, not the head. No JavaScript, no build step.
That means the answer can differ from the tables above. A platform that limits site-wide head scripts often still accepts an embed block in page content, so a map or a video can work on a site where site-wide tracking cannot.
| Platform | Where the embed block goes |
|---|---|
| Webflow | Add panel, Embed element |
| WordPress | Custom HTML block |
| Squarespace | Code Block (paid plan) |
| Wix | Embed HTML element |
| Shopify | Page HTML editor, or a theme section |
| HubSpot CMS | Rich text module source view, or an HTML module |
| Ghost | HTML card |
| Drupal | A text field using a full HTML format |
| Framer | Embed component |
| BigCommerce | Page editor source view |
| Adobe Experience Manager | An embed or HTML component |
| Sitecore | SXA HTML snippet rendering |
| Duda | HTML widget |
| Weebly and Square Online | Embed Code element |
| Squarespace Commerce | Code Block on any product or page (paid plan) |
| Headless platforms (Contentful, Contentstack, Sanity) | Render the block in your front end |
| React, Vue, Angular, Svelte | Drop the block into a component or template |
Because embeds load in a frame served from your own custom domain when you configure one, they keep working on platforms with strict script rules.
Next Steps
- Web SDK reference: full list of tracking methods and options.
- Tracking page views in single-page apps: how client-side navigation is handled.
- Installing on a headless CMS: where the snippet goes in a decoupled setup.
- Embeddable maps: put a location map on any page.
- Embedding videos: put a video player on any page.
- Tag Manager: manage tags visually instead of editing code.
- Cookie Consent installation: add the consent banner so it loads before other tracking scripts.
If your platform is not listed, contact us at support@oursprivacy.com.
How is this guide?

