feat: update metadata for ads

This commit is contained in:
2026-04-22 20:55:37 +03:00
parent 69f67c75fa
commit acaeabd5c4
11 changed files with 149 additions and 14 deletions

0
assets/images/.gitkeep Normal file
View File

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

BIN
assets/images/logo-icon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -55,24 +55,31 @@ a {
}
.logo {
font-weight: 800;
letter-spacing: 0.08em;
text-transform: uppercase;
display: inline-flex;
align-items: center;
line-height: 0;
color: var(--hero-text);
}
.logo--header {
font-size: clamp(1.1rem, 2vw, 1.35rem);
.logo__img {
display: block;
height: auto;
max-width: 100%;
}
.logo--header .logo__img {
height: clamp(1.35rem, 3.2vw, 1.85rem);
width: auto;
}
.logo--hero {
font-size: clamp(3.5rem, 10vw, 7.5rem);
line-height: 0.95;
margin: 0 0 2rem;
background: linear-gradient(135deg, #fff 0%, #d4c8ff 55%, #9e8cff 100%);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
max-width: min(100%, 28rem);
}
.logo--hero .logo__img {
width: 100%;
height: auto;
}
.nav {

1
favicon.svg Normal file
View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><defs><linearGradient id="a" x1="0" y1="0" x2="1" y2="1"><stop offset="0%" stop-color="#1e0f3d"/><stop offset="100%" stop-color="#5c47c4"/></linearGradient></defs><rect width="32" height="32" rx="8" fill="url(#a)"/></svg>

After

Width:  |  Height:  |  Size: 282 B

View File

@@ -4,15 +4,38 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ЭКСА — ваш мост в мир цифровых активов</title>
<meta name="description" content="ЭКСА — финтех-компания: мост в мир цифровых активов. Прозрачный и законный оборот криптовалют и цифровых активов для компаний и частных клиентов.">
<meta name="robots" content="index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1">
<meta name="theme-color" content="#070b28">
<link rel="canonical" href="https://elcsa.ru/">
<link rel="icon" href="assets/images/logo-icon.ico" sizes="any">
<link rel="apple-touch-icon" href="assets/images/logo-icon.ico">
<link rel="icon" href="favicon.svg" type="image/svg+xml">
<link rel="alternate" hreflang="ru-RU" href="https://elcsa.ru/">
<link rel="alternate" hreflang="x-default" href="https://elcsa.ru/">
<meta property="og:type" content="website">
<meta property="og:locale" content="ru_RU">
<meta property="og:url" content="https://elcsa.ru/">
<meta property="og:site_name" content="ЭКСА">
<meta property="og:title" content="ЭКСА — ваш мост в мир цифровых активов">
<meta property="og:description" content="ЭКСА — финтех-компания: мост в мир цифровых активов. Прозрачный и законный оборот криптовалют и цифровых активов для компаний и частных клиентов.">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="ЭКСА — ваш мост в мир цифровых активов">
<meta name="twitter:description" content="ЭКСА — финтех-компания: мост в мир цифровых активов. Прозрачный и законный оборот криптовалют и цифровых активов для компаний и частных клиентов.">
<script type="application/ld+json">
{"@context":"https://schema.org","@type":"Organization","name":"ООО «ЭКСА»","url":"https://elcsa.ru/","email":"company@elcsa.ru","telephone":"+7-812-123-33-23","identifier":[{"@type":"PropertyValue","name":"ИНН","value":"9810001062"},{"@type":"PropertyValue","name":"ОГРН","value":"1257800060990"}],"address":{"@type":"PostalAddress","postalCode":"196158","addressLocality":"Санкт-Петербург","streetAddress":"Московское шоссе, 25А, к.1, ПОМЕЩ. 3-Н","addressCountry":"RU"}}
</script>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Manrope:wght@300;400;500;600;700;800&family=Nunito+Sans:ital,wght@0,400;0,500;0,600;0,700;1,400&display=swap" rel="stylesheet">
<link rel="stylesheet" href="css/styles.css">
</head>
<body>
<script src="js/site-config.js"></script>
<script src="js/tracking.js"></script>
<header class="header" id="top">
<div class="header__inner">
<a class="logo logo--header" href="#top">ЭКСА</a>
<a class="logo logo--header" href="#top"><img class="logo__img" src="assets/images/logo-full-white.png" alt="ЭКСА" width="160" height="48" decoding="async"></a>
<nav class="nav">
<a class="nav__link" href="#about">О нас</a>
<a class="nav__link" href="#top">Конвертация</a>
@@ -32,7 +55,7 @@
<div class="hero__glow hero__glow--3" aria-hidden="true">Ξ</div>
<div class="hero__grid">
<div class="hero__left">
<div class="logo logo--hero">ЭКСА</div>
<div class="logo logo--hero"><img class="logo__img" src="assets/images/logo-full-white.png" alt="ЭКСА" width="520" height="160" decoding="async"></div>
<p class="hero__acronym">
<span>Электронные</span>
<span>Криптовалютные</span>
@@ -137,6 +160,6 @@
</div>
</footer>
<script src="js/main.js"></script>
<script src="js/main.js" defer></script>
</body>
</html>

8
js/site-config.js Normal file
View File

@@ -0,0 +1,8 @@
window.__SITE_CONFIG__ = {
siteUrl: 'https://elcsa.ru',
gtmContainerId: '',
ga4MeasurementId: '',
googleAdsId: '',
yandexMetrikaId: '',
yandexWebvisor: true,
};

84
js/tracking.js Normal file
View File

@@ -0,0 +1,84 @@
function injectGtm(id) {
const w = window;
w.dataLayer = w.dataLayer || [];
w.dataLayer.push({ 'gtm.start': Date.now(), event: 'gtm.js' });
const firstScript = document.getElementsByTagName('script')[0];
const gtmScript = document.createElement('script');
gtmScript.async = true;
gtmScript.src = 'https://www.googletagmanager.com/gtm.js?id=' + id;
firstScript.parentNode.insertBefore(gtmScript, firstScript);
const nos = document.createElement('noscript');
const iframe = document.createElement('iframe');
iframe.src = 'https://www.googletagmanager.com/ns.html?id=' + id;
iframe.height = '0';
iframe.width = '0';
iframe.setAttribute('style', 'display:none;visibility:hidden');
nos.appendChild(iframe);
document.body.insertBefore(nos, document.body.firstChild);
}
function injectGtag(ids) {
const list = ids.filter(Boolean);
if (!list.length) {
return;
}
const s = document.createElement('script');
s.async = true;
s.src = 'https://www.googletagmanager.com/gtag/js?id=' + list[0];
document.head.appendChild(s);
window.dataLayer = window.dataLayer || [];
function gtag() {
window.dataLayer.push(arguments);
}
window.gtag = gtag;
gtag('js', new Date());
list.forEach((id) => {
gtag('config', id);
});
}
function injectYandex(id, webvisor) {
if (!id) {
return;
}
(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 (let j = 0; j < document.scripts.length; j += 1) {
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');
window.ym(id, 'init', {
clickmap: true,
trackLinks: true,
accurateTrackBounce: true,
webvisor: !!webvisor,
});
}
function runTracking() {
const c = window.__SITE_CONFIG__ || {};
if (c.gtmContainerId) {
injectGtm(c.gtmContainerId);
} else {
injectGtag([c.ga4MeasurementId, c.googleAdsId].filter(Boolean));
}
injectYandex(c.yandexMetrikaId, c.yandexWebvisor);
}
runTracking();

4
robots.txt Normal file
View File

@@ -0,0 +1,4 @@
User-agent: *
Allow: /
Sitemap: https://elcsa.ru/sitemap.xml

8
sitemap.xml Normal file
View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://elcsa.ru/</loc>
<changefreq>weekly</changefreq>
<priority>1.0</priority>
</url>
</urlset>