function arraysAreIntersected(a, b) { const set = new Set(a); if (b.some(value => set.has(value))) { return true; } return a.some(av => b.some(bv => av.includes(bv))); } const SESSION_STORAGE_KEY = 'notTrashGoalRegistered'; // Здесь указать список мусорных площадок. const trashReferrers = [ 'game', 'dsp', 'com.', 'ru.', 'puzzle', ]; const searchParams = Array.from(new URLSearchParams(window.location.search).values()); const isTrashReferrer = trashReferrers.some(x => document.referrer.indexOf(x) > -1) || document.referrer.includes(window.location.origin) || arraysAreIntersected(searchParams, trashReferrers); if (!isTrashReferrer && !sessionStorage.getItem(SESSION_STORAGE_KEY)) { const ntGoalInterval = setInterval(() => { if (window.ym) { // Коды вызова целей ym(95707049, 'reachGoal', 'notrash'); clearInterval(ntGoalInterval); } }, 500); sessionStorage.setItem(SESSION_STORAGE_KEY, true); }