# 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)을 만드세요. 사용자가 푸시 알림에 반응했지만 구매를 완료하지 않은 경우, 여정은 추가 혜택이 포함된 인앱 메시지를 보내 사용자가 돌아와 제안을 사용하도록 유도할 수 있습니다.

### 체험판 전환

Qonversion을 사용하여 체험 기간이 곧 끝나는 사용자를 추적하고, 유료 구독자로 전환하도록 유도하는 고객 여정(customer journeys)을 만드세요.

## 연동 설정하기

### SDK 설정

1. Pushwoosh SDK를 설치합니다. [IOS](/ko/developer/pushwoosh-sdk/ios-sdk), [Android](/ko/developer/pushwoosh-sdk/android-sdk), [크로스플랫폼](/ko/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 하드웨어 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 애플리케이션 코드**(XXXXX-XXXXX)는 애플리케이션 이름 아래에 있습니다.

<img src="/integrations-qonversion-integration-1.webp" alt="Pushwoosh 애플리케이션 코드"/>

* **Pushwoosh API 액세스 토큰**. 토큰을 얻으려면 설정 > API 액세스로 이동하여 코드를 복사하세요.

<img src="/integrations-qonversion-integration-2.webp" alt="Pushwoosh API 액세스 토큰"/>

API 액세스 토큰에 대한 자세한 내용은 [이 가이드](/ko/developer/api-reference/api-access-token)에서 확인할 수 있습니다.

2. [Qonversion 프로젝트](https://dash.qonversion.io/site/login)의 [연동 섹션](https://dash.qonversion.io/app/integration/)에서 **Pushwoosh**를 선택하고 Pushwoosh 애플리케이션 키와 API 액세스 토큰을 제공하세요. **저장**을 클릭합니다.

<img src="/integrations-qonversion-integration-3.webp" alt="Qonversion에서 Pushwoosh 연동 구성하기"/>

3. Qonversion에서 제공하는 기본 이벤트 이름을 사용하거나 필요에 맞게 사용자 정의할 수 있습니다.

이 단계를 완료하면 Qonversion이 인앱 구매 및 구독 데이터를 Pushwoosh 계정으로 보내기 시작하므로, 이 정보를 활용하여 사용자에게 더 타겟팅되고 효과적인 메시지를 보낼 수 있습니다.