# Qonversion 集成

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


[Qonversion](https://qonversion.io/) 是一个数据平台，可以帮助您增加应用内订阅收入。该平台使集成应用内订阅和进行变现测试变得容易。

Qonversion 提供了必要的后端基础设施来验证用户收据，并促进在您的应用内跨平台访问付费内容，无需您开发自己的服务器。此外，您还可以利用其广泛的订阅分析功能，以及与领先的营销、归因和产品分析平台的无缝集成。

## 用例

Qonversion 将[订阅事件](https://documentation.qonversion.io/docs/integrations-overview#tracked-events)（包括购买、免费试用后订阅、续订、退款等）发送到 Pushwoosh。这使您能够积极与用户互动，以提高客户保留率，并最终为您的业务带来更高的收入。

### 订阅续订提醒

您可以使用 Qonversion 关于已过期订阅的数据来创建一个 Customer Journey，通过推送通知或应用内消息自动发送个性化提醒。

### 个性化优惠

使用来自 Qonversion 的订阅数据，定位那些取消了订阅的用户，并创建一个以引人注目的推送通知开始的 Customer Journey，提供独家折扣。如果用户与推送通知互动但未完成购买，该 Journey 可以接着发送一条带有额外福利的应用内消息，鼓励他们返回并兑换优惠。

### 试用转化

使用 Qonversion 跟踪试用期即将结束的用户，并创建 Customer Journey 来鼓励他们转化为付费订阅者。

## 设置集成

### 设置 SDK

1. 安装 Pushwoosh SDK。了解更多关于如何在 [IOS](/zh/developer/pushwoosh-sdk/ios-sdk)、[Android](/zh/developer/pushwoosh-sdk/android-sdk) 和[跨平台](/zh/developer/pushwoosh-sdk/cross-platform-frameworks)上安装 Pushwoosh SDK 的信息。
2. 按照 [Qonversion SDK 安装指南](https://documentation.qonversion.io/docs/install-sdk)设置 Qonversion SDK。
3. 要将从 [Qonversion](https://dash.qonversion.io/site/login) 发送的事件归因于特定的 Pushwoosh 用户，请设置 Pushwoosh Hardware ID (HWID)：

<Tabs>
<TabItem label="Swift">
```swift
Qonversion.shared().setUserProperty(.pushWooshHwId, value: Pushwoosh.sharedInstance().getHWID())
```
</TabItem>

<TabItem label="Objective-C">
```objective-c
[[Qonversion sharedInstance] setUserProperty:QONUserPropertyKeyPushWooshHwId, value: [[Pushwoosh sharedInstance] getHWID]];
```
</TabItem>

<TabItem label="Java">
```java
Qonversion.getSharedInstance().setUserProperty(QUserPropertyKey.PushWooshHwId, Pushwoosh.getInstance().getHWID());
```
</TabItem>

<TabItem label="Kotlin">
```kotlin
Qonversion.shared.setUserProperty(QUserPropertyKey.PushWooshHwId, Pushwoosh.getInstance().getHWID())
```
</TabItem>


</Tabs>

<Tabs> 

<TabItem label="Flutter">
```
String hwid = await Pushwoosh.getInstance.getHWID;
Qonversion.getSharedInstance().setUserProperty(QUserPropertyKey.pushWooshHwId, hwid);
```
</TabItem>

<TabItem label="React Native">
```
Pushwoosh.getHwid( function(hwId) { Qonversion.getSharedInstance().setUserProperty(UserPropertyKey.PUSH_WOOSH_HW_ID, hwId); } );
```
</TabItem>

<TabItem label="Unity">
```
Qonversion.GetSharedInstance().SetUserProperty(UserPropertyKey.PushWooshHwId, Pushwoosh.Instance.HWID);
```
</TabItem>

<TabItem label="Cordova">
```
pushwoosh.getPushwooshHWID(
  function(hwId) {
    Qonversion.getSharedInstance().setUserProperty(Qonversion.UserPropertyKey.PUSH_WOOSH_HW_ID, hwId);
  }
);
```
</TabItem>
</Tabs>


4. （可选）为提高归因准确性，为 Pushwoosh 和 Qonversion 设置相同的用户 ID

<Tabs>
<TabItem label="Swift">
```swift
Pushwoosh.sharedInstance.setUserId("yourSideUserID")
Qonversion.shared().setUserProperty(.pushwooshUserId, value: "yourSideUserID")
```
</TabItem>

<TabItem label="Objective-C">
```objective-c
[[Pushwoosh sharedInstance] setUserId:@"yourSideUserID"];
[[Qonversion sharedInstance] setUserProperty:QONUserPropertyKeyPushwooshUserId, value: @"yourSideUserID";
```
</TabItem>

<TabItem label="Java">
```java
Pushwoosh.getInstance().setUserId("yourSideUserID");
Qonversion.getSharedInstance().setUserProperty(QUserPropertyKey.PushwooshUserId, "yourSideUserID");
```
</TabItem>

<TabItem label="Kotlin">
```kotlin
Pushwoosh.getInstance().setUserId("yourSideUserID")
Qonversion.shared.setUserProperty(QUserPropertyKey.PushwooshUserId, "yourSideUserID")
```
</TabItem>


</Tabs>

<Tabs> 
<TabItem label="Flutter">
```
Pushwoosh.getInstance.setUserId('yourSideUserID');
Qonversion.getSharedInstance().setUserProperty(QUserPropertyKey.pushwooshUserId, 'yourSideUserID');
```
</TabItem>

<TabItem label="React Native">
```
Pushwoosh.setUserId('yourSideUserID');
Qonversion.getSharedInstance().setUserProperty(UserPropertyKey.PUSH_WOOSH_USER_ID, 'yourSideUserID');
```
</TabItem>

<TabItem label="Unity">
```
Pushwoosh.Instance.SetUserId("yourSideUserID");
Qonversion.GetSharedInstance().SetUserProperty(UserPropertyKey.PushwooshUserId, "yourSideUserID");
```
</TabItem>

<TabItem label="Cordova">
```
pushwoosh.setUserId('yourSideUserID');
Qonversion.getSharedInstance().setUserProperty(Qonversion.UserPropertyKey.PUSH_WOOSH_USER_ID, 'yourSideUserID');
```
</TabItem>
</Tabs> 

### 配置 Pushwoosh 集成

1. 导航到您的 [Pushwoosh 控制面板](https://app.pushwoosh.com/projects)以获取以下信息：

* **Pushwoosh Application Code** (XXXXX-XXXXX)，位于您的应用名称下方。

<img src="/integrations-qonversion-integration-1.webp" alt="Pushwoosh Application Code"/>

* **Pushwoosh API Access Token**。要获取此令牌，请转到“设置”>“API 访问”并复制该代码。

<img src="/integrations-qonversion-integration-2.webp" alt="Pushwoosh API Access Token"/>

您可以在[本指南](/zh/developer/api-reference/api-access-token)中了解有关 API Access Token 的更多信息。

2. 在您的 [Qonversion 项目](https://dash.qonversion.io/site/login)的[集成部分](https://dash.qonversion.io/app/integration/)中，选择 **Pushwoosh**，并提供 Pushwoosh Application Key 和 API Access Token。点击**保存**。

<img src="/integrations-qonversion-integration-3.webp" alt="在 Qonversion 中配置 Pushwoosh 集成"/>

3. 您可以使用 Qonversion 提供的默认事件名称，也可以根据需要自定义它们。

完成这些步骤后，Qonversion 将开始向您的 Pushwoosh 账户发送应用内购买和订阅数据，使您能够利用这些信息向用户发送更有针对性和更有效的消息。