# События-конверсии

События-конверсии собирают данные о доходе пользователей в едином формате, чтобы вы могли использовать их для атрибуции, аналитики и сегментации.

## Что такое события-конверсии

События, связанные с доходом, редко бывают одинаковыми. Ваш SDK может вызывать `PW_InAppPurchase`, ваш бэкенд может отправлять кастомное событие `OrderPlaced`, а Stripe или Shopify доставляют свои собственные события-вебхуки. Без общего формата таргетинг или отчетность по доходу означают написание отдельной логики для каждого источника.

События-конверсии решают эту проблему, нормализуя все это в `PW_Conversion` — встроенное событие с фиксированным набором полей:

* `value`: сумма транзакции
* `currency`: код валюты по ISO 4217
* `transaction_id` и `product_id`: необязательные идентификаторы

`PW_Conversion` охватывает покупки, продления подписок и платежи со сторонних платформ, независимо от того, откуда исходит исходное событие, связанное с деньгами. Наряду с [событиями по умолчанию](/ru/product/audience-data-and-segmentation/events/default-events/) и [кастомными событиями](/ru/product/audience-data-and-segmentation/events/custom-events/), события-конверсии являются третьей категорией событий в Pushwoosh.

Как только доход поступает в виде `PW_Conversion`, RFM-сегментация, Customer Journeys, дашборды и ManyMoney AI считывают одни и те же нормализованные данные, независимо от того, какой источник их сгенерировал.

### Как доход попадает в Pushwoosh

Вы получаете запись `PW_Conversion` одним из двух способов:

* **Отправить его напрямую из вашего кода:** ваше приложение или бэкенд отправляет `PW_Conversion` после покупки.
* **Сопоставить существующее событие в Control Panel:** укажите Pushwoosh на событие покупки, которое вы уже отправляете, и он будет генерировать записи `PW_Conversion` без изменения вашего кода. Вы можете сопоставить более одного исходного события для каждого приложения.

<Aside type="caution" title="Важно">
Используйте только один способ для каждой транзакции. Если вы отправляете `PW_Conversion` напрямую, а также сопоставляете другое событие, которое срабатывает для той же покупки, Pushwoosh записывает оба как отдельные, независимые события `PW_Conversion`. Pushwoosh не обнаруживает и не объединяет дубликаты из разных источников, даже если у них одинаковый `transaction_id`.
</Aside>

## Сценарии использования

После настройки событий-конверсий эти данные становятся доступными везде в Pushwoosh, где важен доход:

