Framework Guides

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

PlatformWhere the snippet goes
SquarespaceSettings, Advanced, Code Injection, Header (paid plan)
WixSettings, Custom Code, Head (paid plan with a connected domain)
WebflowSite Settings, Custom Code, Head (paid plan)
FramerSite Settings, Custom Code, Head
Weebly and Square OnlineSettings, SEO, Header Code
DudaSettings, site-wide Head HTML
GoDaddyManaged WordPress, cPanel, and VPS hosting all expose the head
CarrdEmbed element, placement Head (paid plan)
DorikCustom Code, site level (paid plan)
UmsoCustom Site Code (paid plan)
TypedreamSite Settings, Code Injection (paid plan)
Super.soCode, Head tab

Content Management Systems

PlatformWhere the snippet goes
WordPressHead and footer plugin, or your theme's head
WordPress.comRequires plugin support (paid plan)
Adobe Experience ManagerPage component head, or a client library
SitecoreSXA snippet, layout view, or XM Cloud front end
Optimizely CMSShared layout view
KenticoShared layout view
HubSpot CMSSettings, Content, Pages, Site header HTML (paid plan)
DrupalHead-asset module, or your theme
AcquiaDrupal install, deployed through Acquia Cloud
GhostSettings, Code injection, Site header
JoomlaHead-code plugin, or your template
Craft CMSYour Twig layout template
StatamicYour layout template
UmbracoYour Razor layout
WagtailBase 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.

PlatformWhere the snippet goes
ContentfulYour front-end application
ContentstackYour front-end application
SanityYour front-end application
StrapiYour front-end application
StoryblokYour front-end application
PrismicYour front-end application
PayloadYour Next.js root layout
HygraphYour front-end application
DirectusYour front-end application
Builder.ioYour front-end application

Ecommerce

PlatformWhere the snippet goes
ShopifyCustom pixel using Shopify's Customer Events
WooCommerceWordPress head, plus order tracking
BigCommerceSettings, Advanced, Script Manager, Head
Adobe Commerce and MagentoContent, Design, Configuration, HTML Head
Salesforce Commerce CloudStorefront head template, through a cartridge
SAP Commerce CloudStorefront index.html or shared template
Wix StoresWix Custom Code, Head (paid plan)
Squarespace CommerceCode Injection. Squarespace does not run custom code on checkout, so track the order from the confirmation page.
ShopwareTemplate override, or a marketplace plugin
PrestaShopCustom-code module, or your template
EcwidCustom JavaScript setting (paid plan)
Big CartelIntegration Code, Head tab (paid plan)
commercetoolsYour front-end application
MedusaYour storefront application
SwellYour 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.

FrameworkWhere the snippet goes
Next.jsRoot layout, or _document on Pages Router
Vite and React Routerindex.html head
Nuxtnuxt.config head, or useHead
SvelteKitsrc/app.html head
AstroYour shared layout component
Remix and React Router 7app/root.tsx head
Gatsbygatsby-ssr.js head components
Angularsrc/index.html head
Vueindex.html head
HugoYour theme's base template head
Jekyll_includes/head.html
EleventyYour base layout template
Docusaurusdocusaurus.config.js head tags

Hosting Providers

Hosting rarely changes the install, because the snippet lives in your site's code.

HostWhere the snippet goes
NetlifySnippet Injection, or your framework's head. Injection skips server-rendered routes, so prefer the framework head if you server-render.
Cloudflare Pages and WorkersYour framework's head, or an edge worker
VercelYour framework's head
AWS AmplifyYour framework's head
Amazon S3 with CloudFrontYour HTML templates
RenderYour framework's head
RailwayYour application's head
Fly.ioYour application's head
HerokuYour application's head
DigitalOcean App PlatformYour application's head
Azure Static Web AppsYour HTML templates
GitHub PagesYour 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.

PlatformWhere the snippet goes
Lovableindex.html head
v0Root layout head
Bolt.newindex.html head
ReplitYour HTML source before deploying
BubbleSettings, SEO and metatags, header script
Base44Exported source head
SoftrCustom Code block (paid plan)
Hostinger HorizonsExported source head
Create.xyzExported project head
10WebWordPress head, since 10Web generates WordPress

Marketing Automation and Landing Pages

PlatformWhere the snippet goes
HubSpot landing pagesSite header HTML, or per-page head (paid plan)
Adobe Marketo EngageLanding page template head
Salesforce Account EngagementLayout template head
Salesforce Marketing CloudCloudPage head
Oracle EloquaLanding page template head
UnbounceScript Manager, Head (custom domain required)
InstapagePage head, or Workspace Scripts (paid plan for account-wide scripts)
LeadpagesPage tracking field, or Global Scripts (paid plan for global scripts)
ClickFunnelsHeader code, at site or funnel level
KajabiHeader Page Scripts. Site-wide scripts do not run on checkout, so fill in the checkout field as well.
KartraPage tracking code, Header (paid plan)
Systeme.ioPage settings, custom code
GoHighLevelSettings, Custom Code, Header

Courses, Community, and Membership

PlatformWhere the snippet goes
CircleSettings, Code Snippets, Head (paid plan)
TeachableSchool-level Code Snippets, head. Checkout and login pages are excluded.
ThinkificSite Footer Code, which loads later in the page than a head script would
PodiaBody injection, since there is no head field
MemberstackYour host site's head
OutsetaYour 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.

PlatformWhere the embed block goes
WebflowAdd panel, Embed element
WordPressCustom HTML block
SquarespaceCode Block (paid plan)
WixEmbed HTML element
ShopifyPage HTML editor, or a theme section
HubSpot CMSRich text module source view, or an HTML module
GhostHTML card
DrupalA text field using a full HTML format
FramerEmbed component
BigCommercePage editor source view
Adobe Experience ManagerAn embed or HTML component
SitecoreSXA HTML snippet rendering
DudaHTML widget
Weebly and Square OnlineEmbed Code element
Squarespace CommerceCode Block on any product or page (paid plan)
Headless platforms (Contentful, Contentstack, Sanity)Render the block in your front end
React, Vue, Angular, SvelteDrop 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

If your platform is not listed, contact us at support@oursprivacy.com.

How is this guide?

On this page