Добавление лендинга¶
Лендинг — статическая страница, связанная с шагом симуляции. Платформа готовит ZIP-пакет, а организация размещает его на публичном HTTPS-адресе.
Безопасность данных
Лендинг не должен собирать или передавать реальные пароли, платёжные данные и другие секреты сотрудника. AVB Fort фиксирует только разрешённые события, но не значения полей формы.
Как устроен процесс¶
Шаблон → ассет симуляции → snapshot → ZIP → размещение → проверка
- Шаблон определяет внешний вид и доступные для настройки поля.
- Ассет содержит значения для конкретной симуляции.
- Snapshot фиксирует исходный пакет и защищает запущенную симуляцию от последующих изменений шаблона.
- Сборщик подставляет значения и добавляет механизм регистрации событий.
1. Подготовьте шаблон¶
Откройте Симуляции → Шаблоны лендингов → Новый шаблон.
Заполните:
- Название — понятное имя в каталоге;
- Описание — назначение шаблона;
- Статус — черновик, активный или архив;
- Источник — встроенный пакет либо собственный ZIP.
Активный публичный шаблон доступен всем организациям. Приватный шаблон доступен только внутри компании, которая его создала.
2. Требования к собственному ZIP¶
Пакет должен содержать как минимум:
landing-template.zip
├── index.html
└── template.json
Дополнительно можно включить CSS, JavaScript, изображения и шрифты. Серверный код не поддерживается.
Обязательные маркеры index.html¶
<meta name="avbfort-build" content="__AVBFORT_BUILD_FINGERPRINT__">
<script id="avbfort-runtime-config" type="application/json">
__AVBFORT_RUNTIME_CONFIG__
</script>
<script src="avbfort-runtime.js"></script>
Сборщик заменяет маркеры при подготовке готового ZIP. Файл
avbfort-runtime.js добавляется платформой автоматически — включать его в
исходный пакет не нужно.
Полностью статичный шаблон¶
Если текст и оформление не должны изменяться в каждой симуляции, используйте:
{
"schema_version": 1,
"fields": []
}
Шаблон с изменяемыми полями¶
Объявите поля в template.json:
{
"schema_version": 1,
"key": "document_portal",
"fields": [
{
"key": "page_title",
"label": "Заголовок страницы",
"default": "Документ доступен для просмотра",
"required": true,
"max_length": 255
},
{
"key": "button_label",
"label": "Текст кнопки",
"default": "Открыть документ",
"required": true,
"max_length": 80
}
]
}
В index.html используйте соответствующие placeholders:
<h1>{{ page_title }}</h1>
<button type="submit">{{ button_label }}</button>
Значения default служат начальными значениями. Конкретный текст задаётся в
ассете симуляции. Перед вставкой платформа экранирует значения как текст.
3. Создайте ассет¶
- Откройте симуляцию в статусе Черновик.
- Нажмите Ассеты → Добавить ассет.
- Выберите тип Лендинг.
- Укажите режим самостоятельного размещения.
- Выберите активный шаблон.
- Сохраните ассет.
После создания откроется карточка лендинга. Поля на ней берутся из
template.json выбранного шаблона.
4. Настройте и соберите¶
На карточке ассета:
- Проверьте название ассета и выбранный шаблон.
- Заполните изменяемые поля.
- Нажмите Сохранить.
- Нажмите Собрать ZIP.
- Скачайте подготовленный архив.
Платформа не соберёт пакет, если обязательное поле осталось пустым.
Изменение шаблона
Ассет хранит независимый snapshot. Изменение шаблона в каталоге не меняет уже подготовленный лендинг автоматически.
5. Разместите лендинг¶
Распакуйте содержимое ZIP в корневой каталог сайта или отдельный каталог на shared hosting. Главная страница должна открываться по публичному HTTPS URL, например:
https://documents-example.ru/
URL должен:
- использовать HTTPS;
- быть доступен из интернета;
- открывать
index.htmlбез авторизации; - не содержать query-параметры или fragment;
- отдавать файлы сборки без изменения их содержимого.
6. Проверьте размещение¶
- Вернитесь в карточку ассета.
- Укажите публичный HTTPS URL.
- Сохраните изменения.
- Нажмите Проверить размещение.
Платформа проверит manifest, fingerprint и runtime текущей сборки. После успешной проверки лендинг получит статус Готов.
Регистрация событий¶
Tracking runtime добавляется при сборке автоматически. Для стандартных действий в HTML можно использовать:
<form data-avbfort-track-form>
<!-- Поля формы -->
</form>
<button data-avbfort-event="button_clicked">
Продолжить
</button>
Runtime регистрирует только тип разрешённого события и технический контекст симуляции. Значения полей формы в событие не включаются.
Частые проблемы¶
ZIP не принимается¶
Проверьте наличие index.html, template.json и обязательных runtime-маркеров.
Имена файлов внутри архива должны использовать безопасные относительные пути.
Сборка не выполняется¶
Проверьте обязательные поля ассета. У каждого поля с required: true должно
быть задано значение.
Проверка URL не проходит¶
Убедитесь, что URL публичный, использует HTTPS и содержит именно последнюю сборку. После пересборки загрузите новый ZIP на hosting повторно.