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

Приветствую всех!
Есть 2 вопроса:
Как из этого

Спойлер

(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
});

сделать универсальную функцию, кинуть её в *.js и как потом её прикреплять к страницам, просто подставляя вместо “XXXXXX” номера счётчиков?
Я очень слаб в JS. По идее можно так:

Спойлер

(function(m,e,t,r,i,k,a, N)

ym(N, “init”, {…

Даже, если это правильно, то как прикрепить её к странице?
Заранее благодарен.

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), то они на подобные вопросы про программирование ответят достаточно хорошо чтобы смочь решить задачу без знаний программирования. Надо только уметь формулировать вопросы.

Благодарю! Но наверное делаю что-то не так. Создал файл YaMetrika.js с содержимым:
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 src=“https://bla-bla/scripts/YaMetrika.js” type=“text/javascript”></script

(не знаю, как правильно сюда написать без символов <>)
Далее, в коде страницы добавил скрипт:
script>ymInit(‘98826527’)</script
Итог: проверка на подключение Яндекс.Метрика не пройдена
P.S. Или код неправильно скопировал, или надо было сбросить кэш. Сегодня заработало, благодарю!
P.S.P.S. на patreon зайти не могу(((

Спасибо что заморочился. Понятная история с отсутствием доступа. А buy me a coffie работает?

https://buymeacoffee.com/experai_bot

Если задонатешь, напишешь боту Telegram: Contact @experai_bot и кинешь свое телеграммное имя, я открою продвинутый доступ к ИИ боту (chatgpt + claude) пропорционально донату (10$ в месяц). Он отлично решает как раз такого уровня задачи как стоят перед тобой.

Я в любом случае крайне рекомендую посмотреть в сторону современных LLM (large language models, большие языковые модели) типа ChatGPT (компания OpenAI), Claude (Anthropic), Gemini (Google), у яндекса тоже должно быть решение, но я я ним перестал работать и за ним следить, так что советовать не знаю что. Научившись работать с ними (одной LLM достаточно, нет необходимости закапыться в каждую), будешь решать свои задачи в разы быстрее. От написания писем и постов до генерации кода и подсказывания как изменить существующий код чтобы сделать то чего хочешь.

В боте можно переключаться между claude и chatgpt. Особенно полезно когда через опыт становится понятно какая модель какую задачу лучше решает.

[quote=“dmitry, post:4, topic:3379”]
https://buymeacoffee.com/experai_bot
[/quote]Sorry, you have been blocked. А можно просто на карту кинуть, если ты в России, конечно?

Не, для меня такое не работает. Оставим все как есть, ничего не надо пересылать.