> ## 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.

# Adjust

> OneSignal External ID를 Adjust 파트너 파라미터로 전달하여 Adjust의 어트리뷰션 및 이벤트 콜백을 OneSignal 사용자와 연결합니다.

Adjust는 마케팅 채널 전반에서 설치, 세션 및 인앱 이벤트를 어트리뷰션하는 모바일 측정 파트너(MMP)입니다. 이 통합은 OneSignal의 [External ID](./users#external-id)를 `onesignal_customer_id` 파트너 파라미터로 Adjust에 전달하여, Adjust가 OneSignal로 전달하는 이벤트를 올바른 사용자와 연결할 수 있도록 합니다.

## 요구 사항

* OneSignal 모바일 SDK 버전 5.5.0 이상.
* OneSignal 사용자에 설정된 [External ID](./users#external-id). Adjust와 OneSignal 간 데이터 동기화는 이 ID를 키로 사용하므로, 익명 사용자에 대해서는 이벤트를 연결할 수 없습니다.

## 설정

Adjust 콜백이 올바른 OneSignal 사용자에게 도달하려면 두 가지 조건이 필요합니다. Adjust가 이벤트를 OneSignal로 전달하도록 구성되어 있어야 하고, 앱은 매 세션마다 External ID를 파트너 파라미터로 첨부해야 합니다.

### 1. Adjust 대시보드에서 데이터 공유 활성화

Adjust 대시보드에서 OneSignal 통합을 활성화하고 전달할 이벤트를 선택합니다. Adjust는 기본적으로 `install` 및 `session` 활동을 보내며, 추가로 커스텀 이벤트와 인앱 매출을 매핑할 수 있습니다. 정확한 단계는 Adjust의 [Set up OneSignal](https://help.adjust.com/en/integrated-partners/onesignal) 가이드를 참고하세요.

<Note>
  이 대시보드 단계를 완료하지 않으면 Adjust는 OneSignal로 콜백을 보내지 않으며, 다음 단계의 SDK 코드가 `onesignal_customer_id` 파라미터를 첨부할 콜백 자체가 존재하지 않게 됩니다.
</Note>

### 2. External ID를 파트너 파라미터로 전달

사용자가 앱에 로그인하면 OneSignal의 [`login` 메서드](./mobile-sdk-reference#login-external-id)를 호출하여 External ID를 설정한 다음, Adjust의 `addGlobalPartnerParameter` 메서드를 키 `onesignal_customer_id`와 동일한 External ID를 값으로 하여 호출합니다. Adjust는 이후 모든 콜백에서 이 키–값 쌍을 전달하고, OneSignal은 `onesignal_customer_id`를 사용하여 콜백을 올바른 사용자와 매칭합니다.

<Warning>
  iOS를 제외한 모든 Adjust SDK는 `(key, value)` 인수 순서를 사용합니다. iOS Swift 및 Objective-C는 `(value, forKey: key)`를 사용합니다. External ID를 실수로 키로 전달하면 통합은 조용히 실패합니다. Adjust는 사용자 ID 문자열이 이름인 파라미터를 전달하게 되고, OneSignal은 `onesignal_customer_id`를 볼 수 없습니다.
</Warning>

<CodeGroup>
  ```kotlin Kotlin theme={null}
  val externalId = "your_user_id"
  OneSignal.login(externalId)
  Adjust.addGlobalPartnerParameter("onesignal_customer_id", externalId)
  ```

  ```java Java theme={null}
  String externalId = "your_user_id";
  OneSignal.login(externalId);
  Adjust.addGlobalPartnerParameter("onesignal_customer_id", externalId);
  ```

  ```swift Swift theme={null}
  let externalId = "your_user_id"
  OneSignal.login(externalId)
  Adjust.addGlobalPartnerParameter(externalId, forKey: "onesignal_customer_id")
  ```

  ```objc Objective-C theme={null}
  NSString *externalId = @"your_user_id";
  [OneSignal login:externalId];
  [Adjust addGlobalPartnerParameter:externalId forKey:@"onesignal_customer_id"];
  ```

  ```csharp C# theme={null}
  string externalId = "your_user_id";
  OneSignal.Login(externalId);
  Adjust.AddGlobalPartnerParameter("onesignal_customer_id", externalId);
  ```

  ```javascript React Native theme={null}
  const externalId = "your_user_id";
  OneSignal.login(externalId);
  Adjust.addGlobalPartnerParameter("onesignal_customer_id", externalId);
  ```

  ```dart Flutter theme={null}
  final externalId = "your_user_id";
  OneSignal.login(externalId);
  Adjust.addGlobalPartnerParameter("onesignal_customer_id", externalId);
  ```

  ```javascript Cordova/Ionic theme={null}
  const externalId = "your_user_id";

  // Ionic
  OneSignal.login(externalId);

  // Cordova
  window.plugins.OneSignal.login(externalId);

  Adjust.addGlobalPartnerParameter("onesignal_customer_id", externalId);
  ```
</CodeGroup>

기반이 되는 Adjust SDK 레퍼런스는 Adjust의 Global Partner Parameters 문서를 참고하세요: [Android](https://dev.adjust.com/en/sdk/android/features/session-parameters#add-global-partner-parameters) 및 [iOS](https://dev.adjust.com/en/sdk/ios/features/session-parameters/#global-partner-parameters).

## Deep linking

Adjust는 푸시 탭을 앱의 특정 화면으로 라우팅하기 위해 [iOS Universal Links와 Android App Links](https://www.adjust.com/glossary/deep-linking/)를 사용합니다. Adjust 딥링크를 열어야 하는 OneSignal 알림을 보낼 때는, Adjust의 [Push Notifications](https://help.adjust.com/en/article/push-notifications) 가이드에 설명된 대로 알림의 Launch URL을 Adjust 딥링크로 설정하세요. 플랫폼별 Launch URL 처리 방식은 OneSignal의 [Deep linking 가이드](./deep-linking)를 참고하세요.

## FAQ

### `onesignal_customer_id` 파트너 파라미터는 무엇인가요?

`onesignal_customer_id`는 OneSignal이 Adjust 콜백에서 읽어 Adjust 이벤트를 OneSignal 사용자와 연결하는 데 사용하는 정확한 키입니다. 값은 `OneSignal.login`에 전달하는 것과 동일한 External ID로 설정하세요. 다른 어떤 키 이름도 인식되지 않습니다.

### `Adjust.addGlobalPartnerParameter`는 언제 호출해야 하나요?

`OneSignal.login`을 호출할 때마다 호출하세요. 앱 시작 시 사용자 ID를 알게 되는 시점, 그리고 계정 전환 시입니다. 이는 OneSignal의 [로그인 가이드](./mobile-sdk-reference#login-external-id)를 반영하며, Adjust 파트너 파라미터가 현재의 OneSignal 사용자와 동기화된 상태를 유지하게 합니다.

### 사용자가 로그아웃하거나 계정을 전환하면 어떻게 되나요?

Adjust는 변경하거나 제거할 때까지 글로벌 파트너 파라미터를 메모리에 유지합니다. 로그아웃 시 `Adjust.removeGlobalPartnerParameter("onesignal_customer_id")`를 호출하거나 다음 로그인에서 값을 덮어쓰세요. 그렇지 않으면 Adjust는 이후 이벤트를 이전 사용자의 External ID에 계속 어트리뷰션합니다.

### Adjust는 OneSignal에 어떤 데이터를 보내나요?

기본적으로 Adjust는 `install` 및 `session` 활동과 함께 Adjust 대시보드에서 매핑한 이벤트를 전달합니다. 전달되는 필드의 전체 목록은 Adjust의 [OneSignal 통합 문서](https://help.adjust.com/en/integrated-partners/onesignal)에서 확인할 수 있습니다.

***

## 관련 페이지

<Columns cols={2}>
  <Card title="External ID" icon="id-card" href="./users#external-id">
    파트너 통합이 데이터를 연결할 수 있도록 OneSignal 사용자에 안정적인 식별자를 설정합니다.
  </Card>

  <Card title="Mobile SDK: login" icon="mobile" href="./mobile-sdk-reference#login-external-id">
    호출 시점과 재시도 동작을 포함한 `OneSignal.login` 레퍼런스.
  </Card>

  <Card title="Deep linking" icon="link" href="./deep-linking">
    푸시, 인앱, 이메일, SMS용 Universal Links, App Links 및 URI 스킴을 구성합니다.
  </Card>

  <Card title="Keys & IDs" icon="key" href="./keys-and-ids">
    Adjust 대시보드 설정에 사용할 OneSignal App ID와 REST API Key를 확인합니다.
  </Card>
</Columns>
