Нужна помощь с Яндекс.Метрика [как инициализировать метрику динамически своей функцией?]

function ymInit(XXXXXX) {
	(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(XXXXXX, “init”, {
	clickmap:true,
	trackLinks:true,
	accurateTrackBounce:true
	});
}

// Использование

ymInit('ym-12312312313')

Можно просто обернуть весь вызов метрики в функцию и передавать в функцию айдишник метрики.


Достаточно объявить эту функцию в <script>. Просто убедись что этот идеть раньше того места где ты вызываешь инициализацию метрики:

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<title>Blah blah</title>
	<script>
		function ymInit(XXXXXX) {
			(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(XXXXXX, “init”, {
			clickmap:true,
			trackLinks:true,
			accurateTrackBounce:true
			});
		}
	</script>
</head>
<body>
	... blah, blah
	<script>ymInit('tracking-id')</script>
</body>
</html>

Если у тебя есть доступ к LLM-ам (ии типа chatgpt или anthropic), то они на подобные вопросы про программирование ответят достаточно хорошо чтобы смочь решить задачу без знаний программирования. Надо только уметь формулировать вопросы.

1 лайк