---
title: Баннеры
description: HTML-оверлеи для приложения и CMS-сайта — modal, fullscreen, inline.
---

# Баннеры

HTML-баннеры (in-app / site overlays): промо, тарифы, CTA. Аналог Braze/OneSignal HTML In-App Messages — не путать с пейволами RevenueCat.

## Админка

- **Приложение** → раздел **Баннеры**
- **CMS сайт** → раздел **Баннеры**

Создаёшь баннер с `code`, HTML, размещением и размером → **Превью** → статус `published`.

| Поле | Значения |
|------|----------|
| `placement` | `modal` (блюр + крестик), `fullscreen`, `inline` |
| `size_preset` | `auto`, `9:16`, `16:9`, `4:3`, `square` |
| `status` | `draft` / `published` / `archived` (публично только published) |

В HTML — обычные ссылки `<a href="…">`. Картинки — полные URL из «Публичные файлы».

## SDK

### Приложение

```ts
import { createRaidBossClient } from "@raidboss/platform-sdk";

const platform = createRaidBossClient({
  apiUrl: "YOUR_API_URL",
  applicationCode: "YOUR_APP_CODE",
  publicKey: "YOUR_PUBLIC_KEY",
});

const { data: banner } = await platform.getBanner("welcome_promo");
// banner.html_body, placement, size_preset, backdrop_blur, show_close

const { data: list } = await platform.listBanners({ placement: "modal" });
```

Flutter: `getBanner`, `listBanners`.

### CMS сайт

```ts
const { data } = await platform.getSiteBanner("YOUR_SITE_CODE", "home_promo");
const { data: all } = await platform.listSiteBanners("YOUR_SITE_CODE");
```

## Показ на клиенте

Платформа **не** рисует UI сама — отдаёт HTML + метаданные. Клиент:

1. Запрашивает `getBanner(code)` когда нужно (старт, кнопка, экран).
2. Рендерит overlay: WebView / iframe.
3. Для `modal` — полупрозрачный фон + blur, крестик если `show_close`.
4. Для `fullscreen` — на весь экран (ориентация по `size_preset`).
5. Аналитика: `trackEvent("banner_shown" | "banner_cta", { banner_code })`.

## API

| Метод | Путь |
|-------|------|
| GET | `/v1/applications/{code}/banners` |
| GET | `/v1/applications/{code}/banners/{bannerCode}` |
| GET | `/v1/sites/{siteCode}/banners` |
| GET | `/v1/sites/{siteCode}/banners/{bannerCode}` |

Заголовок `X-Public-Key` обязателен. Admin CRUD: `/v1/banners/owners/{application\|cms_site}/{key}`.
