# 🎯 Настройка таргетинга в Gravity Field

Таргетинг определяет, **кому**, **где** и **когда** можно показать сценарий кампании. Он помогает запускать персонализацию только для нужных пользователей, в нужном контексте и в нужный момент.

!!!primary Короткое правило
Условия кампании проверяются в момент показа. Если условие должно учитывать прошлые действия пользователя за несколько дней, недель или месяцев, сначала создайте аудиторию, а затем используйте её в таргетинге кампании.
!!!

---

## 🧠 Как устроен таргетинг кампании

Таргетинг кампании отвечает на вопрос: **можно ли показать этот сценарий пользователю сейчас**. Для этого Gravity Field проверяет три группы условий: **Кто**, **Где** и **Когда**.

{.compact}
| Блок     | Что определяет                                      |
|----------|-----------------------------------------------------|
| **Кто**  | Пользователь: кто он, что делает, откуда пришёл     |
| **Где**  | Где он находится на сайте (URL, тип страницы)       |
| **Когда**| Когда показать: дата, время, расписание             |

![](./assets/targeting.png)

---

## Как проверяются условия

Когда пользователь открывает страницу, приложение активирует кампанию или сайт отправляет `choose`-запрос, Gravity Field получает текущий контекст и проверяет условия сценария.

Для условий, связанных с текущим поведением пользователя, это означает:

- действие должно уже произойти в текущей сессии;
- нужный параметр должен быть доступен в текущем запросе;
- кампания не накапливает историю действий за неделю, месяц или другой период.

Например, условие `Products viewed` в таргетинге кампании подходит для реакции на товары, которые пользователь уже посмотрел в текущей сессии. Если нужно выбрать пользователей, которые смотрели товары за последние 7 дней, это лучше делать через аудиторию.

!!!info Активация не заменяет таргетинг
Активация или триггер отвечают на вопрос **когда попробовать запустить кампанию**: например, при `/visit`, `/event`, открытии экрана или бизнес-событии. Таргетинг отвечает на вопрос **можно ли показать сценарий этому пользователю в этом контексте**. Активированная кампания остаётся кандидатом на показ и всё равно проходит условия таргетинга, расписание и проверку доступного контента.
!!!

---

## Справочник условий

### 👤 «Кто?» — кто увидит кампанию

Вы можете настроить, каким пользователям будет показан сценарий. Ниже — список доступных условий:

{.compact}
| Условие                     | Описание                                                                 | Интеграции |
|-----------------------------|--------------------------------------------------------------------------|------------|
| **Audience**                | Пользователи из выбранной аудитории                                     | Web / API  |
| **CUID**                    | Конкретный пользователя по его уникальному идентификатору                | Web / API / SDK  |
| **Push Permission** 🆕        | Статус разрешения на получение push-уведомлений                    | SDK        |
| **Tracking Status** 🆕        | Статус разрешения App Tracking Transparency (iOS)                  | SDK        |
| **Browser**                 | Браузер пользователя (Chrome, Firefox и т.д.)                            | Web / API  |
| **User affinity**        | Пользователи с предпочтениями к товарам по атрибутам                     | Web / API  |
| **Traffic source**          | Источник трафика (определяется по `referrer`)                           | Web / API  |
| **Device category**         | Тип устройства: смартфон, планшет, ПК                                   | Web / API  |
| **Country / Region / City** | География пользователя (по IP)                                           | Web / API  |
| **Number of pageviews**     | Кол-во просмотренных страниц в текущей сессии                           | Web / API  |
| **New user**                | Новые пользователи (по куке)                                             | Web        |
| **Cookie**                  | Проверка значения конкретной куки                                       | Web        |
| **URL visit**               | Посещение определённых URL в текущей сессии                             | Web / API  |
| **Products added to cart**  | Товары, добавленные в корзину в текущей сессии или доступные в текущем контексте | Web / API  |
| **Products viewed**         | Товары, просмотренные в текущей сессии или доступные в текущем контексте | Web / API  |
| **Products purchased**      | Покупки, совершённые в текущей сессии или доступные в текущем контексте | Web / API  |
| **Event trigger**           | Событие, которое произошло в текущей сессии или текущем сценарии обработки | Web / API  |
| **Event trigger by property** | Событие с заданным значением свойства в текущей сессии или текущем сценарии обработки | Web / API  |
| **Custom attribute**        | Значения кастомных параметров страницы (API-only)                       | API        |
| **Operating system**        | Проверка ОС (например, iOS, Android, Windows)                           | Web        |
| **Churn probability**       | Вероятность ухода пользователя (предиктивная метрика)                   | Web / API  |

> 💡 Продуктовые фильтры (категория, цвет, размер) работают на основе фида. Чтобы изменить доступные свойства, обратитесь к менеджеру по персонализации.

---

### 🌍 «Где?» — где будет показано

Здесь задаются условия по контексту страницы:

