Оформление и SPA
Настройки карточки и подключение к компонентам приложения.
Оформление
setAppearance()
ads.setAppearance({colorScheme: "dark",surface: "inline",bodyFontSize: 14,mediaHeight: 130});
| Параметр | Значения | По умолчанию |
|---|---|---|
colorScheme | auto, light, dark | auto |
surface | card / inline | card |
Размеры, px
| Параметр | По умолчанию | Диапазон | Описание |
|---|---|---|---|
bodyFontSize | 14 | 13–16 | Размер текста |
bodyLineHeight | 20 | 18–26 | Высота строки |
brandFontSize | 14 | 13–16 | Размер названия бренда |
metaFontSize | 11 | 11–12 | Размер маркировки |
mediaHeight | 130 | 100–200 | Высота медиа |
buttonFontSize | 14 | 13–15 | Размер текста кнопок |
buttonMinHeight | 32 | 32–40 | Минимальная высота кнопки |
buttonHorizontalPadding | 12 | 10–16 | Отступы кнопки по горизонтали |
contentPadding | 8 | 6–16 | Отступы внутри карточки |
cornerRadius | 12 | 8–20 | Скругление карточки |
blockSpacing | 6 | 4–10 | Расстояние между блоками |
logoSize | 18 | 16–24 | Размер логотипа |
Значения за пределами диапазона ограничиваются ближайшей границей. В режиме inline скругление равно 0, отступы доступны от 0 до 16 px. Высота строки — не меньше 1,35 размера текста; название бренда — не меньше bodyFontSize − 1.
Ширину задаёт контейнер приложения; высота рассчитывается по содержимому. Стили карточки изолированы от CSS страницы.
React
Передайте компоненту ранее созданный клиент ads. При удалении контейнера вызовите unmount().
Запрашивайте рекламу после завершения ответа, когда question и answer больше не меняются. Повторный вызов с тем же requestId должен содержать те же параметры.
AdSlot.jsx
function AdSlot({ ads, messageId, question, answer }) {const ref = React.useRef(null);React.useEffect(() => {const target = ref.current;void ads.requestAd({target,requestId: messageId,context: { question, answer }});return () => ads.unmount(target);}, [ads, messageId, question, answer]);return <div ref={ref} style={{ maxWidth: 480 }} />;}
Жизненный цикл
| Событие | Действие |
|---|---|
| Повторная отрисовка сообщения | Сохраните клиент, requestId и параметры запроса. |
| Экран скрыт | ads.setScreenActive(false) |
| Экран открыт | ads.setScreenActive(true) |
| Контейнер удалён | ads.unmount(target) |
| Приложение закрыто | ads.dispose() |