# Работа скриптов

Базовая интеграция интеграция включает в себя подключение двух скриптов:

  • Core.js: основная библиотека системы.
  • Dynamic.js: хранит информацию о кампаниях, эвалюаторах, стратегиях, настройках. Может вызываться из core и это будет асинхронная загрузка, а может быть встроен в код и загружаться синхронно через Sync load
    • Асинхронно (ускоряет загрузку, но повышает вероятность фликера).
    • Синхронно (уменьшает фликер, но снижает скорость загрузки).

# ⚙️ Работа скриптов

  1. В админ-панели создаётся секция с уникальным ID и пустым dynamic.js.
  2. Устанавливается сниппет для загрузки core.js:
<script>
window.GF = window.GF || {};
GF.section = "[SECTION_ID]";
GF.pageContext = { type: "OTHER", data: [] };
</script>
<script type="text/javascript" src="//cdn-01.gravityfield.ai/core/core.js"></script>

Скрипт core.js загружает соответствующий dynamic.js. Для минимизации фликера можно использовать синхронную загрузку:

<script>
window.GF = window.GF || {};
GF.section = "[SECTION_ID]";
GF.pageContext = { type: "OTHER", data: [] };
GF.syncLoad = true;
</script>
<script type="text/javascript" src="//cdn-01.gravityfield.ai/core/core.js"></script>
<script type="text/javascript" src="//cdn-01.gravityfield.ai/sections/[SECTION_ID]/dynamic.js"></script>

# 📡 Порядок вызовов

Core.js и Dynamic.js отправляют запрос к evs-01.gravityfield.ai для получения данных пользователя. События, настроенные при интеграции, отправляются на сервер.

📖 Подробнее: Настройка передачи событий

# Скрипты prefetch и preconnect

Для уменьшения времени ответа DNS используйте теги Dns-prefetch. Они должны быть размещены перед скриптом.

Preconnect теги позволяют браузеру настроить соединение еще до отправки http запроса к серверу. Это позволяет избежать задержек и сэкономить время для пользователей.

<link rel="preconnect" href="//cdn-01.gravityfield.ai">
<link rel="preconnect" href="//evs-01.gravityfield.ai">
<link rel="dns-prefetch" href="//cdn-01.gravityfield.ai">
<link rel="dns-prefetch" href="//evs-01.gravityfield.ai">

# 🌐 Домены

В системе используются два домена:

  • evs-01.gravityfield.ai — запросы к серверу.
  • cdn-01.gravityfield.ai — CDN.

Все серверы размещены в России и соответствуют требованиям законодательства РФ (152-ФЗ, СТО БР ИББС).

# 🕒 Зависимость запуска скриптов

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

Диаграмма данных
Диаграмма данных

Обновления:

  • Dynamic.js: обновляется при сохранении кампаний, аудиторий и других компонентов.
  • Core.js: обновляется при релизах системы.

Кэширование:

  • Dynamic.js: 5 минут.
  • Core.js: 1 час.

# 🍪 Cookie-файлы

Cookie Функционал Домен Пример TTL
_slid ID пользователя .site.net 6343ff0e728f987d7c02325a 365 дней
_slid_server ID пользователя (клиент) .site.net 6343ff0e728f987d7c02325a 365 дней
_slsession ID сессии .site.net C2A1D08D-BA49-43CF-9BB3-047030084FCF 365 дней
_slfreq Данные о кампаниях. Запускается раз в указанный период времени (1 день, 7 дней, 30 дней и др) .site.net 6347f312d9062ed0380b52dc%3A6347f38c... 365 дней