Coruve

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.

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 does not publish custom code on the free .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.

Head code
<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

  1. Open your project in Webflow and go to Site settings (the site gear, not page settings).
  2. Find Custom code.
  3. Paste the snippet into Head code — the field labelled as going inside <head>, not the footer one.
  4. 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.

The snippet loads 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

Page views, referrers, scroll depth, clicks on interactive elements and Core Web Vitals are all collected automatically from here. Nothing else to install, and nothing to update when we ship a new tracker — your site stays on the version you pasted until you choose to change it.

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):

Footer code
<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:

Head code (last line of the snippet)
_CORUVE.init("proj_YOUR_ID", { apiHost: "https://ingest.coruve.com", offlineBuffer: false });

Whether you need a consent banner is your call, not ours

Cookie-free is not automatically consent-exempt everywhere, and whether the offline buffer counts as “strictly necessary” storage where you operate is a question for your own legal advice. See our privacy page for exactly what is collected.

If nothing shows up

In the order worth checking.

  1. Did you publish? Saving custom code does not deploy it. This is the most common cause by a wide margin.
  2. Are you on a paid Webflow Site plan? Custom code is not published on the free staging domain.
  3. 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.
  4. 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.
  5. Are you blocking yourself? A content blocker or your own self-exclusion setting will hide your own visits. Try a different browser.
  6. Any console errors? Open your browser’s developer console on the published site. An integrity error 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.

Install Coruve on Webflow | Coruve