Мой вариант на основе прочитанного в этой теме. Срабатывает после клика, движения мыши или скрола.
<!-- Скрипт с отложенной загрузкой Метрики и чата -->
<script>
document.addEventListener('DOMContentLoaded', function() {
let fired = false;
function loadHeavyScripts() {
if (fired) return;
fired = true;
setTimeout(() => {
// === Яндекс.Метрика ===
(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();
for (var j = 0; j < document.scripts.length; j++) {if (document.scripts[j].src === r) { return; }}
k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)
})(window, document,'script','https://mc.yandex.ru/metrika/tag.js', 'ym');
ym(**************, 'init', {webvisor:true, clickmap:true, ecommerce:"dataLayer", accurateTrackBounce:true, trackLinks:true});
// === reCAPTCHA v3 ===
var recaptchaScript = document.createElement('script');
recaptchaScript.src = 'https://www.google.com/recaptcha/api.js?render=*****************';
recaptchaScript.async = true;
document.body.appendChild(recaptchaScript);
// -- Чат битрикс --
(function(w,d,u){
var s=d.createElement('script');s.async=true;s.src=u+'?'+(Date.now()/60000|0);
var h=d.getElementsByTagName('script')[0];h.parentNode.insertBefore(s,h);
})(window,document,'https://***************');
}, 1000);
}
window.addEventListener('scroll', loadHeavyScripts, { once: true });
window.addEventListener('mousemove', loadHeavyScripts, { once: true });
window.addEventListener('touchstart', loadHeavyScripts, { once: true });
});
</script>
<!-- yandex watch -->
<noscript><div><img src="https://mc.yandex.ru/watch/62******" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
</body>