Перейти к содержанию
Разделы документации

Контекстные переменные

Контекстные переменные позволяют передавать данные с вашего сайта внутрь попапа. Имя пользователя, сумма в корзине, город, UTM-метки — всё это можно вставить в текст попапа и использовать в условиях переходов.

Персонализированные попапы конвертируют в 2-3 раза лучше, чем стандартные. Сравните:

  • "Скидка 10% на первый заказ" — стандартно.
  • "Андрей, скидка 10% на ваш заказ на 4 500 руб." — персонализированно.

Контекстные переменные делают второй вариант возможным — без единой строчки кода внутри попапа. Вы пишете шаблон один раз, а данные подставляются автоматически.

Пример попапа с персонализированным текстом — имя и сумма подставлены из контекстаМесто для видео или скриншота

Данные передаются через атрибуты на скрипте Поптимайзер (подробнее ниже) или через JavaScript API.

В редакторе попапа пишете текст с переменными в двойных фигурных скобках:

Код
Привет, {{userName}}! Ваш заказ на {{cartTotal}} руб. ждёт вас.

3. Переменные заменяются на реальные данные

Ссылка на раздел «3. Переменные заменяются на реальные данные»

Когда попап показывается посетителю, {{userName}} превращается в "Андрей", а {{cartTotal}} — в "4 500".

Важно:

В редакторе вы видите переменные как есть: {{userName}}. Это нормально — подстановка происходит только на сайте, где есть реальные данные.


Способ 1: Атрибуты на скрипте (самый простой)

Ссылка на раздел «Способ 1: Атрибуты на скрипте (самый простой)»

Добавьте атрибуты data-context-* к тегу скрипта Поптимайзер:

HTML
<script
  defer
  id="pop-script"
  data-key="ВАШ_API_KEY"
  data-context-user-name="Андрей"
  data-context-cart-total="4500"
  data-context-city="Москва"
  src="https://poptimizer.ru/popup/script.min.js"
></script>

Правила именования:

  • Атрибуты начинаются с data-context-.
  • Имя пишется через дефис: data-context-user-name.
  • В попапе используется camelCase: {{userName}}.
  • Значения автоматически распознаются: "true" → булево, "4500" → число, остальное → строка.

Совет:

Этот способ идеально подходит для статических данных: имя пользователя, город, тариф. Данные считываются один раз при загрузке скрипта.

Способ 2: JavaScript API (для динамических данных)

Ссылка на раздел «Способ 2: JavaScript API (для динамических данных)»

Для данных, которые меняются после загрузки страницы (корзина, результат расчёта), используйте JavaScript API:

JavaScript
// Передать данные в попап
window.Poptimizer.setContext({
  cartTotal: 4500,
  itemCount: 3,
  promoCode: "SUMMER2026"
});

// Получить текущие данные
const ctx = window.Poptimizer.getContext();
console.log(ctx.cartTotal); // 4500

При вызове setContext попапы автоматически обновляются с новыми данными.

Совет:

setContext мержит данные — он не стирает старые значения, а дополняет. Вызывайте его сколько угодно раз.

UTM-параметры из URL подхватываются автоматически. Если пользователь пришёл по ссылке:

Код
https://shop.ru/?utm_source=instagram&utm_campaign=sale

В попапе можно использовать:

Код
{{utmSource}} → instagram
{{utmCampaign}} → sale

Доступные UTM-переменные: utmSource, utmMedium, utmCampaign, utmTerm, utmContent.


Переменные {{имя}} работают в следующих компонентах:

  • Текст (RichText) — заголовки, параграфы, подписи.
  • Кнопка (ActionButton) — текст на кнопке.
Код
Заголовок: "{{userName}}, у нас для вас подарок!"
Кнопка: "Забрать скидку {{discount}}%"

Контекстные переменные доступны не только в тексте, но и в правилах переходов. Выберите источник "Контекст" при настройке условия:

  • Если cartTotal > 5000 → показать экран "VIP-предложение".
  • Если utmSource = "instagram" → показать экран со специальной акцией.
  • Если userType = "premium" → пропустить шаг регистрации.
Настройка Exit Rule с источником «Контекст» — условие на сумму корзиныМесто для видео или скриншота

Скрипт:

HTML
<script defer id="pop-script"
  data-key="ВАШ_KEY"
  data-context-user-name="Мария"
  src="https://poptimizer.ru/popup/script.min.js">
</script>

В редакторе (текст RichText):

Код
Привет, {{userName}}! Рады видеть вас снова.

Результат на сайте:

Код
Привет, Мария! Рады видеть вас снова.

JavaScript на сайте:

JavaScript
// При изменении корзины
function onCartUpdate(cart) {
  const discount = cart.total > 5000 ? 15 : 10;
  window.Poptimizer.setContext({
    cartTotal: cart.total,
    discount: discount
  });
}

В попапе:

Код
Ваш заказ: {{cartTotal}} руб. Скидка {{discount}}%!

Ссылка: https://shop.ru/?utm_campaign=black-friday

В попапе:

Код
Специальное предложение для участников акции {{utmCampaign}}!

Если данные не были переданы, переменная остаётся как есть: {{userName}}. Это позволяет:

  • В редакторе — сразу видеть, где используются переменные.
  • На сайте — заметить, если что-то не настроено (вместо пустого места видна конструкция {{...}}).

Совет:

Перед публикацией всегда проверяйте, что все используемые переменные передаются на сайте. Посетитель не должен видеть {{userName}} — он должен видеть своё имя.

Статья помогла?

Обновлено . Нашли ошибку? Напишите на support@poptimizer.ru.