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

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

## Обзор интеграции и сценарии использования

[Adapty](https://app.adapty.io/login) — это платформа для управления подписками и монетизации мобильных приложений.

Интегрируя Adapty с Pushwoosh, вы можете передавать любые события, связанные с подписками, и взаимодействия с пэйволлами из Adapty в Pushwoosh. Там вы сможете запускать таргетированные кампании для вовлечения вашей пользовательской базы, продвижения дополнительных продаж и стимулирования продлений.

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

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

1. **Начните в вашем** [**аккаунте Adapty**](https://app.adapty.io/login)

Перейдите в раздел Integrations, выберите Pushwoosh, активируйте его, переключив тумблер из положения off в on, а затем заполните необходимые поля.

<img src="/integrations-adapty-integration-1.webp" alt="Интеграция Pushwoosh и Adapty - шаг 1"/>

2. **Перейдите в Pushwoosh, чтобы настроить необходимые учетные данные**

Установите соединение между вашими аккаунтами Pushwoosh и Adapty, настроив учетные данные. Для этого потребуются ваш Pushwoosh App ID и токен аутентификации.

<img src="/integrations-adapty-integration-2.webp" alt="Интеграция Pushwoosh и Adapty - шаг 2"/>

3. **Найдите ваши учетные данные Pushwoosh**

*   App ID: Находится в панели управления Pushwoosh.
*   Auth Token: Находится в разделе API Access в настройках Pushwoosh.

<img src="/integrations-adapty-integration-3.webp" alt="Интеграция Pushwoosh и Adapty - шаг 3"/>

4. **Настройте Events и Tags**

Под настройками учетных данных вы найдете опции для выбора и переименования различных групп событий из Adapty для отправки в Pushwoosh. Просмотрите и выберите нужные вам события. Полный список событий, доступных в Adapty, можно найти в [их подробном руководстве](https://docs.adapty.io/docs/events).

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

<img src="/integrations-adapty-integration-4.webp" alt="Интеграция Pushwoosh и Adapty - шаг 4"/>

5. **Включите кастомные теги**

Улучшите вашу интеграцию Pushwoosh с Adapty, используя кастомные теги. Эти теги можно настроить под ваши конкретные требования, как описано ниже:

*   adapty\_customer\_user\_id: Уникальный идентификатор пользователя из Pushwoosh.
*   adapty\_profile\_id: Уникальный ID профиля пользователя Adapty, видимый в панели управления Adapty.
*   environment: Определяет окружение пользователя: 'Sandbox' или 'Production'.
*   store: Указывает на магазин покупки ('app\_store' или 'play\_store').
*   vendor\_product\_id: ID продукта в магазине Apple/Google.
*   subscription\_expires\_at: Дата окончания последней подписки в определенном формате.
*   last\_event\_type: Тип последнего события из Adapty.
*   purchase\_date: Дата последней транзакции в определенном формате.
*   original\_purchase\_date: Дата первой покупки в определенном формате.
*   active\_subscription: Указывает на статус подписки.
*   period\_type: Тип последнего периода покупки или продления.

Кроме того, вы можете интегрировать кастомные атрибуты для большей гибкости отслеживания. На странице интеграции со стороны Adapty отметьте флажок 'Send user custom attributes' для автоматической передачи в Pushwoosh.

6. **Обязательно: Настройте SDK**

Чтобы завершить интеграцию, отправьте значение HWID из Pushwoosh в Adapty:

<Tabs>
<TabItem label="Swift">
```
let params = AdaptyProfileParameters.Builder()
    .with(pushwooshHWID: Pushwoosh.sharedInstance().getHWID())
    .build()

Adapty.updateProfile(params: params) { error in
    // handle the error
}
```
</TabItem>

<TabItem label="Kotlin">
```
val params = AdaptyProfileParameters.Builder()
    .withPushwooshHwid(Pushwoosh.getInstance().hwid)
    .build()

Adapty.updateProfile(params) { error ->
    if (error != null) {
        // handle the error
    }
}
```
</TabItem>

<TabItem label="Java">
```
AdaptyProfileParameters params = new AdaptyProfileParameters.Builder()
    .withPushwooshHwid(Pushwoosh.getInstance().getHwid())
    .build();

Adapty.updateProfile(params, error -> {
    if (error != null) {
        // handle the error
    }
})
```
</TabItem>

<TabItem label="Flutter">
```
import 'package:pushwoosh/pushwoosh.dart';

final builder = AdaptyProfileParametersBuilder()
        ..setPushwooshHWID(
          await Pushwoosh.getInstance.getHWID,
        );
try {
    await adapty.updateProfile(builder.build());
} on AdaptyError catch (adaptyError) {
    // handle error
} catch (e) {}
```
</TabItem>

<TabItem label="TypeScript">
```
import { adapty } from 'react-native-adapty';
import Pushwoosh from 'pushwoosh-react-native-plugin';

// ...
try {
  await adapty.updateProfile({
    pushwooshHWID: hwid,
  });
} catch (error) {
  // handle `AdaptyError`
}
```
</TabItem>

<TabItem label="Unity">
```
var builder = new Adapty.ProfileParameters.Builder();
builder.SetPushwooshHWID(Pushwoosh.Instance.HWID);

Adapty.UpdateProfile(builder.Build(), (error) => {
    // handle error
});
```
</TabItem>
</Tabs>

<Aside type="note">
Узнайте больше о [возможных сценариях использования интеграции Pushwoosh и Adapty](https://blog.pushwoosh.com/blog/adapty-integration/) в нашем блоге
</Aside>