> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Mixpanel

> 행동 기반 Cohort를 동기화하고, 메시지 이벤트를 추적하며, 푸시, 이메일, SMS, In-App 채널 전반에서 사용자를 타겟팅하기 위해 OneSignal과 Mixpanel을 통합하세요.

OneSignal을 [Mixpanel](https://mixpanel.com)과 통합하여 푸시, In-App, 이메일, SMS 전반에서 실시간 행동 기반 타겟팅을 활성화하세요. 이 앱 수준 통합은 두 가지 데이터 흐름을 지원합니다:

* **메시지 이벤트 → Mixpanel**: 모든 채널의 전달, 클릭, 실패 등을 추적합니다.
* **Cohorts → OneSignal**: 행동 기반 Mixpanel Cohort를 OneSignal의 타겟팅 필터로 동기화합니다.

<Warning>
  Mixpanel은 현재 [커스텀 이벤트](./custom-events)를 OneSignal로 전송하지 않습니다. Mixpanel 이벤트를 OneSignal로 라우팅해야 하는 경우 [Vendo](https://www.vendodata.com/use-cases/integrate-mixpanel-with-onesignal)와 같은 서드파티 커넥터를 사용하세요.
</Warning>

***

## 요구 사항

* [Mixpanel 계정](https://mixpanel.com/)
* [OneSignal 유료 플랜](https://onesignal.com/pricing)
* External ID가 설정된 OneSignal 앱

<Info>
  이 통합은 사용자를 생성하지 않습니다. 식별자를 매핑하여 Mixpanel의 사용자를 OneSignal의 기존 사용자에 매핑합니다.
</Info>

***

## 설정

### OneSignal에 Mixpanel 추가 (아웃바운드)

OneSignal 메시지 이벤트를 Mixpanel 프로젝트로 전송합니다.

1. OneSignal에서 **Data > Integrations > Mixpanel**로 이동하여 **Activate**를 클릭하세요.

<Frame caption="OneSignal에서 Mixpanel 통합 활성화">
  <img src="https://mintcdn.com/onesignal/Xl2NHJvxakrK4JbL/images/docs/f5dfbab5a6c41ae816e34401b7fa5a8624e15d43f90ad723c4c7b2166dbd66de-Screenshot_2025-03-18_at_8.15.13_AM.png?fit=max&auto=format&n=Xl2NHJvxakrK4JbL&q=85&s=4c5a9ba2e4e2a2c8b2e2b2b2376253f1" alt="OneSignal Integrations page with Mixpanel selected" width="1150" height="458" data-path="images/docs/f5dfbab5a6c41ae816e34401b7fa5a8624e15d43f90ad723c4c7b2166dbd66de-Screenshot_2025-03-18_at_8.15.13_AM.png" />
</Frame>

#### Mixpanel에서

1. [Project Token](https://docs.mixpanel.com/docs/orgs-and-projects/managing-projects#find-your-project-tokens)을 찾아 OneSignal에 복사하여 붙여넣으세요.
2. [Data Residency](https://docs.mixpanel.com/docs/orgs-and-projects/managing-projects#project-details)를 확인하세요. Mixpanel의 EU 서버를 사용하는 경우 **Send events exclusively to Mixpanel's EU Residency Server** 상자를 선택하세요.

#### 메시지 이벤트 선택

Mixpanel로 보내려는 OneSignal 메시지 이벤트를 선택하세요. 완료되면 **Activate**를 클릭하세요.

<Frame caption="OneSignal의 Mixpanel 설정">
  <img src="https://mintcdn.com/onesignal/9_Q1FZLh6C0BFLq-/images/docs/bc980ae-Screenshot_2024-06-04_at_10.18.59_AM.png?fit=max&auto=format&n=9_Q1FZLh6C0BFLq-&q=85&s=b98514269a60a2144c1dc0334969e7d3" alt="OneSignal Mixpanel integration settings showing event selection" width="2216" height="1412" data-path="images/docs/bc980ae-Screenshot_2024-06-04_at_10.18.59_AM.png" />
</Frame>

### Mixpanel에 OneSignal 추가 (인바운드)

Mixpanel **Integrations**에서 OneSignal을 추가하세요.

<Frame caption="Mixpanel에서 OneSignal 통합 추가">
  <img src="https://mintcdn.com/onesignal/KSCNwSpBCNSQ8xdF/images/docs/mixpanel-integration.png?fit=max&auto=format&n=KSCNwSpBCNSQ8xdF&q=85&s=b4e6bc1f405b2087b455b2942ce5aecd" alt="Mixpanel integrations catalog with OneSignal selected" width="2986" height="1300" data-path="images/docs/mixpanel-integration.png" />
</Frame>

**Connector Name**을 `OneSignal - APP_NAME`과 같이 식별 가능한 이름으로 설정하세요. 여기서 `APP_NAME`은 OneSignal의 앱 이름입니다.

OneSignal \*\*Settings > [Keys & IDs](./keys-and-ids)\*\*에서 다음 데이터가 필요합니다:

1. App ID
2. API Key

### User ID 매핑

<Warning>
  이 단계는 Cohort 동기화 및 이벤트 추적이 제대로 작동하는 데 필수적입니다.
</Warning>

OneSignal의 \*\*[External ID](./users)\*\*는 선택한 Mixpanel User ID Property(예: `user_id`)와 일치해야 합니다. 이 속성이 두 시스템 모두에 설정되어 있는지 확인하세요 — Cohort 동기화 및 이벤트 추적은 정확한 일치에 의존합니다.

<Frame caption="OneSignal 속성을 설정하는 Mixpanel 대시보드">
  <img src="https://mintcdn.com/onesignal/56ctKxZSV4m5VEkn/images/docs/b5e818708efcc73ea8eb0cccb6542c205069b395978b8fa796af28d816b33356-Screenshot_2025-03-18_at_11.22.54_AM.png?fit=max&auto=format&n=56ctKxZSV4m5VEkn&q=85&s=c161191d039f187a20df7201d9ca71db" alt="Mixpanel OneSignal connector settings showing User ID property selection" width="864" height="900" data-path="images/docs/b5e818708efcc73ea8eb0cccb6542c205069b395978b8fa796af28d816b33356-Screenshot_2025-03-18_at_11.22.54_AM.png" />
</Frame>

선택한 **User ID Property**가 Mixpanel 사용자 프로필 속성에서 사용 가능한지 확인하세요.

<Frame caption="Mixpanel > Users > User Profile Properties">
  <img src="https://mintcdn.com/onesignal/YOTSrtBSoqdrJ37A/images/docs/4416681-small-Screenshot_2023-05-15_at_9.54.14_AM.png?fit=max&auto=format&n=YOTSrtBSoqdrJ37A&q=85&s=e89ad019a61077ae376fc92e1a1eb87a" alt="Mixpanel user profile properties list" width="521" height="1024" data-path="images/docs/4416681-small-Screenshot_2023-05-15_at_9.54.14_AM.png" />
</Frame>

사용자 프로필 속성에 대한 Mixpanel의 동일한 값은 OneSignal의 External ID와 일치해야 합니다.

<Frame caption="OneSignal > Audience > Users > External ID">
  <img src="https://mintcdn.com/onesignal/Z6xkXGfmy814If53/images/docs/e6853b59781b29ccbd264f97925830986605ec5514d02b5435c27ec896804a89-Screenshot_2025-03-18_at_10.22.25_AM.png?fit=max&auto=format&n=Z6xkXGfmy814If53&q=85&s=9a0b4237233c0492901853d72a6b1b63" alt="OneSignal user profile showing External ID" width="2764" height="686" data-path="images/docs/e6853b59781b29ccbd264f97925830986605ec5514d02b5435c27ec896804a89-Screenshot_2025-03-18_at_10.22.25_AM.png" />
</Frame>

<Warning>
  Mixpanel `$distinct_id`를 기반으로 사용자를 OneSignal에 일치시키는 경우 상위 값만 일치합니다.

  아래 예제에서는 `890ea9b1-9024-4fb9-a92f-152ba67dd21a`만 작동합니다. `109768518080488203109` 또는 `$device:1880c06821f1b3-052354675cde95-1d525634-1fa400-1880c06821f1b3`와는 일치할 수 없습니다.
</Warning>

<Frame caption="User ID Property 매핑에 사용되는 경우 Distinct ID 설정 시 주의하세요">
  <img src="https://mintcdn.com/onesignal/Xl2NHJvxakrK4JbL/images/docs/e7b80eb-small-Screenshot_2023-05-15_at_10.07.10_AM.png?fit=max&auto=format&n=Xl2NHJvxakrK4JbL&q=85&s=ef1999c6f01a48063d98e7e2ea330052" alt="Mixpanel Distinct ID example showing multiple values" width="464" height="314" data-path="images/docs/e7b80eb-small-Screenshot_2023-05-15_at_10.07.10_AM.png" />
</Frame>

<Check>
  완료되면 **Continue**를 클릭하세요. 이제 Mixpanel에서 OneSignal로 Cohort를 내보내고 OneSignal에서 Mixpanel로 메시지 이벤트를 수집할 수 있습니다.
</Check>

***

## Mixpanel Cohort를 OneSignal로 내보내기

위에서 설정한 일치하는 External ID를 사용하여 Mixpanel Cohort를 OneSignal로 동기화하세요. 내보내기는 **사용자를 생성하지 않습니다** — 각 사용자는 이미 OneSignal에 존재해야 합니다.

1. Mixpanel에서 Cohort를 만드세요.
2. **Options > Export to... > *OneSignal Connection 이름***을 클릭하세요.

<Frame caption="Mixpanel Cohort를 OneSignal로 내보내는 방법">
  <img src="https://mintcdn.com/onesignal/tNi1OgLc_p9hiq7_/images/docs/187698db55979af5f5c94d672ada1e0c8d7329d600a650e3115b77077ef99237-Screenshot_2025-03-18_at_12.04.16_PM.png?fit=max&auto=format&n=tNi1OgLc_p9hiq7_&q=85&s=fce16e4cde30d69f3b24a947cf71c937" alt="Mixpanel cohort export menu with OneSignal destination" width="2432" height="1008" data-path="images/docs/187698db55979af5f5c94d672ada1e0c8d7329d600a650e3115b77077ef99237-Screenshot_2025-03-18_at_12.04.16_PM.png" />
</Frame>

3. 동기화 빈도를 선택하고 **Begin Sync**를 누르세요.

<Frame caption="Mixpanel 빈도 옵션">
  <img src="https://mintcdn.com/onesignal/9_Q1FZLh6C0BFLq-/images/docs/c6b36cedac01d722acaa4240225ea6d10519458682f4c2844d681b8ee34b236e-Screenshot_2025-03-18_at_12.12.06_PM.png?fit=max&auto=format&n=9_Q1FZLh6C0BFLq-&q=85&s=5bb3a035bfb3bea7d78553e86ccb943b" alt="Mixpanel cohort sync frequency selection dialog" width="860" height="896" data-path="images/docs/c6b36cedac01d722acaa4240225ea6d10519458682f4c2844d681b8ee34b236e-Screenshot_2025-03-18_at_12.12.06_PM.png" />
</Frame>

### OneSignal Segment 생성

동기화된 Cohort는 **Mixpanel Segment 필터**로 나타납니다. 다음 조건이 충족되면 OneSignal이 Cohort에 대한 Segment를 자동으로 생성합니다:

* Mixpanel Cohort의 사용자가 일치하는 External ID를 가진 OneSignal에도 존재합니다.
* OneSignal에서 Segment 제한을 초과하지 않아야 합니다.

<Note>
  Mixpanel은 OneSignal에서 Segment를 생성하려면 최소한 한 명의 일치하는 사용자가 필요합니다. Segment가 생성되면 나중에 Cohort에 사용자가 없더라도 OneSignal에 남아 있습니다. 이 경우 사용자가 다시 추가될 때까지 Segment는 비어 있는 것으로 표시됩니다.
</Note>

<Frame caption="Mixpanel Cohort에서 Segment 만들기">
  <img src="https://mintcdn.com/onesignal/jBdBk5XvQR5eKOks/images/docs/7b01785ad5a5f85377bdb20e664e5d5c38280cff56373d70726621569668907d-Screenshot_2025-03-18_at_12.38.47_PM.png?fit=max&auto=format&n=jBdBk5XvQR5eKOks&q=85&s=3ba94cf6588a4158a86e77c4a23c3e34" alt="OneSignal Segment builder using Mixpanel Cohort filter" width="1444" height="818" data-path="images/docs/7b01785ad5a5f85377bdb20e664e5d5c38280cff56373d70726621569668907d-Screenshot_2025-03-18_at_12.38.47_PM.png" />
</Frame>

***

## Mixpanel에서 메시지 이벤트 추적

OneSignal은 다음 메시지 이벤트를 Mixpanel로 실시간으로 전송합니다. **Data > Integrations > Mixpanel**에서 전송할 이벤트를 선택하세요.

테스트하려면 OneSignal에서 자신에게 메시지를 보낸 다음 Mixpanel의 사용자 프로필 페이지로 이동하세요. Activity Feed 내에서 이벤트가 채워지는 것을 볼 수 있습니다.

<Frame caption="OneSignal 메시지 이벤트가 있는 Mixpanel Activity Feed">
  <img src="https://mintcdn.com/onesignal/9_Q1FZLh6C0BFLq-/images/docs/c344970fd85bda82f9b6bedf1700a9cbb91afd63afc9fe1e866c42e1b380770e-Screenshot_2025-03-18_at_1.59.23_PM.png?fit=max&auto=format&n=9_Q1FZLh6C0BFLq-&q=85&s=9ca542f553f6c08a15ca99d52d68be2b" alt="Mixpanel user activity feed showing OneSignal message events" width="2420" height="1654" data-path="images/docs/c344970fd85bda82f9b6bedf1700a9cbb91afd63afc9fe1e866c42e1b380770e-Screenshot_2025-03-18_at_1.59.23_PM.png" />
</Frame>

### 메시지 이벤트

| Message Event Kind (OneSignal) | Message Event Name (Mixpanel) | Event Description                                                                               |
| ------------------------------ | ----------------------------- | ----------------------------------------------------------------------------------------------- |
| Push Sent                      | Message Sent                  | Push notification successfully sent                                                             |
| Push Received                  | Message Received              | Push notification successfully received                                                         |
| Push Clicked                   | App Opened from Push          | Push notification touched on device                                                             |
| Push Failed                    | Push Failed                   | Push failed to be sent. Check the failed message report in OneSignal.                           |
| Push Unsubscribed              | Push Unsubscribed             | The [Subscription](./subscriptions) unsubscribed from push.                                     |
|                                |                               |                                                                                                 |
| In-App Impression              | Message Sent                  | In-App Message successfully displayed on device                                                 |
| In-App Clicked                 | Message Opened                | In-App Message clicked on device                                                                |
| In-App Page Displayed          | In-App Page Displayed         | In-App Message page is displayed                                                                |
|                                |                               |                                                                                                 |
| Email Sent                     | Message Sent                  | Email successfully sent                                                                         |
| Email Received                 | Message Received              | Email received by recipient                                                                     |
| Email Opened                   | Message Opened                | Email opened by recipient                                                                       |
| Email Link Clicked             | App Opened from Push          | Email link clicked on                                                                           |
| Email Unsubscribed             | Email Unsubscribed            | Email unsubscribed by recipient                                                                 |
| Email Reported As Spam         | Email Reported as Spam        | Email reported as spam by recipient                                                             |
| Email Bounced                  | Email Bounced                 | Email returned to sender due to permanent error                                                 |
| Email Failed                   | Email Failed                  | Could not deliver the email to the recipient's inbox                                            |
| Email Suppressed               | Email Suppressed              | The email address is on your suppression list. Either it bounced or marked your emails as spam. |
|                                |                               |                                                                                                 |
| SMS Sent                       | Message Sent                  | SMS sent to recipient                                                                           |
| SMS Failed                     | SMS Failed                    | SMS failed to send                                                                              |
| SMS Delivered                  | Message Received              | SMS successfully delivered                                                                      |
| SMS Undelivered                | SMS Undelivered               | The SMS could not be sent.                                                                      |

### 이벤트 속성

OneSignal에서 Mixpanel로 보낸 모든 이벤트에는 다음 속성이 포함됩니다:

| PROPERTY NAME        | DESCRIPTION                     |
| -------------------- | ------------------------------- |
| **Distinct ID**      | 메시지와 연결된 external\_id           |
| **Message ID**       | 개별 메시지의 식별자                     |
| **Message Name**     | 메시지 이름                          |
| **Message Title**    | 메시지 제목                          |
| **Message Contents** | 메시지 내용                          |
| **message\_type**    | 보낸 메시지 유형, 푸시, In-App, 이메일, SMS |
| **template\_id**     | 사용된 메시지 템플릿(API 및 Journey 메시지)  |
| **subscription\_id** | OneSignal 설정 장치/이메일/SMS 식별자     |
| **device\_type**     | 메시지를 받은 장치 유형                   |
| **language**         | 장치의 2자 언어 코드                    |
| **source**           | `onesignal` (모든 이벤트의 소스로 표시됨)   |

<Warning>
  Mixpanel과 OneSignal 간에 전달 수가 다를 수 있습니다. 자세한 내용은 [전달 데이터가 일치하지 않는 이유는 무엇인가요?](#why-doesnt-delivery-data-match)를 참조하세요.
</Warning>

***

## 커스텀 이벤트 (서드파티)

Mixpanel 통합은 Mixpanel에서 OneSignal로 커스텀 이벤트 전송을 기본적으로 지원하지 않습니다. [Amplitude](./amplitude)와 달리 Mixpanel에서 OneSignal로의 내장 이벤트 대상이 없습니다.

Mixpanel 행동 이벤트를 OneSignal에 [커스텀 이벤트](./custom-events)로 라우팅하여 Journey 또는 Segment를 트리거해야 하는 경우 [Vendo](https://www.vendodata.com/use-cases/integrate-mixpanel-with-onesignal)와 같은 서드파티 커넥터를 사용할 수 있습니다. Vendo는 선택한 Mixpanel 이벤트를 캠페인 트리거를 위해 커스텀 이벤트로 OneSignal에 스트리밍합니다.

***

## FAQ

### Cohort 및 Segment 수가 일치하지 않는 이유는 무엇인가요?

1. **누락되거나 일치하지 않는 External ID**
   일치하는 OneSignal External ID 및 Mixpanel User ID가 있는 사용자만 포함됩니다. 이 통합은 사용자 또는 Subscription을 생성하지 않습니다.

2. **구독 취소한 사용자**
   OneSignal Segment는 구독된 [Subscription](./subscriptions)의 수만 표시합니다. 구독 취소한 Subscription은 Journey 또는 In-App 메시지에서 사용할 수 있습니다.

예를 들어 Mixpanel Cohort에 10명의 사용자가 있지만 OneSignal Segment에 8개의 Subscription이 표시되는 경우 누락된 2명의 사용자는 다음과 같을 수 있습니다:

* OneSignal에 존재하지 않거나 잘못된 External ID를 가지고 있습니다.
* 구독 취소한 Subscription을 가지고 있습니다.

확인하려면 OneSignal의 **Audience > Users** 탭에서 사용자가 존재하고 활성 Subscription이 있는지 확인하세요.

### 구독 취소한 사용자가 Mixpanel에서 동기화되나요?

예, 하지만 현재 OneSignal Segment 수에서 제외됩니다. 다른 [Subscription](./subscriptions)이 있거나 Subscription 유형이 지원하는 경우 Journey 또는 In-App 메시지를 통해 여전히 메시지를 보낼 수 있습니다.

### 전달 데이터가 일치하지 않는 이유는 무엇인가요?

단일 사용자는 여러 [Subscription](./subscriptions)(푸시 장치, 이메일 주소, 전화번호)을 가질 수 있습니다. 각 Subscription은 자체 전달 이벤트를 생성합니다. 예:

* 1명의 사용자 = 2 Android + 1 iOS + 2 Web = 5개의 푸시 Subscription
* 1개의 푸시 메시지 = 최대 5개의 sent/received/clicked 이벤트

이벤트 속성의 `subscription_id`를 사용하여 정확한 소스를 추적하세요.

누락된 이벤트 문제를 해결하려면:

* 사용자가 식별될 때마다 `OneSignal.login`이 호출되어 External ID가 설정되는지 확인하세요.
* `OneSignal.logout`이 External ID를 제거하지 않는지 확인하세요.
* External ID를 변경할 수 있는 API 요청 또는 CSV 업로드를 확인하세요.

### Mixpanel에서 OneSignal로 커스텀 이벤트를 보낼 수 있나요?

기본적으로는 불가능합니다. Mixpanel 통합은 메시지 이벤트(OneSignal → Mixpanel) 및 코호트 동기화(Mixpanel → OneSignal)를 지원하지만 내장된 커스텀 이벤트 대상을 포함하지 않습니다. Mixpanel 이벤트를 OneSignal에 [커스텀 이벤트](./custom-events)로 라우팅하려면 [Vendo](https://www.vendodata.com/use-cases/integrate-mixpanel-with-onesignal)와 같은 서드파티 커넥터를 사용하세요.

### 사용자/Subscription 이벤트를 어떻게 보낼 수 있나요?

사용자 및 Subscription 수준 이벤트(예: 권한 부여됨, 사용자 로그인/로그아웃)는 자동으로 전송되지 않습니다.

OneSignal SDK에는 이러한 이벤트를 추적하여 Mixpanel로 보낼 수 있는 이벤트 리스너가 있습니다:

* User State Observer: [Mobile SDK](./mobile-sdk-reference#addobserver-user-state), [Web SDK](./web-sdk-reference#addeventlistener-user-state)
* Permission Observer: [Mobile SDK](./mobile-sdk-reference#addpermissionobserver-push), [Web SDK](./web-sdk-reference#permissionchange)

***

## 관련 페이지

<Columns cols={2}>
  <Card title="분석 개요" icon="chart-line" href="./analytics-overview">
    OneSignal 분석, 배송 지표 및 이벤트 추적 개요.
  </Card>

  <Card title="커스텀 이벤트" icon="bolt" href="./custom-events">
    Journey를 트리거하거나 분석을 강화하기 위해 사용자 액션을 추적합니다.
  </Card>
</Columns>

***

<Info>
  Need help?

  Chat with our Support team or email `support@onesignal.com`

  Please include:

  * Details of the issue you're experiencing and steps to reproduce if available
  * Your OneSignal App ID
  * The External ID or Subscription ID if applicable
  * The URL to the message you tested in the OneSignal Dashboard if applicable
  * Any relevant [logs or error messages](/docs/en/capturing-a-debug-log)

  We're happy to help!
</Info>
