> ## 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 ユーザーに届くには、2 つの条件が必要です。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)を参照してください。

## FAQ

### `onesignal_customer_id` パートナーパラメータとは何ですか？

`onesignal_customer_id` は、OneSignal が Adjust のコールバックから読み取り、Adjust イベントを OneSignal ユーザーと関連付けるために使う正確なキーです。その値には、`OneSignal.login` に渡すのと同じ External ID を設定してください。他のキー名は認識されません。

### `Adjust.addGlobalPartnerParameter` はいつ呼び出すべきですか？

`OneSignal.login` を呼び出すたびに呼び出してください。アプリ起動時にユーザー ID が判明した時点、およびアカウント切り替え時です。これは OneSignal の [login のガイダンス](./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>
