# Adapty 集成

<Aside type="caution" icon="setting" title="需要开发者协助">
您将需要开发团队的帮助来设置此集成。请与他们分享本指南。
</Aside>

## 集成概述和用例

[Adapty](https://app.adapty.io/login) 是一个移动应用订阅管理和变现平台。

通过将 Adapty 与 Pushwoosh 集成，您可以将任何与订阅相关的事件和付费墙互动从 Adapty 传递到 Pushwoosh。在 Pushwoosh 中，您可以发起有针对性的营销活动，以吸引您的用户群，促进增销并激励续订。

得益于此集成，订阅业务可以使其通信更加高效，并实现可观的收入提升。

## 设置集成

1. **从您的** [**Adapty 账户**](https://app.adapty.io/login) **开始**

导航至“集成”部分，选择 Pushwoosh，通过将开关从“关”切换到“开”来激活它，然后填写必要的字段。

<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：位于 Pushwoosh 设置的 API 访问部分。

<img src="/integrations-adapty-integration-3.webp" alt="Pushwoosh 和 Adapty 集成 - 步骤 3"/>

4. **配置事件和标签**

在凭据设置下方，您会找到从 Adapty 选择和重命名各种事件组以发送到 Pushwoosh 的选项。请审查并选择您需要的事件。有关 Adapty 中可用事件的完整列表，请参阅[他们的详细指南](https://docs.adapty.io/docs/events)。

Adapty 通过服务器到服务器的集成处理订阅事件到 Pushwoosh 的传输，让您可以在 Pushwoosh 控制面板中全面查看这些事件。

<img src="/integrations-adapty-integration-4.webp" alt="Pushwoosh 和 Adapty 集成 - 步骤 4"/>

5. **启用自定义标签**

通过使用自定义标签来增强您与 Adapty 的 Pushwoosh 集成。这些标签可以根据您的具体要求进行定制，如下所述：

*   adapty\_customer\_user\_id：来自 Pushwoosh 的唯一用户标识符。
*   adapty\_profile\_id：唯一的 Adapty 用户个人资料 ID，可在 Adapty 控制面板中查看。
*   environment：识别用户的环境，为 'Sandbox' 或 'Production'。
*   store：指明购买商店（'app\_store' 或 'play\_store'）。
*   vendor\_product\_id：在 Apple/Google 商店中的产品 ID。
*   subscription\_expires\_at：最新订阅的到期日期，格式特定。
*   last\_event\_type：来自 Adapty 的最新事件类型。
*   purchase\_date：上次交易的日期，格式特定。
*   original\_purchase\_date：首次购买的日期，格式特定。
*   active\_subscription：表示订阅状态。
*   period\_type：购买或续订的最新周期类型。

此外，您可以集成自定义属性以获得更大的跟踪灵活性。在 Adapty 端的集成页面上，勾选“发送用户自定义属性”复选框，以便自动传输到 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>