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>
86 lines
3.7 KiB
HTML
86 lines
3.7 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>ЭкзоОтель — пространство восстановления для гостей | Экзо Групп</title>
|
|
<meta
|
|
name="description"
|
|
content="ЭкзоОтель — готовое пространство восстановления внутри отеля: 4 аппарата, формат с одним специалистом, форматы размещения, меню программ. Дополнительный сервис для выручки, LTV и привлечения гостей."
|
|
/>
|
|
<meta name="theme-color" content="#0A2540" />
|
|
<meta name="robots" content="index,follow" />
|
|
<link rel="canonical" href="%VITE_SITE_URL%" />
|
|
<link rel="icon" type="image/png" href="/favicon.png" />
|
|
<link rel="apple-touch-icon" href="/favicon.png" />
|
|
|
|
<meta property="og:type" content="website" />
|
|
<meta property="og:locale" content="ru_RU" />
|
|
<meta property="og:site_name" content="Экзо Групп" />
|
|
<meta property="og:title" content="ЭкзоОтель: пространство восстановления для гостей" />
|
|
<meta
|
|
property="og:description"
|
|
content="Готовое wellness-tech пространство для дополнительной выручки, роста ценности проживания, LTV и привлечения гостей."
|
|
/>
|
|
<meta property="og:url" content="%VITE_SITE_URL%" />
|
|
<meta property="og:image" content="%VITE_SITE_URL%/og-image.jpg" />
|
|
<meta property="og:image:width" content="1200" />
|
|
<meta property="og:image:height" content="630" />
|
|
<meta property="og:image:alt" content="Премиальное пространство ЭкзоОтель с оборудованием Экзо Групп" />
|
|
<meta name="twitter:card" content="summary_large_image" />
|
|
|
|
<script type="application/ld+json">
|
|
{
|
|
"@context": "https://schema.org",
|
|
"@type": "Service",
|
|
"name": "ЭкзоОтель — пространство восстановления для гостей отеля",
|
|
"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>
|