Welcome Element
Видео по триггеру с переходом к CTA
Source, trigger, initial state, frequency и CTA настраиваются в Builder. Постер остаётся до разрешённой загрузки; iframe не создаётся раньше consent.
Виджет не блокирует страницу и сворачивает другой раскрытый экземпляр.

Minimized, expanded и dismissed
Minimized сохраняет launcher, expanded показывает видео и CTA, dismissed завершает текущий показ с учётом frequency.
Экземпляры работают независимо; при раскрытии одного другой сворачивается.
Delay, Scroll Depth, External Event и Immediate
Trigger задаёт момент показа. CTA выполняет link, click-target, scroll-target или event, затем применяет keep, minimize или dismiss.
Delay
delay_ms задаёт паузу перед применением initial_state.
Scroll Depth
scroll_percent задаёт порог 0–100% и сохраняет приоритет основного контента до его достижения.
External Event
trigger_event связывает виджет с формой, сценарием или другим компонентом через CustomEvent.
Immediate
Применяет initial_state при инициализации без дополнительных условий.

Welcome Element в работе
Конфигурация demo: локальный MP4, текстовая кнопка Play, состояние minimized, позиция bottom-right и CTA на #settings. Кнопка ниже раскрывает этот же экземпляр по Widget ID.
Порядок выполнения
Runtime применяет device visibility → consent → trigger → frequency → load policy.
1. Source
Resolver принимает поддерживаемые файлы и провайдеры; неизвестный iframe не выводится.
2. Poster
Резервирует геометрию и откладывает создание проигрывателя.
3. Lifecycle
pending → expanded/minimized → dismissed.
4. CTA
link, click-target, scroll-target или event; затем keep, minimize или dismiss.
Все публичные настройки MSG Welcome
Справочник соответствует element definition 0.1.6. Для каждого собственного поля указаны фактический результат, условия, допустимые значения и default; значения options приведены в сохранённом формате Builder.
Video | Обязательный источник media. Поле принимает локальные MP4, M4V, OGV и WebM либо URL YouTube, Vimeo, RuTube, VK Video, OK Video, Dzen, Cloudflare Stream и Yandex Cloud Video; доступен dynamic source. Пустой или нераспознанный источник останавливает render элемента. |
Poster | Изображение остаётся видимым до materialize video или iframe и используется внутри свёрнутого toggle. Доступен dynamic source; для готового layout подключается исходный PNG из Joomla media tree. |
Focal Point | Задаёт область, которая должна сохраниться при object-fit/cropping poster и native video. Поле доступно после выбора Poster; пустое значение оставляет Center Center. |
Accessible Title | Формирует |
Aspect Ratio | Задаёт пропорцию media-card: |
Custom Ratio | Показывается только при |
Load Policy |
|
Respect YOOtheme Consent | Default включён. Для external provider iframe не создаётся до разрешения соответствующего сервиса YOOtheme Consent Manager; local video настройку не использует. |
Autoplay | Default выключен. При включении runtime принудительно включает muted; native video стартует после перехода в expanded, external provider получает autoplay только когда его iframe разрешено создать. |
Loop | Default включён. Для local video задаёт атрибут |
Muted | Default включён. Определяет исходное состояние звука; при Autoplay поле недоступно, потому что autoplay всегда запускается без звука. |
Native Video Controls | Default выключен. Показывает browser controls только у local video и только при |
Play Button Label | Текст кнопки запуска поверх poster. Default: |
Play Button Position |
|
Close Action |
|
Position | Фиксирует widget в углу viewport: |
Desktop Width | Ширина expanded card при viewport шире 639 px. Диапазон 180–520 px; default 280 px. |
Mobile Width | Ширина expanded card при viewport до 639 px. Диапазон 140–360 px; default 200 px; Full Width on Mobile может переопределить итоговую ширину. |
Full Width on Mobile | Default выключен. В expanded state занимает доступную ширину viewport за вычетом mobile offsets и safe-area; размер свёрнутого toggle остаётся равен Minimized Size. |
Minimized Size | Диаметр свёрнутого toggle. Диапазон 48–120 px; default 72 px. |
Horizontal Offset | Горизонтальный отступ desktop от выбранного левого или правого края. Runtime ограничивает значение диапазоном 0–200 px; default 24 px. |
Vertical Offset | Вертикальный отступ desktop от выбранного верхнего или нижнего края. Runtime ограничивает значение диапазоном 0–200 px; default 24 px. |
Mobile Horizontal Offset | Горизонтальный отступ при viewport до 639 px. Runtime ограничивает значение диапазоном 0–100 px и добавляет соответствующий safe-area inset; default 16 px. |
Mobile Vertical Offset | Вертикальный отступ при viewport до 639 px. Runtime ограничивает значение диапазоном 0–100 px и добавляет соответствующий safe-area inset; default 16 px. |
Stacking Order | Определяет слой fixed widget относительно остального интерфейса. Default 999; runtime принимает целое значение от 0 до 2147483647. |
Border Radius | Скругляет expanded card. Диапазон 0–100 px; default 20 px. |
Border Width | Толщина рамки card. Диапазон 0–12 px; default 0 px, поэтому Border Color визуально не применяется. |
Border Color | Цвет рамки при Border Width больше нуля. Default: |
Box Shadow | Выбирает тень контейнера: |
Trigger | Определяет момент первого reveal: |
Delay (ms) | Показывается при |
Scroll Depth | Показывается при |
Event Name | Показывается при |
Initial State |
|
Show on Desktop | Default включён. Разрешает widget при viewport шире 639 px; выключение скрывает экземпляр, снимает trigger и останавливает media на этом диапазоне. |
Show on Mobile | Default включён. Разрешает widget при viewport до 639 px; выключение скрывает экземпляр, снимает trigger и выгружает external iframe. |
Frequency |
|
Days | Показывается при |
Cookie Name | Показывается при |
Cookie Lifetime | Показывается при |
Lifetime Unit | Показывается при |
Initial Appearance Animation | Анимирует первое появление toggle: |
Initial Appearance Duration | Длительность enter-фазы: 80–1200 мс с шагом 20; default 360 мс. Поле отключено при |
Expand Animation | Анимирует переход toggle → card: |
Expand Duration | Длительность expand-фазы: 80–1200 мс с шагом 20; default 460 мс. Поле отключено при |
Minimize Animation | Анимирует переход card → toggle: |
Minimize Duration | Длительность minimize-фазы: 80–1200 мс с шагом 20; default 400 мс. Поле отключено при |
Close Animation | Скрывает toggle после полного Dismiss: |
Close Duration | Длительность close-фазы: 80–1200 мс с шагом 20; default 360 мс. Поле отключено при |
CTA Type |
|
Label | Видимый текст CTA для всех типов, кроме |
Icon | Необязательная иконка YOOtheme для всех активных типов CTA. Поддерживает dynamic source; может работать без Label при наличии доступного имени. |
Link | URL режима |
Link Title | Необязательный HTML |
Link ARIA Label | Доступное имя CTA. Обязательно для icon-only CTA; при видимом Label заполняется только когда доступное имя должно отличаться от текста. |
Style | Штатный стиль YOOtheme: |
Size | Штатный размер CTA: |
Icon Alignment | Показывается при выбранной Icon. Размещает её |
Position | Размещает CTA относительно нижних controls: |
Open in a New Window | Только для |
Download | Только для |
Nofollow | Только для |
Noreferrer | Только для |
CSS Selector | Показывается для |
Event Name | Показывается для |
After Action | После успешно выполненного CTA оставляет card открытой ( |
Widget ID | Стабильный идентификатор экземпляра для внешнего открытия, public API, frequency keys и фильтрации DOM events. Runtime оставляет буквы, цифры, подчёркивание и дефис; пустое значение заменяет element ID. |
Enable analytics events | Default включён. Отправляет bubbling DOM events impression, open, play, progress, CTA и close с техническим |
CTA и внешнее открытие
CTA Type задаёт действие кнопки внутри виджета:
- Link открывает URL из настроек CTA.
- Click Existing Target активирует первый элемент, найденный по CSS Selector.
- Scroll to Target прокручивает страницу к первому элементу, найденному по CSS Selector.
- Dispatch Event отправляет
CustomEventс именем из Event Name.
After Action — Keep Open, Minimize или Dismiss — применяется только после успешно выполненного CTA.
Чтобы открыть виджет внешней кнопкой, задайте элементу MSG Welcome уникальный Widget ID, например homepage-welcome. Затем в Advanced → Attributes внешней кнопки добавьте атрибут:
data-msgwelcome-open="homepage-welcome"Делегированный обработчик работает и для кнопок, добавленных после загрузки страницы. Внешнее открытие обходит автоматические Trigger и Frequency, но сохраняет ограничения Show on Desktop и Show on Mobile. Неизвестный или недоступный Widget ID не отменяет стандартное действие внешней кнопки.
Атрибут data-msgwelcome-open — основной способ интеграции. Для программного вызова доступен публичный API:
<script>
window.MSGWelcome?.get('homepage-welcome')?.openExternal();
</script>
Analytics events и site-owned интеграции
MSG Welcome не загружает analytics SDK и не отправляет аналитические запросы. При включённом Enable analytics events успешный CTA отправляет msgwelcome:cta, а явное закрытие — msgwelcome:close. Оба события всплывают до document.
В event.detail доступны widgetId, elementId, provider, state, event, action, ctaType для CTA и timestamp. URL видео, CSS-селекторы и идентификаторы посетителя не передаются.
Имена msgwelcome:cta и msgwelcome:close зарезервированы для аналитики. Режим Dispatch Event по умолчанию использует отдельное имя msgwelcome:cta-action.
Скрипт добавьте в YOOtheme Pro → Settings → Scripts → Custom Script вместе с тегами <script>. Категорию Consent Manager выбирайте по назначению интеграции — обычно Statistics или Marketing. Скрипт начнёт работать после соответствующего согласия; более ранние события повторно не отправляются.
Базовый обработчик с фильтром Widget ID
<script>
document.addEventListener('msgwelcome:close', function (event) {
if (event.detail.widgetId !== 'homepage-welcome') return;
console.log('Welcome video closed', event.detail);
});
document.addEventListener('msgwelcome:cta', function (event) {
if (event.detail.widgetId !== 'homepage-welcome') return;
console.log('Welcome video CTA', event.detail);
});
</script>Google Tag Manager или существующий dataLayer
<script>
window.dataLayer = window.dataLayer || [];
document.addEventListener('msgwelcome:close', function (event) {
window.dataLayer.push({
event: 'msgwelcome_close',
widget_id: event.detail.widgetId,
provider: event.detail.provider
});
});
document.addEventListener('msgwelcome:cta', function (event) {
window.dataLayer.push({
event: 'msgwelcome_cta',
widget_id: event.detail.widgetId,
cta_type: event.detail.ctaType
});
});
</script>Яндекс Метрика
Замените 12345678 и имена целей значениями конкретного сайта.
<script>
document.addEventListener('msgwelcome:close', function (event) {
ym(12345678, 'reachGoal', 'WELCOME_CLOSE', {
widget_id: event.detail.widgetId
});
});
document.addEventListener('msgwelcome:cta', function (event) {
ym(12345678, 'reachGoal', 'WELCOME_CTA', {
widget_id: event.detail.widgetId,
cta_type: event.detail.ctaType
});
});
</script>
Dynamic Content | Штатная привязка Builder к dynamic source. Condition и Value фильтруют результат, а Show Empty разрешает render при пустом значении и отключает условие. |
ID / Classes / Attributes | Штатные advanced-атрибуты. В layout этой страницы произвольные Classes не используются. |
CSS / Transform | Штатные CSS и Transform Builder. В layout этой страницы custom CSS не используется. |
Motion Lab
Выберите фазу, эффект и длительность. Стенд повторяет production-motion Welcome Element и показывает фактическую траекторию до сохранения настроек в Builder.
Системная настройка уменьшения движения включена — автоматический повтор остановлен. Нажмите выбранную анимацию ещё раз, чтобы повторить её осознанно.
Responsive без отдельного CSS
width, width_mobile и offsets задаются раздельно. full_width_mobile использует доступный viewport с safe-area; touch targets сохраняют минимум 44 × 44 CSS px.
Keyboard controls, focus-visible и reduced motion встроены в runtime. При появлении фокус не перехватывается; smooth scroll отключается вместе с motion.


Consent до создания iframe
Native video работает без внешнего сервиса. YouTube и Vimeo используют consent‑сервисы YOOtheme; остальные iframe‑провайдеры — preferences.msg-external-video.
До разрешения остаётся poster, iframe не создаётся. Плагин не подключает analytics SDK и не отправляет сетевые события; интеграция использует DOM events.
Список изменений
0.1.7
0.1.6
Лицензия
-
Скачивание без ограничений
-
Использование на любом количестве сайтов
-
Помощь в установке и настройке
-
Техническая поддержка
-
Исправление проблем совместимости со сторонними расширениями и библиотеками
-
Доработка функционала под конкретные требования заказчика