Counter 112352796 goes into the <head> of every landing's index.html, ahead of the Vite entry, so the hit fires before React mounts. The pages are plain SPAs served off disk by nginx (Express only answers /api/*), so the static head is the only place it needs to be. One counter serves all four domains, which means reports mix them and every domain has to be listed in the counter's own settings or its hits get filtered — noted in deploy/README.md along with the conversion tracking that is still missing: src/lib/lead.ts pushes a plain custom dataLayer event, which Metrika's ecommerce: 'dataLayer' does not read. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
82 lines
3.3 KiB
HTML
82 lines
3.3 KiB
HTML
<!doctype html>
|
|
<html lang="ru">
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
|
|
<title>EXO Recovery Zone для фитнес-клубов | Экзо Групп</title>
|
|
<meta
|
|
name="description"
|
|
content="Зона восстановления для фитнес-клуба: конструктор из 3 или 5 аппаратов, визуальная концепция, программы, обучение и готовая экосистема внедрения."
|
|
/>
|
|
<meta name="theme-color" content="#0A2540" />
|
|
<meta name="robots" content="index,follow" />
|
|
<link rel="canonical" href="%VITE_SITE_URL%" />
|
|
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
|
|
|
<meta property="og:type" content="website" />
|
|
<meta property="og:locale" content="ru_RU" />
|
|
<meta property="og:site_name" content="ЭКЗО Групп" />
|
|
<meta property="og:title" content="EXO Recovery Zone — восстановление, которое удерживает клиента в клубе" />
|
|
<meta property="og:description" content="3 или 5 аппаратов, дизайн зоны, программы, обучение и." />
|
|
<meta property="og:url" content="%VITE_SITE_URL%" />
|
|
<meta property="og:image" content="%VITE_SITE_URL%/og-image.webp" />
|
|
<meta property="og:image:width" content="1200" />
|
|
<meta property="og:image:height" content="630" />
|
|
<meta property="og:image:alt" content="EXO Recovery Zone для фитнес-клуба" />
|
|
<meta name="twitter:card" content="summary_large_image" />
|
|
|
|
<script type="application/ld+json">
|
|
{
|
|
"@context": "https://schema.org",
|
|
"@type": "Service",
|
|
"name": "EXO Recovery Zone для фитнес-клубов",
|
|
"provider": { "@type": "Organization", "name": "Экзо Групп" },
|
|
"serviceType": "Проектирование и запуск зоны восстановления в фитнес-клубе",
|
|
"areaServed": "RU",
|
|
"url": "%VITE_SITE_URL%"
|
|
}
|
|
</script>
|
|
|
|
<!-- Yandex.Metrika counter -->
|
|
<script type="text/javascript">
|
|
(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?id=112352796', 'ym')
|
|
|
|
ym(112352796, 'init', {
|
|
ssr: true,
|
|
webvisor: true,
|
|
clickmap: true,
|
|
ecommerce: 'dataLayer',
|
|
referrer: document.referrer,
|
|
url: location.href,
|
|
accurateTrackBounce: true,
|
|
trackLinks: true,
|
|
})
|
|
</script>
|
|
<noscript
|
|
><div><img src="https://mc.yandex.ru/watch/112352796" style="position: absolute; left: -9999px" alt="" /></div
|
|
></noscript>
|
|
<!-- /Yandex.Metrika counter -->
|
|
</head>
|
|
<body>
|
|
<div id="root"></div>
|
|
<script type="module" src="/src/main.tsx"></script>
|
|
</body>
|
|
</html>
|