{.compact}
| Условие                   | Описание                                                                 | Интеграции |
|---------------------------|--------------------------------------------------------------------------|------------|
| **Page URL**              | Полный адрес страницы (можно игнорировать параметры URL)                 | Web / API  |
| **Category page**         | Страница категории товаров (с фильтрацией по атрибутам)                  | Web / API  |
| **Product page**          | Карточка товара (доступен фильтр по параметрам товара)                   | Web / API  |
| **Search page**           | Страница поиска                                                          | Web / API  |
| **Cart page** 🆕          | Страница корзины (с возможностью фильтрации по товарам в корзине)        | Web / API  |
| **Products views**        | Просмотры конкретных товаров в текущей сессии                            | Web        |
| **Products purchases**    | Покупки конкретных товаров в текущей сессии                              | Web        |
| **Evaluator**             | Проверка, что эвалюатор вернул нужное значение ([подробнее](./evaluators.md)) | Web        |

> ⚠️ Фильтры по свойствам товара работают только с атрибутами, выбранными в настройках фида.
>
> 💡 Для `Cart page` контекстом служат товары, которые уже находятся в корзине. Если вы используете строгие фильтры по атрибутам, лучше выбирать свойства, которые совпадают у всех товаров, относительно которых вы хотите строить выдачу. Подробно логика описана в [Фильтрах и правилах мерчандайзинга](../Recs/filters_and_rules.md).

---

### 🕒 «Когда?» — когда запускать

Вы можете задать точные временные рамки, когда сценарий будет активен:

- Только в будни / выходные
- Только в рабочее время
- Только по праздникам или акциям
- С ограничением по таймзоне

![](./assets/targeting_schedule.png)

!!!warning Важно не смешивать период и расписание
Расписание кампании определяет, когда сценарий активен. Оно не задаёт период, за который пользователь должен был выполнить условия. Для прошлых действий пользователя используйте аудитории.
!!!

---

## Таргетинг по прошлым действиям пользователя

Если условие должно учитывать не текущую сессию, а поведение за период, сначала создайте аудиторию:

1. В аудитории настройте нужные условия: например, покупка, просмотр категории или кастомное событие.
2. Укажите `Attribution window`: за какой период пользователь должен выполнить условия.
3. Укажите `Retention`: как долго пользователь останется в аудитории после выполнения условий.
4. В кампании используйте условие `Audience` и выберите созданную аудиторию.

Такой подход подходит для сценариев:

- «покупал за последние 30 дней»;
- «смотрел категорию за неделю»;
- «совершил 3 события за месяц»;
- «добавлял товар в корзину и вернулся позже».

[!ref](/Audiences/attribution_and_retention.md)
[!ref](/Audiences/audience_principles.md)

---

## Примеры настройки

=== Реакция в текущей сессии
**Задача:** пользователь посмотрел товар, и в этой же сессии нужно показать ему виджет с похожими товарами.

**Как настроить:** используйте условие `Products viewed` в таргетинге кампании. Дополнительная аудитория не нужна, потому что действие относится к текущей сессии.
===

=== Поведение за период
**Задача:** пользователь покупал за последние 30 дней, и при следующем визите нужно показать персональный оффер.

**Как настроить:** создайте аудиторию с условием покупки, задайте `Attribution window` и `Retention`, затем в кампании выберите эту аудиторию через условие `Audience`.
===

=== Календарное ограничение
**Задача:** кампания должна работать только в выходные или только в рабочие часы.

**Как настроить:** используйте расписание кампании. Условия поведения пользователя при этом настраиваются отдельно: в таргетинге кампании или через аудиторию.
===

---

## Планирование сценариев

Если вы хотите запланировать запуск сценария в будущем:

1. Откройте нужный сценарий.
2. Нажмите **Set Schedule**.
3. Установите:
   - Дату начала и окончания
   - Время начала и окончания
   - Часовой пояс

![](./assets/targeting_schedule_2.png)

---

## ✅ Чеклист: как настроить таргетинг

- [x] Определили, нужен ли текущий контекст, история за период или календарное расписание.
- [x] Для текущей сессии использовали условия кампании.
- [x] Для поведения за период создали аудиторию и выбрали её через `Audience`.
- [x] Для дат, времени и дней недели настроили расписание.
- [x] Проверили условия в интерфейсе перед запуском.

---

## 📚 Полезные ссылки

- [Предиктивные аудитории (Churn)](../../Audiences/predictive_auidences.md)
- [Источник трафика и его определение](../../Audiences/traffic_sources.md)
- [Атрибуция и период хранения аудитории](../../Audiences/attribution_and_retention.md)
- [Принцип работы аудиторий](../../Audiences/audience_principles.md)
- [Передача просмотров через `/visit`](../../Integration/api_integration/v2/personalization/visit.md)
- [Передача событий через `/event`](../../Integration/api_integration/v2/personalization/events.md)
- [Активация in-app кампаний](./app_campaigns/getting_started.md#активация-in-app)
- [Работа с эвалюаторами](./evaluators.md)
- [Создание кампании](./create_web_campaigns.md)
