Отложенная загрузки счетчиков

JS
Вариант 1
Код
      var fired = false;
window.addEventListener('scroll', () => {
    if (fired === false) {
        fired = true;
        setTimeout(() => {
            ...ваш_код
        }, 1500)
    }
});
    
Вариант 2
Код
      (function () {
  // Флаг, что Метрика уже загрузилась.
  var loadedMetrica = false,
      // Ваш идентификатор сайта в Яндекс.Метрика.
      metricaId     = 123456789,
      // Переменная для хранения таймера.
      timerId;

  // Для бота Яндекса грузим Метрику сразу без "отложки",
  // чтобы в панели Метрики были зелёные кружочки
  // при проверке корректности установки счётчика.
  if ( navigator.userAgent.indexOf( 'YandexMetrika' ) > -1 ) {
    loadMetrica();
  } else {
    // Подключаем Метрику, если юзер начал скроллить.
    window.addEventListener( 'scroll', loadMetrica, {passive: true} );

    // Подключаем Метрику, если юзер коснулся экрана.
    window.addEventListener( 'touchstart', loadMetrica );

    // Подключаем Метрику, если юзер дернул мышкой.
    document.addEventListener( 'mouseenter', loadMetrica );

    // Подключаем Метрику, если юзер кликнул мышкой.
    document.addEventListener( 'click', loadMetrica );

    // Подключаем Метрику при полной загрузке DOM дерева,
    // с "отложкой" в 1 секунду через setTimeout,
    // если пользователь ничего вообще не делал (фоллбэк).
    document.addEventListener( 'DOMContentLoaded', loadFallback );
  }

  function loadFallback() {
    timerId = setTimeout( loadMetrica, 1000 );
  }

  function loadMetrica( e ) {

    // Пишем отладку в консоль браузера.
    if ( e && e.type ) {
      console.log( e.type );
    } else {
      console.log( 'DOMContentLoaded' );
    }

    // Если флаг загрузки Метрики отмечен,
    // то ничего более не делаем.
    if ( loadedMetrica ) {
      return;
    }

    (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)}; m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)}) (window, document, "script", "https://cdn.jsdelivr.net/npm/yandex-metrica-watch/tag.js", "ym");
    ym( metricaId, "init", { clickmap:true, trackLinks:true, accurateTrackBounce:true });

    // Отмечаем флаг, что Метрика загрузилась,
    // чтобы не загружать её повторно при других
    // событиях пользователя и старте фоллбэка.
    loadedMetrica = true;

    // Очищаем таймер, чтобы избежать лишних утечек памяти.
    clearTimeout( timerId );

    // Отключаем всех наших слушателей от всех событий,
    // чтобы избежать утечек памяти.
    window.removeEventListener( 'scroll', loadMetrica );
    window.removeEventListener( 'touchstart', loadMetrica );
    document.removeEventListener( 'mouseenter', loadMetrica );
    document.removeEventListener( 'click', loadMetrica );
    document.removeEventListener( 'DOMContentLoaded', loadFallback );
  }
})()