Daily News 18+

НОВОСТИ 24 - Система управления контентом

📋 Описание проекта

НОВОСТИ 24 - это современная система управления новостным контентом, построенная на базе Astro.js. Проект предназначен для отображения новостей с поддержкой различных источников трафика, рекламных блоков и аналитики.

Система поддерживает мобильную и десктопную версии, имеет встроенную PWA функциональность и интегрируется с различными рекламными сетями.

🚀 Основные страницы

📰 Новости

📡 RSS и API

🎯 UTM и редиректы

🎯 UTM Теги и Редиректы

📊 Поддерживаемые UTM источники

Основные источники:

  • smi2 - SMI2
  • 24smi - 24SMI
  • adwile - Adwile
  • infox.sg - InfoX Singapore
  • cpcin - CPC In
  • giraf.io - Giraf.io
  • giraff.io - Giraff.io

Зеркальные источники:

  • 2in - Зеркало 24smi
  • 1in - Зеркало infox.sg

🌍 Геолокационные ограничения

SMI2 (smi2)

Блокируется в регионах:

  • Москва и МО (MOW, MOS)
  • Сочи (KDA)
  • Крым (43)
  • Турция (TR)
  • Грузия (GE)

24SMI (24smi, 2in)

Блокируется в регионах:

  • Москва и МО (MOW, MOS)
  • Казань (KZN)
  • Сочи (KDA)
  • Израиль (IL)

InfoX SG (infox.sg, 1in, adwile, cpcin)

Блокируется в регионах:

  • Москва и МО (MOW, MOS)
  • Сочи (KDA)

Giraf.io (giraf.io, giraff.io)

Блокируется в регионах:

  • Москва и МО (MOW, MOS)
  • Сочи (KDA)
  • Сербия (RS)

🔄 Функции UTM тегов

1. Comebacker (Возвращающий модал)

Активируется при:

  • Переходе на страницы новостей или лендинги
  • Наличии UTM источника из списка разрешенных
  • Прохождении геолокационной проверки

Поведение: Показывает модальное окно при попытке покинуть страницу (mouseleave), максимум 2 раза с интервалом 45 секунд.

2. Clickander (Клик-перехватчик)

Активируется при:

  • Мобильных устройствах на страницах новостей с UTM
  • Лендингах с UTM источниками
  • Прохождении геолокационной проверки

Поведение: При первом клике открывает popup с витриной новостей, при втором - расширяет его на весь экран.

3. Back Button (Кнопка назад)

Активируется при:

  • Лендингах, витрине или popup страницах
  • Наличии UTM источника
  • Прохождении геолокационной проверки

Поведение: Блокирует кнопку "Назад" браузера, при попытке вернуться перезагружает страницу.

4. Landing Redirect (Редирект лендингов)

Активируется при:

  • Лендингах с запрещенными ID новостей
  • Московском регионе
  • Наличии utm_term с запрещенным ID

Поведение: Автоматически перенаправляет с лендинга на обычную страницу новости.

🔗 UTM Редиректы

Формат URL:

/news/[id]/utm/[utm_source]

Назначение:

  • Централизованная обработка UTM параметров
  • Отправка аналитических событий на бэкенд
  • Преобразование зеркальных UTM источников
  • Редирект на целевую страницу с правильными параметрами

Преобразования:

  • infox.sgutm_source=1in
  • 24smiutm_source=2in
  • Остальные UTM источники передаются как есть

Аналитика:

При каждом редиректе отправляется событие landing-set-utm с данными о переходе (from, to, IP, геолокация).

⚙️ Разработка

🛠️ Команды разработки

npm run dev

Запуск в режиме разработки

npm run dev:host

Запуск с переменными окружения и доступом по сети

npm run build

Сборка для продакшена

npm start

Запуск продакшен версии

🐳 Docker

make build

Сборка Docker образа

docker-compose down && docker-compose up -d

Перезапуск контейнеров

🔧 Конфигурация

Переменные окружения

BACKEND_URL=https://api.novosti-ru.com

URL бэкенд API

GEO_API_GET_INFO=https://json.novosti-ru.com/geo

API для определения геолокации

📚 Документация

Подробная документация по проекту находится в файле README.md

Быстрый старт

  1. Клонируйте репозиторий
  2. Установите зависимости: npm install
  3. Настройте переменные окружения
  4. Запустите в режиме разработки: npm run dev
  5. Откройте браузер по адресу http://localhost:4321