* Создавайте [RFM-сегменты](/ru/product/audience-data-and-segmentation/segmentation/rfm-segmentation/) для ценных пользователей на основе суммы и давности трат, без кастомной логики для каждого события.
* Установите `PW_Conversion` в качестве [цели конверсии (Conversion Goal)](/ru/product/customer-journey/journey-settings/#conversion-goals) в [Customer Journey](/ru/product/customer-journey/pushwoosh-journey-overview/), чтобы видеть, какие сценарии действительно приводят к покупкам, а не просто к кликам или открытиям.
* Просматривайте доход в дашбордах и отчетах без создания кастомной логики для каждого события покупки.
* Объединяйте доход от событий покупки из SDK и вебхуков платежных систем (Stripe, Shopify) в один набор данных вместо отдельного анализа каждого источника.
* Позвольте [ManyMoney AI](/ru/product/pushwoosh-ai/ai-assistant/) использовать реальные данные о транзакциях в своих рекомендациях и оптимизациях кампаний.

<Aside type="tip" title="Примеры сценариев">
**Объединение продлений и заказов в магазине**

Приложение с подпиской отправляет `PW_Conversion` после каждого платежа за продление и сопоставляет свой вебхук Shopify с `PW_Conversion` для разовых продаж товаров. Оба источника дохода теперь учитываются в одной и той же RFM-сегментации, поэтому самые платежеспособные пользователи приложения автоматически попадают в сегмент **Champions**. Оттуда вы можете нацелить на них предложение лояльности в Customer Journey.

**Объединение трат по разным каналам**

Мобильное приложение отправляет `PW_Conversion` для покупок в приложении напрямую со своего бэкенда и отдельно сопоставляет вебхук Stripe для покупок, совершенных на его веб-сайте. Поскольку Pushwoosh рассматривает оба события как один и тот же тип события дохода, ManyMoney AI видит полную историю трат клиента, как в приложении, так и на веб-сайте, когда рекомендует, на кого нацелиться дальше.

**Определение того, какие Journey приводят к покупкам**

Journey нацелен на недавно ушедших пользователей с предложением по их возврату. Его **цель конверсии (Conversion Goal)** установлена на `PW_Conversion`. После завершения Journey статистика по цели покажет, сколько из этих пользователей совершили покупку, так что вы сможете увидеть, что Journey привел к реальным покупкам, а не просто к открытиям. Чтобы увидеть, какой доход это представляет, проверьте представление дохода в сегменте или дашборде отдельно. Customer Journey показывает количество покупок по цели, а не общую сумму в долларах для каждого Journey.
</Aside>

## Как настроить события-конверсии

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

### Отправка `PW_Conversion` из вашего кода

Этот способ подходит, когда вы можете добавить или изменить код события в вашем приложении или на бэкенде. После каждой покупки отправляйте `PW_Conversion` через метод [postEvent](/ru/developer/api-reference/user-centric-api/#postevent).

<Aside type="caution" icon="setting" title="Требуется помощь разработчика">
Чтобы отправлять `PW_Conversion` из вашего кода, вам понадобится помощь вашей команды разработчиков. Поделитесь с ними примером из **View code** и [этой ссылкой](/ru/developer/guides/audience-and-segmentation/events/) для получения инструкций.
</Aside>

1. Перейдите в **Audience > Events**. Найдите карточку **Conversion events tracking**.

<img src="/events-conversion-events-5.webp" alt="Страница Events с карточкой Conversion events tracking до настройки, показывающая ноль сопоставленных событий и кнопку Start collecting revenue"/>

2. Нажмите **View code**.

<img src="/events-conversion-events-3.webp" alt="Страница настройки событий-конверсий со ссылкой View code"/>

3. Скопируйте пример и добавьте вызов `postEvent` в то место вашего приложения или бэкенда, где завершается покупка.
<img src="/events-conversion-events-2.webp" alt="Диалоговое окно с кодом интеграции с примерами postEvent для PW_Conversion на JavaScript, Swift, Objective-C и Java"/>

<Aside type="tip">
Обязательными являются только `value` и `currency`. `transaction_id` и `product_id` необязательны.

Если вы отправляете `transaction_id`, Pushwoosh сохраняет его в точности так, как вы его передаете. Он не дедуплицирует доход по этому полю.
</Aside>

**Пример для JavaScript:**

```javascript
Pushwoosh.postEvent("PW_Conversion", {
    value: 49.99,
    currency: "USD",
    transaction_id: "ord_18274",
    product_id: "sku_premium_m"
});
```

#### Атрибуты для вызова postEvent

В следующей таблице перечислены атрибуты, которые вы можете передать при отправке `PW_Conversion`.

| Поле <div style="width:120px"></div> | Тип <div style="width:100px"></div> | Обязательно <div style="width:80px"></div> | Описание |
| --- | --- | --- | --- |
| `value` | number | Да | Денежная сумма транзакции. |
| `currency` | string (ISO 4217) | Да | Код валюты транзакции, например `USD` или `EUR`. |
| `transaction_id` | string | Нет | Уникальный идентификатор транзакции. Рекомендуется для вашего собственного учета. Pushwoosh сохраняет его как есть, но не использует для дедупликации дохода. |
| `product_id` | string | Нет | Идентификатор купленного продукта или тарифа. |

<Aside type="caution">
События-конверсии в настоящее время не поддерживают возвраты или отмены. Нет способа отправить отрицательную или отменяющую запись `PW_Conversion`. После того как транзакция записана, она остается в ваших общих доходах, даже если покупка позже будет возвращена или отменена.
</Aside>

### Сопоставление существующего события для отслеживания дохода

Этот способ подходит, когда данные о покупках уже проходят через другое событие, и вы не хотите изменять свой код. Когда поступает сопоставленное исходное событие, Pushwoosh вызывает и записывает его как событие `PW_Conversion`.

<Aside type="note">
Сопоставление не изменяет и не заменяет исходное событие. Оно продолжает работать точно так же, как и раньше. Исходное событие остается доступным в сегментации, истории событий и дашбордах, как и любое другое событие. Pushwoosh дополнительно создает из него запись `PW_Conversion`, которая используется только для функций, связанных с доходом.
</Aside>

1. Перейдите в **Audience > Events**. Найдите карточку **Conversion events tracking**.

2. Нажмите **Start collecting revenue** (или **Event mapping**, если вы уже сопоставили событие). Откроется страница **Set conversion events**.

<img src="/events-conversion-events-7.webp" alt="Страница настройки событий-конверсий с разделом Use existing events to track conversion"/>

3. В разделе **Use existing events to track conversion** откройте выпадающий список **EVENT** и выберите событие, которое вы уже отправляете. Список включает кастомные события, события по умолчанию и события входящих вебхуков (например, Stripe или Shopify).

<img src="/events-conversion-events-4.webp" alt="Страница настройки событий-конверсий с выпадающим списком EVENT по умолчанию, показывающим плейсхолдер Select event"/>

4. Сопоставьте остальные атрибуты:

   * В **PRICE** выберите атрибут, в котором хранится сумма транзакции.
   * В **CURRENCY** выберите атрибут, в котором хранится код валюты.
   * При необходимости сопоставьте **TRANSACTION ID (OPTIONAL)** и **PRODUCT ID (OPTIONAL)**.
<img src="/events-conversion-events-1.webp" alt="Форма сопоставления события-конверсии с заполненными полями EVENT, price, currency, transaction ID и product ID"/>

Чтобы сопоставить другое исходное событие, нажмите **+ ADD EVENT**. Чтобы удалить сопоставление, нажмите **REMOVE**.

5. Нажмите **Apply**.

Вы можете сопоставить несколько событий в качестве источников для одного и того же приложения. Например, сопоставить кастомное событие `purchase_completed` вместе с событием вебхука Stripe.

<Aside type="caution" title="Важно">
Изменения не приведут к пересчету прошлой статистики. Только новые данные о конверсиях будут использовать обновленную настройку.
</Aside>

## Мониторинг событий-конверсий

Карточка **Conversion events tracking** на странице **Audience > Events** суммирует активность по конверсиям для выбранного приложения. Она показывает два числа:

* **Mapped events:** сколько исходных событий в настоящее время передают данные в `PW_Conversion`.
* **Triggered last 7 days:** общее количество событий `PW_Conversion`, вызванных за этот период, из любого текущего или прошлого сопоставления, или из прямых вызовов `postEvent`.

Нажмите **View code**, чтобы снова открыть пример интеграции `PW_Conversion`.

<img src="/events-conversion-events-6.webp" alt="Карточка Conversion events tracking после настройки, показывающая количество вызванных событий, количество сопоставленных событий, ссылки View code, Event mapping и How to use"/>

<Aside type="caution" title="Важно">
Это число отражает каждое событие `PW_Conversion`, вызванное за последние 7 дней, независимо от источника. Если вы измените или удалите сопоставление, прошлые события `PW_Conversion`, которые оно уже сгенерировало, останутся в подсчете, пока не выйдут за пределы 7-дневного окна. Число не уменьшается и не пересчитывается немедленно.
</Aside>