If your Kelkoo Sales Tracking installation isn't working correctly, start with the verification steps below, then check the relevant issue.
This page covers the Manual installation for Kelkoo Sales Tracking method.
Verify the correct calls are being made
-
Log in to your Kelkoo Merchant Center, and use View your Kelkoo store page to reach your website via a Kelkoo Group offer link.
-
Open your browser's developer console (F12, or right-click the page → Inspect), then open the Network tab.
-
Reload a few pages of your site and confirm
leadtag.jsloads successfully (status 200) on each — this confirms the Lead Tag (Step 1) is correctly placed across your site, not just one page. -
Complete a test purchase — ideally with a promo/coupon code applied, so you can confirm optional fields too.
-
On the confirmation page, filter the Network tab for a call to
/stons.kelkoogroup.net(or the fallback pixel/k.gif) — this call is made byks.js, loaded by the Conversion Tag (Step 2). -
Open the call and check its parameters: confirm
comId/countrymatch your account,orderId/orderValueare present and correct, and any optional fields you've populated (coupon, returning customer, etc. ) appear as expected.
Common issues
Issue 1: No call to /st at all
-
Confirm the Conversion Tag script (Step 2 of the install guide) is present in the page's rendered HTML on the confirmation page — view the actual page source (not just your template file), in case a caching layer, template engine, or minifier stripped or altered it.
-
Confirm
ks.jsitself loads successfully in the Network tab (https://s.kk-resources.com/ks.js, status 200). If it fails to load or is blocked, check for an ad-blocker, a Content Security Policy (CSP) restriction, or your CMP incorrectly blocking it — the Conversion Tag must not be gated behind consent, see Configuring Consent Management (CMP) . -
Check the browser console for JavaScript errors on the confirmation page. A syntax error anywhere in the
_kkstrackobject (see Issue 3) can silently prevent the entire script block — including the part that loadsks.js— from running.
Issue 2: The Lead Tag cookie is never set
-
Confirm
leadtag.js(Step 1) is present on every page a user might land on from a Kelkoo Group offer, not just the homepage. -
Confirm your CMP isn't permanently blocking the Lead Tag. Unlike the Conversion Tag, the Lead Tag does require user consent, so it's expected to be blocked until consent is granted — but confirm it fires once consent is accepted, by testing with consent declined and then accepted. See Configuring Consent Management (CMP) .
-
Check that the Lead Tag runs on the same page/session where the
kk(Kelkoo click ID) parameter is present in the landing page URL, or shortly after — the cookie is what links a later purchase back to that click.
Issue 3: orderId, orderValue, or basket are empty, undefined, or incorrect
-
Confirm these are populated dynamically from your real order data at page-render time — not left as the literal placeholder strings from the code sample (
'ORDER_ID','ORDER_VALUE'). -
If your templating or server-side code injects these values into the script block, check for quoting/escaping issues. A product name or value containing an apostrophe, quote, or other special character can break the surrounding JavaScript if not properly escaped — which can silently break the entire script block (see Issue 1), not just that one field.
-
If you're relying on GA4/UA Data Layer auto-detection instead of setting these explicitly (see the install guide's "Good to know" note), confirm your Data Layer's purchase event is pushed to
window.dataLayerbefore the Conversion Tag script runs on the page — ifks.jsruns first, there's nothing yet for it to read.
Issue 4: Optional fields (coupon, returning customer, etc.) aren't appearing
-
Confirm the field is present in your
_kkstrackobject, not commented out or misspelled — parameter names are case-sensitive (returningUser, notreturninguserorReturning_User). -
returningUsermust be sent as the literal string'true'or'false'— not a boolean literal, not1/0. An unexpected value type will be silently dropped rather than passed through as-is. -
Remember that explicit
_kkstrackvalues always take priority over anything auto-detected from a GA4/UA Data Layer. If a field looks wrong despite your Data Layer being correct, check whether it's also being set (even accidentally, e.g. left over from a copy-pasted snippet) directly in_kkstrack— the explicit value wins. -
couponshould be omitted entirely (not sent as an empty string) when no code was used — check you're not always setting the key with a blank or placeholder value.
Issue 5: Sales are tracked once, but duplicated or tracked multiple times for the same order
-
Confirm there's only one copy of the Conversion Tag script on the confirmation page — check for leftovers from a previous integration, or duplication introduced by a page builder/CMS template.
-
Confirm the confirmation page isn't reloaded or re-rendered client-side in a way that re-runs the script for the same order — for example, a user pressing "back" to a cached version of the page, or a single-page app re-mounting the confirmation component.
Issue 6: Duplicate or conflicting installations
-
Search your entire codebase for
leadtag.jsand_kkstrackto confirm no older version of Kelkoo Sales Tracking — from a previous manual integration, plugin, or theme — is still present alongside the new one. -
Running two versions simultaneously can cause duplicate cookies, duplicate
/stcalls, or conflicting values reported for the same order.
Issue 7: Sales are tracked but under-reported compared to your own analytics
-
This is most often a Consent Management Platform (CMP) misconfiguration — see Configuring Consent Management (CMP) . The Conversion Tag should never be blocked by a missing consent signal; only the Lead Tag should be gated.
-
Confirm the Lead Tag is present on all entry pages (see Issue 2) — a purchase can only be attributed if a tracking cookie was set at some point during that visitor's journey.
Still having issues?
Contact Kelkoo Support via your Merchant Center