# AppsFlyer 통합

<Aside type="caution" icon="setting" title="개발자 지원 필요">
 통합을 설정하려면 개발팀의 도움이 필요합니다. 이 가이드를 개발팀과 공유해주세요.
</Aside>

## 통합 개요

[AppsFlyer](https://www.appsflyer.com/)는 사용자 획득 및 참여를 분석하는 데 도움이 되는 모바일 어트리뷰션 및 마케팅 분석 플랫폼입니다. 앱 내 사용자 행동에 대한 포괄적인 데이터를 제공하고 사용자 획득 소스를 추적할 수 있습니다. AppsFlyer에서 얻은 정보를 사용하여 Pushwoosh에서 효과적인 마케팅 캠페인을 만들 수 있습니다.

통합이 구성되면 AppsFlyer는 다음 정보를 Pushwoosh로 전송합니다:

*   사용자의 인앱 행동을 이벤트 및 해당 속성으로 전송합니다;
*   사용자 획득 소스를 _Acquisition Source_ 태그 값으로 전송합니다.

### 사용 사례

이 데이터를 사용하여 사용자 세그먼트를 구축하고 Pushwoosh에서 정밀하게 타겟팅되고 개인화된 캠페인을 만들 수 있습니다.
아래는 AppsFlyer 데이터를 활용하여 Pushwoosh에서 효과적인 고객 여정을 만드는 두 가지 예시입니다.

**1. AppsFlyer에서 추적된 이벤트를 사용하여 Pushwoosh에서 고도로 타겟팅된 캠페인을 생성합니다.**

뉴스 앱이 있다고 가정해 보겠습니다. 사용자가 뉴스 채널을 구독할 때마다 발생하는 _SubscribedToNews_ 이벤트를 추적하도록 AppsFlyer를 구성했습니다. 이 이벤트에는 사용자가 구독하는 뉴스의 유형을 나타내는 카테고리 속성이 있습니다: _politics_, _business_, 또는 _sports_.

Pushwoosh는 이 이벤트에 대한 정보를 속성 값과 함께 수신합니다. 세 가지 가능한 값을 기반으로 세 개의 사용자 세그먼트를 만들 수 있습니다:

<img src="/integrations-appsflyer-integration-1.webp" alt="뉴스 카테고리 속성을 기반으로 한 사용자 세그먼트"/>

이제 특정 유형의 뉴스에 관심이 있는 사용자를 대상으로 캠페인을 만들 수 있습니다:

<img src="/integrations-appsflyer-integration-2.webp" alt="특정 뉴스 카테고리에 관심 있는 사용자를 위한 타겟 캠페인"/>

**2. AppsFlyer의 사용자 행동 데이터를 기반으로 메시지를 개인화합니다.**

이 예에서는 온라인 쇼핑 앱을 사용합니다. AppsFlyer가 사용자가 위시리스트에 항목을 추가할 때마다 발생하는 _AddToWishlist_ 이벤트를 추적한다고 가정해 보겠습니다. 이 이벤트에는 위시리스트에 추가된 항목의 이름을 나타내는 item 속성이 있습니다.

AppsFlyer는 _AddToWishlist_ 이벤트 데이터를 Pushwoosh로 전송하며, 여기서 사용자의 선택에 따라 메시지를 개인화할 수 있습니다. 예를 들어, 사용자가 위시리스트에 추가한 항목에 대한 할인을 제공하는 푸시 프리셋을 만들 수 있습니다. 항목 이름 대신 _item_ 속성을 사용하여 [동적 콘텐츠 플레이스홀더](/ko/developer/guides/personalization/dynamic-content/#personalizing-messages-sent-via-api-with-dynamic-content)를 추가합니다:

<img src="/integrations-appsflyer-integration-3.webp" alt="Pushwoosh 푸시 프리셋의 동적 콘텐츠 플레이스홀더"/>

사용자가 위시리스트에 항목을 추가하면 해당 항목에 대한 정보가 포함된 푸시를 받게 됩니다. 예를 들어, iPhone 14 Pro Max를 선택한 사용자는 다음과 같은 메시지를 보게 됩니다:

<img src="/integrations-appsflyer-integration-4.webp" alt="iPhone 14 Pro Max 상품 제안에 대한 푸시 알림 미리보기" width="375"/>

## 통합 설정하기

<Aside type="note">
통합 과정은 Android와 iOS 플랫폼 모두 동일합니다.
</Aside>

1. 아직 앱에 Pushwoosh SDK를 통합하지 않았다면 통합하세요. 자세한 지침은 [가이드를 읽어보세요](/ko/developer/pushwoosh-sdk/pushwoosh-sdk-overview).

<Aside type="caution">
정상적인 작동을 위해서는 Pushwoosh iOS SDK 버전 6.5.7 이상 및 Pushwoosh Android SDK 버전 6.6.16 이상이 필요합니다.
</Aside>

2. 올바른 데이터가 AppsFlyer로 전송되도록 하려면 이 코드 스니펫을 코드에 통합하세요. Pushwoosh SDK와 AppsFlyer SDK가 모두 초기화된 후에 실행되도록 하세요.

<Tabs>
<TabItem label="Java">
```
String pwhwid = Pushwoosh.getInstance().getHwid();
String pwuserid = Pushwoosh.getInstance().getUserId();
Map<String, Object> customData = new HashMap<String, Object>();
customData.put("pushwoosh_hwid", pwhwid);
customData.put("pushwoosh_user_id", pwuserid);
AppsFlyerLib.getInstance().setAdditionalData(customData);
```
</TabItem>

<TabItem label="Objective-C">
```
NSString *pwhwid = [[Pushwoosh sharedInstance] getHWID];
NSString *pwuserid = [[Pushwoosh sharedInstance] getUserId];
NSDictionary *customData = [[NSDictionary alloc] initWithObjectsAndKeys:pwuserid, @"pushwoosh_user_id", pwhwid, @"pushwoosh_hwid", nil];
[[AppsFlyerLib shared] setAdditionalData:customData];
```
</TabItem>
</Tabs>

<Aside type="danger">
사용자 지정 Pushwoosh UserID 값을 사용하여 사용자를 식별하고 타겟팅하는 경우, Pushwoosh SDK에서 사용자 지정 값으로 **setUserId()** 메서드를 호출한 후에 코드를 실행해야 합니다.

모바일 애플리케이션의 로직에 따라 Pushwoosh UserID가 변경될 때를 추적하고 업데이트된 값을 AppsFlyer에 즉시 전송하세요. 이는 Pushwoosh 데이터베이스의 사용자와 함께 전송되는 데이터의 올바른 매핑에 중요합니다.
</Aside>

3. AppsFlyer에서 Pushwoosh 통합을 구성합니다. 이를 위해 [AppsFlyer 계정](https://hq1.appsflyer.com/auth/login)에서 **Collaborate** > **Partner Marketplace**로 이동합니다. 파트너 목록에서 Pushwoosh를 찾아 선택합니다.

<img src="/integrations-appsflyer-integration-5.webp" alt="AppsFlyer에서 Pushwoosh 찾기"/>

4. **Set up integration**을 클릭합니다. 그러면 통합 설정 페이지로 이동합니다. 거기서 **Activate partner** 토글을 활성화합니다.

<img src="/integrations-appsflyer-integration-6.webp" alt="AppsFlyer에서 Activate partner 토글 활성화하기"/>

<Aside type="note">
iOS 앱의 경우, Advanced Privacy Mode가 기본적으로 활성화되어 있어 AppsFlyer 플랫폼을 통해 사용자 수준 어트리뷰션 데이터의 가용성을 제어할 수 있습니다. AppsFlyer는 이러한 유형의 데이터를 Pushwoosh로 보내지 않지만, Advanced Privacy 토글을 활성화 상태로 유지하면 데이터 전송에 방해가 될 수 있습니다.

Pushwoosh가 모든 데이터를 수신하도록 하려면 **App Settings**에서 Advanced Privacy Mode를 비활성화하는 것이 좋습니다. 이렇게 해도 사용자 데이터의 개인 정보가 침해되지 않습니다. Pushwoosh는 기밀성을 보호하기 위해 업계 표준 보안 프로토콜을 사용하여 데이터를 안전하고 책임감 있게 관리하는 데 전념하고 있습니다.
</Aside>

<img src="/integrations-appsflyer-integration-7.webp" alt="AppsFlyer에서 Advanced Privacy Mode 비활성화하기"/>

5. **General settings** 섹션에 Pushwoosh 자격 증명을 입력합니다:

*   **API Access Token**. 토큰을 얻으려면 Pushwoosh 계정에서 **Settings > API Access**로 이동하여 코드를 복사합니다. API Access Token에 대한 자세한 내용은 [이 가이드](/ko/developer/api-reference/api-access-token)에서 확인할 수 있습니다.
*   **Application Code** (XXXXX-XXXXX)는 Pushwoosh 계정의 애플리케이션 이름 아래에서 찾을 수 있습니다.

<img src="/integrations-appsflyer-integration-8.webp" alt="AppsFlyer 일반 설정에 Pushwoosh 자격 증명 추가하기"/>

6. **Default postback** 섹션에서 **All media sources, including organic**을 선택합니다.

<img src="/integrations-appsflyer-integration-9.webp" alt="Default postback 섹션 구성하기"/>

7. **In-app event settings** 섹션에 Pushwoosh **Application Code**와 **API Access Token**을 입력합니다.

<img src="/integrations-appsflyer-integration-10.webp" alt="Application Code와 API 토큰이 있는 인앱 이벤트 설정 섹션"/>

8. **In-app event postback** 토글을 활성화하고 Pushwoosh로 전송될 포스트백에 포함될 이벤트와 데이터를 구성합니다.

<img src="/integrations-appsflyer-integration-11.webp" alt="AppsFlyer에서 인앱 이벤트 포스트백 토글 구성"/>

드롭다운 메뉴에서 Pushwoosh로 보낼 하나 이상의 AppsFlyer 이벤트를 선택하고 필요한 매개변수를 완료합니다.

| 매개변수 | 설명 |
| --- | --- |
| **the mapped to partner event** | 이 필드는 필수이지만, 이벤트 이름 지정 방식에는 영향을 미치지 않으므로 입력 내용에 대해 걱정할 필요가 없습니다. Pushwoosh는 AppsFlyer에 표시되는 것과 동일한 이름으로 이벤트를 계속 수신합니다. |
| **for users from** | 이 필드에서는 포스트백이 이 파트너에게 어트리뷰션된 사용자에게만 전송되는지, 아니면 오가닉을 포함한 모든 미디어 소스에 대해 전송되는지를 선택합니다. |
| **including** | <p>Pushwoosh와 이벤트 데이터를 공유하는 방법을 선택합니다:</p><ul><li><strong>No values & no revenue:</strong> 매개변수(값 또는 수익) 없이 이벤트 자체만 전송합니다.</li><li><strong>Values & no revenue:</strong> 수익 값을 제외한 모든 매개변수를 전송합니다.</li><li><strong>Values & revenue:</strong> 수익 값(이벤트에 존재하는 경우)을 포함한 모든 이벤트 매개변수를 전송합니다.<br/>Pushwoosh로 전송되는 추가 속성이 있는 이벤트를 수신하려면 Values and Revenue를 선택합니다.</li></ul> |

9. 통합이 구성되면 **Save**를 클릭합니다.

<Aside type="note">
캠페인을 시작하기 전에 통합을 테스트해야 합니다. 설정 중에 오류가 자주 발생하므로 빠른 테스트를 통해 누락되거나 잘못된 데이터가 있는 캠페인에 리소스를 낭비하는 것을 방지할 수 있습니다.
</Aside>

## AppsFlyer ESP 2.0을 사용한 이메일 클릭 추적

Pushwoosh를 통해 이메일을 보낼 때 이메일 클릭 추적을 사용하고 Universal Links / App Links를 보존하려면 [AppsFlyer ESP 2.0 이메일 통합](/ko/product/integrations/appsflyer-esp2-email-integration)을 설정할 수 있습니다.