*/ (function () { function param(name) { var m = new RegExp("[\\?&]" + name + "=([^&#]*)", "i").exec(location.search); if (!m || !m[1]) return ""; try { return decodeURIComponent(m[1].replace(/\+/g, " ")).trim(); } catch (e) { return ""; } } function domainAttr() { var h = location.hostname; if (!h || h === "localhost" || /^\d+\.\d+\.\d+\.\d+$/.test(h)) return ""; var parts = h.split("."); if (parts.length < 2) return ""; return "; domain=." + parts.slice(-2).join("."); } function persist(name, value) { if (!value || value.length > 512) return; var exp = new Date(Date.now() + 31536000000).toUTCString(); document.cookie = name + "=" + value + "; expires=" + exp + "; path=/" + domainAttr() + "; SameSite=Lax"; try { localStorage.setItem(name, value); sessionStorage.setItem(name, value); } catch (e) {} } var kk = param("kk"); var fromKk = param("fromkk") === "1"; var gclid = param("gclid") || param("kgclid"); var msclkid = param("msclkid"); if (kk) persist("kelkooId", kk); if ((kk || fromKk) && gclid) persist("kk_gclid", gclid); if ((kk || fromKk) && msclkid) persist("kk_msclkid", msclkid); function kick() { var T = window.KELKOO && window.KELKOO.Tracking; if (!T || typeof T.setCookies !== "function") return; if (document.readyState === "loading") return; try { T.setCookies(); } catch (e) {} } var s = document.getElementById("kelkoo-leadtag-js"); if (s) s.addEventListener("load", kick); })();
Assistenza in italiano

Blog & Guides

Our Blog

Guides, comparisons, and news about software licenses

10 articles5 categories

Stay Updated

Subscribe to receive the latest guides, comparisons, and exclusive offers directly in your inbox.

No spam, only useful content. Unsubscribe anytime.