# Интеграция с RevenueCat

<Aside type="caution" icon="setting" title="Требуется помощь разработчика">
 Для настройки интеграции вам понадобится помощь вашей команды разработчиков. Пожалуйста, поделитесь с ними этим руководством.
</Aside>

[RevenueCat](https://www.revenuecat.com/) — это платформа для управления подписками, которая упрощает покупки и подписки в приложениях для бизнеса на платформах iOS, Android и в вебе. Она предоставляет комплексные инструменты для создания, анализа и улучшения подписок в приложениях.

Интегрируя Pushwoosh с [RevenueCat](https://www.revenuecat.com/), компании могут отправлять таргетированные push-уведомления, in-app сообщения и другие уведомления пользователям на основе событий подписки, отправляемых из RevenueCat в Pushwoosh. Это может побудить пользователей продлевать подписки, переходить на более высокие уровни или пользоваться специальными предложениями, повышая вовлеченность, максимизируя доход и упрощая управление подписками.

## Варианты использования

#### Персонализированная коммуникация

Компании могут использовать интеграцию для персонализации общения с клиентами. Например, платформа для электронного обучения может повысить вовлеченность пользователей, отправляя персонализированные push-уведомления при обнаружении изменения тарифного плана подписки. Эти уведомления предлагают руководство по переходу, рекомендуют релевантные курсы на основе нового плана и предоставляют эксклюзивные преимущества, соответствующие обновлению.

#### Уведомления о проблемах с оплатой

Когда у подписки пользователя возникает проблема с оплатой, компании могут использовать интеграцию RevenueCat с Pushwoosh для оперативной отправки таргетированных уведомлений. Например, стриминговый сервис может уведомить пользователя о проблеме с оплатой и предоставить инструкции по ее решению, например, обновить платежную информацию.

#### Уведомления о невозобновляемых покупках

Компании могут использовать интеграцию RevenueCat с Pushwoosh, чтобы превратить разовые покупки в долгосрочные отношения с клиентами. Например, сервис доставки еды может отправить push-уведомление после покупки, поблагодарив клиента и порекомендовав релевантные товары или предложив план подписки для постоянного удобства. Это будет способствовать лояльности клиентов, создавать возможности для дополнительных продаж и потенциально превращать разовых покупателей в подписчиков.

#### Продвижение перехода на более высокий уровень

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

## События

Интеграция позволяет отслеживать различные события, автоматически создавая их в Pushwoosh после отправки первого события из RevenueCat. К этим событиям относятся:

| Событие | Название события <div style="width:160px"></div> | Описание | Атрибуты <div style="width:200px"></div> |
|---------------------- |--------------------------- |------------------------------------------------------------------------------------------------------------------------------ |--------------------------------------------------------------------------------------------------------------- |
| Первоначальная покупка | `RC_INITIAL_PURCHASE` | Была приобретена новая подписка. | <ul><li>price</li><li>price_in_purchased_currency</li><li>currency</li></ul> |
| Невозобновляемая покупка | `RC_NON_RENEWING_PURCHASE` | Клиент совершил покупку, которая не будет автоматически продлеваться. | <ul><li>price</li><li>price_in_purchased_currency</li><li>currency</li></ul> |
| Продление | `RC_RENEWAL` | Существующая подписка была продлена, или пользователь с истекшей подпиской возобновил ее. | <ul><li>price</li><li>price_in_purchased_currency</li><li>currency</li></ul> |
| Смена продукта | `RC_PRODUCT_CHANGE` | Подписчик сменил продукт своей подписки. | |
| Отмена | `RC_CANCELLATION` | Подписка или невозобновляемая покупка была отменена. | |
| Проблемы с оплатой | `RC_BILLING_ISSUE` | Произошла проблема при попытке списания средств с подписчика. | |
| Псевдоним подписчика | `RC_SUBSCRIBER_ALIAS` | Происходит всякий раз, когда для существующего подписчика регистрируется новый `app_user_id`. | |
| Подписка приостановлена | `RC_SUBSCRIPTION_PAUSED` | Подписка была настроена на приостановку в конце периода. | |
| Возобновление подписки | `RC_UNCANCELLATION` | Отмененная подписка, срок действия которой не истек, была вновь активирована. | |
| Перенос | `RC_TRANSFER` | Был инициирован перенос транзакций и прав с одного App User ID на другой. | |
| Подписка продлена | `RC_SUBSCRIPTION_EXTENDED` | Существующая подписка была продлена (дата окончания текущего периода подписки была перенесена вперед). | |
| Истечение срока | `RC_EXPIRATION` | Подписка клиента истекает. | <ul><li>price</li><li>price_in_purchased_currency</li><li>currency</li><li>expiration_at</li><li>purchased_at</li></ul> |

Вы можете использовать все эти события в своих [сценариях Customer Journey](/ru/product/customer-journey/pushwoosh-journey-overview). События с атрибутом `price` можно использовать с [RFM-сегментацией](/ru/product/audience-data-and-segmentation/segmentation/rfm-segmentation).

<Aside type="tip">
Вы также можете сопоставить события, приносящие доход, такие как `RC_INITIAL_PURCHASE`, `RC_RENEWAL` или `RC_NON_RENEWING_PURCHASE` (используя их атрибуты `price` и `currency`), в качестве источника для [событий-конверсий](/ru/product/audience-data-and-segmentation/events/conversion-events/). Избегайте сопоставления `RC_CANCELLATION` или `RC_EXPIRATION` таким образом — события-конверсии не поддерживают возвраты или отмены, поэтому они будут по-прежнему учитываться как доход.
</Aside>

## Настройка интеграции

### Синхронизация User ID и HWID между Pushwoosh и RevenueCat

Чтобы синхронизировать события между RevenueCat и Pushwoosh для одного и того же пользователя, вам необходимо установить UserID в Pushwoosh так, чтобы он соответствовал App User ID в RevenueCat. Для этого установите appUserID из SDK RevenueCat в SDK Pushwoosh. [Узнайте больше о appUserID в RevenueCat](https://www.revenuecat.com/docs/customers/user-ids#provide-app-user-id-on-configuration)

#### Для Android

Установите appUserID, полученный из SDK RevenueCat, в SDK Pushwoosh с помощью метода `Pushwoosh.getInstance().setUserId(appUserIDFromRC);`.

#### Для iOS

Установите appUserID, полученный из SDK RevenueCat, в SDK Pushwoosh с помощью метода `[[Pushwoosh sharedInstance] setUserId: appUserIDFromRC];`.

### Отправка событий из RevenueCat в Pushwoosh

После синхронизации User ID и HWID в Pushwoosh и RevenueCat включите интеграцию с Pushwoosh в вашей панели управления RevenueCat.

1. Перейдите к своему проекту в панели управления RevenueCat и найдите карточку Integrations в меню слева. Нажмите **+ New** или **Add integration**

<img src="/integrations-revenuecat-integration-1.webp" alt="Поиск интеграций в панели управления RevenueCat"/>

2. Выберите **Webhooks** в меню **Integrations**

<img src="/integrations-revenuecat-integration-2.webp" alt="Выбор Webhooks в меню Integrations"/>

3. Дайте интеграции простое имя, например _Pushwoosh_, для легкой идентификации.
4. Введите следующий URL в поле **Webhook URL**:

`https://integration-revenuecat.svc-nue.pushwoosh.com/integration-revenuecat/v1/post-event?pwapp=APP_CODE"`

<img src="/integrations-revenuecat-integration-3.webp" alt="Ввод URL вебхука для интеграции с Pushwoosh"/>

В URL замените **APP_CODE** на код вашего приложения Pushwoosh, который находится под названием вашего приложения в аккаунте Pushwoosh.

<img src="/integrations-revenuecat-integration-4.webp" alt="Поиск кода приложения Pushwoosh"/>

5. В поле **Authorization header value** вставьте ваш **API-токен Pushwoosh.** Вы можете найти этот токен в разделе **Settings > API Access** в Pushwoosh.

<img src="/integrations-revenuecat-integration-5.webp" alt="Ввод API-токена Pushwoosh в заголовок авторизации"/>

6. Решите, хотите ли вы передавать события для производственных (реальных) покупок, покупок в песочнице (тестовых) или для обоих.
7. В выпадающем списке **App** укажите, должны ли события вебхука отправляться для одного приложения или для всех приложений в проекте.
8. В выпадающем списке **Event Type** выберите, отправлять ли все события или указать, какие именно события отправлять в Pushwoosh.

<img src="/integrations-revenuecat-integration-6.webp" alt="Настройка типов событий в вебхуке RevenueCat"/>

9. Выберите, показывать ли все события, только успешные или только неудачные.

<img src="/integrations-revenuecat-integration-7.webp" alt="Выбор опций отображения событий в вебхуке"/>

Кроме того, у вас есть возможность отправить тестовый вебхук.