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 code | Meaning | Fix |
|---|---|---|
401 | Invalid API key | Check the API key in your snippet |
403 | The site does not match the API key | Check that the website_id matches the configured site |
429 | Rate limiting | Too 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=1cookie is set (DevTools → Application → Cookies)
Core Web Vitals are not coming through
- Compatible browser: Core Web Vitals require the
PerformanceObserverAPI, 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:
- Check the snippet version in the console: type
window.__korvus_version - Temporarily disable Korvus (remove the GTM tag) and check whether the issue persists
- 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:
| CMP | Detection method |
|---|---|
| Axeptio | window._axcb |
| Didomi | window.Didomi |
| Cookiebot | window.Cookiebot |
| OneTrust | window.OnetrustActiveGroups |
How it works
- On load, the snippet detects your CMP and reads the consent status
- Exempt data (performance, errors, DOM e-commerce) is collected immediately
- Data that requires consent (dataLayer, UTMs, click IDs) is only collected if the visitor accepts
- 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:
- DevTools → Network:
korvus.min.jsloads (status 200) - DevTools → Network: requests to
app.korvus.fr/api/ingestgo out every 30 seconds (status 200) - DevTools → Console:
window.__korvus_versionreturns the snippet version - Korvus dashboard: data shows up within minutes
- Korvus dashboard: after 7 days, the first alerts start coming in