Install guide
Install Coruve on Webflow
One snippet, pasted into your site settings once. No plugin, no cookie banner of ours, and nothing to maintain afterwards. About two minutes, most of which is waiting for Webflow to publish.
On this page
- What you need
- Add the snippet
- Publish and verify
- Track button clicks
- Cookies and consent
- If nothing shows up
All documentation
What you need
Two things, and one Webflow limitation worth knowing before you start.
- A Coruve project. Your project ID is on Settings → Project in the dashboard. It is not a secret — it ships in the page of every site that uses Coruve, by design.
- Permission to edit the Webflow site’s settings. Look for Site settings → Custom code.
Custom code needs a paid Webflow Site plan
.webflow.io staging domain. If the snippet is saved but never appears in your published page source, this is almost always why. Webflow’s plan rules are theirs and they change — check their current documentation if you are unsure.Add the snippet
Site settings → Custom code → Head code.
1. Copy your snippet
Use the one on Settings → Project in your dashboard — it already has your project ID filled in. The version below is the same thing with a placeholder where your ID goes.
<script>
!function(){var t=window._CORUVE=window._CORUVE||[];if(t.invoked)return void console.error("Coruve snippet included twice.");t.invoked=!0,t.methods=["init","track","identify"],t.factory=function(e){return function(){var n=Array.prototype.slice.call(arguments);return n.unshift(e),t.push(n),t}};for(var e=0;e<t.methods.length;e++){var n=t.methods[e];t[n]=t.factory(n)}var i=document.createElement("script");i.type="text/javascript",i.async=!0,i.src="https://coruve.com/tracker.v1.5.0.min.js",i.integrity="sha384-WKIaYR7qF3TaP1l+q51N8KKL+jKLrm8qfcBV93AwFFLoXuV16WIyAngODrA40nd/",i.crossOrigin="anonymous";var r=document.getElementsByTagName("script")[0];r.parentNode.insertBefore(i,r)}();
_CORUVE.init("proj_YOUR_ID", { apiHost: "https://ingest.coruve.com" });
</script>2. Paste it into Head code
- Open your project in Webflow and go to Site settings (the site gear, not page settings).
- Find Custom code.
- Paste the snippet into Head code — the field labelled as going inside
<head>, not the footer one. - Save.
Use the site-wide field rather than a single page’s custom code. Per-page code would measure that one page and leave the rest of the site dark.
Why this snippet has an integrity hash
tracker.v1.5.0.min.js and pins it with a sha384- hash. Your visitors’ browsers check the file they downloaded against that hash and refuse to run it if a single byte differs. That URL is immutable: installing it is not a promise from us not to change the file later.Publish and verify
Custom code does not run until the site is republished.
Publish
Hit Publish in Webflow. Saving the setting is not enough — custom code is baked into the published site, and it does not run in the Designer canvas or the Designer’s preview mode.
Check it is reporting
Open your published site in a normal browser tab, click around two or three pages, then open Realtime in your Coruve dashboard. Your visit should appear within a few seconds.
If you would rather check the page itself: view source on the published site and search for coruve. You should find the snippet you pasted.
You are done
Track button clicks
Optional. Only if you want to name a specific action.
Clicks on links and buttons are already recorded. You only need this if you want a named event — something like pricing_cta_clicked — that you can build a funnel on.
In Webflow, add an element ID to the button, then put this in Footer code (site-wide or on the page that has the button):
<script>
document.addEventListener("DOMContentLoaded", function () {
var el = document.getElementById("pricing-cta");
if (!el) return;
el.addEventListener("click", function () {
window.Coruve && window.Coruve.track("pricing_cta_clicked", { plan: "pro" });
});
});
</script>window.Coruve is available as soon as the tracker has loaded, and the snippet queues calls made before that, so an early click is not lost.
Cookies and consent
What Coruve stores, so you can answer this for your own site.
Coruve sets no cookies and no cross-site identifier. It does not follow your visitors to anybody else’s site, because it has nothing to follow them with.
It does use your visitor’s browser storage for three things: a session identifier, shared across that visitor’s tabs on your site and expiring after 30 minutes of inactivity; — by default — a small buffer holding events that failed to send, so a visitor on a bad connection is not simply lost; and a cached copy of your project’s capture switches, so the tracker knows what you have turned on without an extra request on every page load. The buffer is capped and expires within a day, and the switches are your settings rather than anything about the visitor.
One option turns all three off — the buffer is cleared and never rewritten, the session identifier falls back to living in memory for the length of a tab, and the switches are re-read from the compiled defaults on every page. Add it to the _CORUVE.init line in your snippet:
_CORUVE.init("proj_YOUR_ID", { apiHost: "https://ingest.coruve.com", offlineBuffer: false });Whether you need a consent banner is your call, not ours
If nothing shows up
In the order worth checking.
- Did you publish? Saving custom code does not deploy it. This is the most common cause by a wide margin.
- Are you on a paid Webflow Site plan? Custom code is not published on the free staging domain.
- Did the snippet go in Head code, site-wide? Footer code works too but reports later; a single page’s custom code only covers that page.
- Is the project ID exactly right? Compare it character for character with Settings → Project. A wrong ID sends events to nowhere and looks identical to no events at all.
- Are you blocking yourself? A content blocker or your own self-exclusion setting will hide your own visits. Try a different browser.
- Any console errors? Open your browser’s developer console on the published site. An
integrityerror means the snippet was altered in transit or edited — re-copy it from your dashboard rather than retyping it.
Still stuck? Tell us what you see and include the published URL.