Documentation

Everything you need to install and configure Korvus.

Troubleshooting

Fixes for common issues when installing and running the Korvus snippet.

No data in the dashboard

Is the snippet loaded?

Open your browser's DevTools (F12), go to the Network tab, reload the page and look for korvus.min.js.

  • The file shows up with a 200 status: the snippet is loaded, move on to the next step
  • The file does not show up: the snippet is not installed or the GTM tag is not published. Check your installation in GTM or in your site's HTML
  • The file shows up with an error: check your Content Security Policy (CSP)

Is the API key correct?

Check that the API key in your snippet matches the one shown in your site settings on the Korvus dashboard. Each site has its own API key.

Wait a few minutes

Data is sent in batches every 30 seconds. After installation, the first data shows up in the dashboard within a few minutes. Alerts only start after the 7-day learning period.

The snippet loads but no data arrives

Open DevTools, go to the Network tab, filter on app.korvus.fr and browse your site for 30 seconds (the length of one batch).

Requests visible with an error

HTTP codeMeaningFix
401Invalid API keyCheck the API key in your snippet
403The site does not match the API keyCheck that the website_id matches the configured site
429Rate limitingToo many requests in a short time. Wait a few minutes

No visible requests

If no request to app.korvus.fr shows up in Network:

  • CSP: your site may be blocking connections to app.korvus.fr. See the CSP page
  • Ad blocker: some blockers intercept requests to tracking domains. Test in a private window with no extensions
  • Opt-out cookie: check that no korvus_optout=1 cookie is set (DevTools → Application → Cookies)

Core Web Vitals are not coming through

  • Compatible browser: Core Web Vitals require the PerformanceObserver API, supported by all modern browsers (Chrome, Firefox, Safari, Edge)
  • Timing: metrics are collected progressively while the page loads, not instantly. LCP can take a few seconds, and INP requires a user interaction
  • Very fast pages: if a page loads in under 100 ms, the browser may not report some metrics

E-commerce events are not detected

DataLayer events (purchase, add_to_cart)

These events require visitor consent. If your CMP (cookie banner) is active and the visitor refuses, these events are not collected. That is the expected behavior.

Also check that your dataLayer uses the standard GA4 format:

dataLayer.push({
  event: 'purchase',
  ecommerce: {
    transaction_id: '12345',
    value: 99.90,
    currency: 'EUR',
    items: [...]
  }
});

If your event names are different (e.g. transaction_complete instead of purchase), set up a custom mapping in your site settings on the dashboard.

DOM events (add to cart, out of stock)

These events work without consent and are detected automatically through the DOM. If they are not coming through:

  • Check that the "Add to cart" button is a standard clickable element (button, a, input[type=submit])
  • For out-of-stock detection, Korvus checks in order: Schema.org, then a missing or disabled add-to-cart button, then visible text ("rupture", "épuisé", "sold out")

Conflicts with other scripts

The Korvus snippet is designed to be fully isolated. It runs inside a global try/catch and can never cause a visible error on your site.

If you suspect a conflict:

  1. Check the snippet version in the console: type window.__korvus_version
  2. Temporarily disable Korvus (remove the GTM tag) and check whether the issue persists
  3. If the issue goes away, contact support with the snippet version and a description of the conflict

Ad blockers

Some ad blockers (uBlock Origin, AdBlock Plus, Brave Shield) may block requests to data collection domains. This is expected.

  • The snippet is designed to fail silently: no error, no impact on your site
  • The estimated impact is 5 to 15% of traffic, depending on your audience
  • Consent-exempt data (errors, performance, stock) is the most affected, because it covers all traffic

Consent and CMP

Korvus automatically detects the 4 most widely used consent platforms:

CMPDetection method
Axeptiowindow._axcb
Didomiwindow.Didomi
Cookiebotwindow.Cookiebot
OneTrustwindow.OnetrustActiveGroups

How it works

  1. On load, the snippet detects your CMP and reads the consent status
  2. Exempt data (performance, errors, DOM e-commerce) is collected immediately
  3. Data that requires consent (dataLayer, UTMs, click IDs) is only collected if the visitor accepts
  4. If the visitor changes their mind (accepts or refuses later), the snippet adapts in real time

My CMP is not detected

If you use a CMP that is not listed above, the snippet runs in exempt-only mode: only data that does not require consent is collected. Marketing data (dataLayer, UTMs, pixels) will not be available.

Contact support to request support for your CMP.

Check that everything works

Quick checklist after installation:

  1. DevTools → Network: korvus.min.js loads (status 200)
  2. DevTools → Network: requests to app.korvus.fr/api/ingest go out every 30 seconds (status 200)
  3. DevTools → Console: window.__korvus_version returns the snippet version
  4. Korvus dashboard: data shows up within minutes
  5. Korvus dashboard: after 7 days, the first alerts start coming in