---
title: "Pushwoosh"
description: "Интегрируйте Pushwoosh с Adapty для удобного отслеживания push-уведомлений."
---

Adapty использует события подписки для обновления тегов профиля в [Pushwoosh](https://www.pushwoosh.com/), что позволяет выстраивать целевую коммуникацию с пользователями через push-уведомления — после простой и быстрой настройки интеграции, описанной ниже.

## Как настроить интеграцию с Pushwoosh \{#how-to-set-up-pushwoosh-integration\}

Чтобы подключить Pushwoosh, перейдите в [**Integrations** -> **Pushwoosh**](https://app.adapty.io/integrations/pushwoosh), включите переключатель и заполните поля.

Для начала укажите учётные данные, необходимые для соединения между вашими профилями Pushwoosh и Adapty. Потребуются App ID и Auth token приложения Pushwoosh.

  <img src="/assets/shared/img/64e48a1-CleanShot_2023-08-18_at_11.13.212x.webp"
  style={{
    border: '1px solid #727272', /* border width and color */
    width: '700px', /* image width */
    display: 'block', /* for alignment */
    margin: '0 auto' /* center alignment */
  }}
/>

1. **App ID** можно найти в дашборде Pushwoosh.

  <img src="/assets/shared/img/ee27687-CleanShot_2023-08-18_at_14.37.442x.webp"
  style={{
    border: '1px solid #727272', /* border width and color */
    width: '700px', /* image width */
    display: 'block', /* for alignment */
    margin: '0 auto' /* center alignment */
  }}
/>

2. **Auth token** можно найти в разделе API Access в настройках Pushwoosh.

  <img src="/assets/shared/img/50e634b-CleanShot_2023-08-18_at_14.35.022x.webp"
  style={{
    border: '1px solid #727272', /* border width and color */
    width: '700px', /* image width */
    display: 'block', /* for alignment */
    margin: '0 auto' /* center alignment */
  }}
/>

## События и теги \{#events-and-tags\}

Ниже учётных данных расположены три группы событий, которые можно отправлять из Adapty в Pushwoosh. Просто включите нужные. При необходимости вы можете переименовать события перед отправкой в Pushwoosh. Полный список событий Adapty доступен [здесь](events).

  <img src="/assets/shared/img/392dc31-screencapture-app-adapty-io-integrations-pushwoosh-2023-08-22-13_31_07.webp"
  style={{
    border: '1px solid #727272', /* border width and color */
    width: '700px', /* image width */
    display: 'block', /* for alignment */
    margin: '0 auto' /* center alignment */
  }}
/>

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

:::note
Пользовательские теги

В рамках интеграции с Pushwoosh вы также можете использовать собственные теги. Ознакомьтесь со списком тегов ниже, чтобы выбрать подходящий для ваших задач.
:::

| Тег | Тип | Значение |
|---|----|-----|
| `adapty_customer_user_id` | String | Содержит уникальный идентификатор пользователя, который можно найти на стороне Pushwoosh. |
| `adapty_profile_id` | String | Содержит уникальный идентификатор профиля пользователя Adapty, который можно найти в вашем [дашборде](profiles-crm) Adapty. |
| `environment` | String | <p>Указывает, в какой среде работает пользователь — песочнице или продакшене.</p><p></p><p>Возможные значения: `Sandbox` или `Production`.</p> |
| `store` | String | <p>Содержит название стора, через который была совершена покупка.</p><p></p><p>Возможные значения:</p><p>`app_store` или `play_store`.</p> |
| `vendor_product_id` | String | <p>Содержит Product ID в Apple/Google стор.</p><p></p><p>Например: org.locals.12345</p> |
| `subscription_expires_at` | String | <p>Содержит дату истечения последней подписки.</p><p></p><p>Формат значения:</p><p>year-month dayThour:minute:second</p><p>Например: 2023-02-10T17:22:03.000000+0000</p> |
| `last_event_type` | String | Указывает тип последнего полученного события из списка стандартных [событий Adapty](events), включённых для интеграции. |
| `purchase_date` | String | <p>Содержит дату последней транзакции (первоначальной покупки или продления).</p><p></p><p>Формат значения:</p><p>year-month dayThour:minute:second</p><p>Например: 2023-02-10T17:22:03.000000+0000</p> |
| `original_purchase_date` | String | <p>Содержит дату первой покупки согласно транзакции.</p><p></p><p>Формат значения:</p><p>year-month dayThour:minute:second</p><p>Например: 2023-02-10T17:22:03.000000+0000</p> |
| `active_subscription` | String | Принимает значение `true` при любом событии покупки или продления, или `false`, если подписка истекла. |
| `period_type` | String | <p>Указывает последний тип периода для покупки или продления.</p><p></p><p>Возможные значения:</p><p>`trial` для пробного периода или `normal` для остальных.</p> |

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

Помимо предопределённого списка тегов, можно отправлять [пользовательские атрибуты](segments#custom-attributes) в виде тегов. Это даёт больше гибкости в выборе передаваемых данных и полезно для отслеживания специфической информации о продукте или сервисе. Все пользовательские атрибуты пользователя автоматически отправляются в Pushwoosh, если отмечен чекбокс **Send user custom attributes** на [странице интеграции](https://app.adapty.io/integrations/pushwoosh).

## Настройка SDK \{#sdk-configuration\}

Чтобы связать Adapty с Pushwoosh, необходимо передать значение `HWID`:

<Tabs groupId="current-os" queryString>
<TabItem value="swift" label="iOS (Swift)" default>
```swift showLineNumbers
do {
    try await Adapty.setIntegrationIdentifier(
        key: "pushwoosh_hwid", 
        value: Pushwoosh.sharedInstance().getHWID()
    )
} catch {
    // handle the error
}
```
</TabItem>
<TabItem value="kotlin" label="Android (Kotlin)" default>
```kotlin showLineNumbers
Adapty.setIntegrationIdentifier("pushwoosh_hwid", Pushwoosh.getInstance().hwid) { error ->
    if (error != null) {
        // handle the error
    }
}
```
</TabItem>
<TabItem value="java" label="Android (Java)" default>
```java showLineNumbers
Adapty.setIntegrationIdentifier("pushwoosh_hwid", Pushwoosh.getInstance().getHwid(), error -> {
    if (error != null) {
        // handle the error
    }
});
```
</TabItem>
<TabItem value="flutter" label="Flutter (Dart)" default>
```javascript showLineNumbers

final hwid = await Pushwoosh.getInstance.getHWID;

try {
    await Adapty().setIntegrationIdentifier(
        key: "pushwoosh_hwid", 
        value: hwid,
    );
} on AdaptyError catch (adaptyError) {
    // handle the error
} catch (e) {
    // handle the error
}
```
</TabItem>
<TabItem value="unity" label="Unity (C#)" default>
```csharp showLineNumbers
using AdaptySDK;

Adapty.SetIntegrationIdentifier(
  "pushwoosh_hwid", 
  Pushwoosh.Instance.HWID, 
  (error) => {
  // handle the error
});
```
</TabItem>
<TabItem value="rn" label="React Native (TS)" default>
```typescript showLineNumbers

// ...
try {
  await adapty.setIntegrationIdentifier("pushwoosh_hwid", hwid);
} catch (error) {
  // handle `AdaptyError`
}
```
</TabItem>
</Tabs>