# Динамический контент в варианте персонализации
Внутри каждого варианта персонализации можно добавлять как статический, так и динамический контент. Если нужно реагировать на данные посетителя — город, устройство, UTM-метки, погоду, время суток — используйте JavaScript прямо в шаблоне.
Это позволяет, например:
- Показывать название города посетителя в заголовке
- Менять призыв к действию в зависимости от устройства
- Подставлять количество клиентов в регионе
- Предлагать разные акции в рабочие и выходные дни
- Адаптировать текст под погодные условия
# Как это работает
В поле «Контент» (и в любом другом текстовом поле модификации) можно вставить JavaScript в двойных фигурных скобках — например, {{ data.geo.city.nativeName }}. Sales Ninja вычислит код на сервере и подставит результат до отправки контента в браузер посетителя.
Доставка в г. {{data.geo.city.nativeName || "вашем городе"}} за 1 день
Результат для москвича: Доставка в г. Москва за 1 день
Внутри кода доступна переменная data с информацией о посетителе (геолокация, устройство, UTM, погода, время, сессия, данные страницы), а также шаблонные функции вроде simulateCityClients.
📖 Полный справочник — синтаксис, все поля
data, шаблонные функции, ограничения и обработка ошибок — на отдельной странице JavaScript-интерпретатор. Тот же интерпретатор работает в A/B-тестах и действиях по правилам.
# Примеры для персонализаций
# Город в заголовке
Доставка в г. {{data.geo.city.nativeName}} за 1 день
# Призыв под устройство
{{
if (data.device.deviceType === "Smartphone") {
return "Скачайте наше приложение — скидка 20%";
}
return "Полный каталог на десктопе";
}}
# Количество клиентов в городе
Уже {{simulateCityClients(100, 800)}} клиентов в г. {{data.geo.city.nativeName || "вашем регионе"}} выбрали нас
# Акция в выходные
{{ data.dateAndTime.isWeekend ? "В выходные скидка 15%!" : "Скидка 10% до конца недели" }}
⚠️ Любое поле
dataможет бытьnull(например, город не определился по IP). Всегда добавляйте запасное значение —{{data.geo.city.nativeName || "ваш город"}}. Подробнее — в разделе обработка null и ошибок.
# Это не «Пользовательский JavaScript»
Динамический контент ({{ }}) вычисляется на сервере до отдачи страницы. Не путайте его с Пользовательским JavaScript варианта, который выполняется в браузере после применения всех модификаций и имеет доступ к DOM. Сравнение — в справочнике интерпретатора.
# Следующие шаги
- JavaScript-интерпретатор — полный справочник
- Создание вариантов
- Отладочный режим
← Варианты Управление →