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

# セッションの初期化

> 他のレコメンデーションエンドポイントを呼び出す前に、Product Recommendation API のセッションを初期化してデバイス ID とセッション ID を取得します。

Product Recommendation API の他の API メソッドを使用する前に、`init` API を呼び出します。初期化プロセスは現在のユーザー識別子を受け入れ、プロジェクト設定とユーザー設定をリクエストします。

## HTTP リクエスト

```html theme={null}
GET https://api.products.kameleoon.com/init
```

## いつ初期化するか

プラットフォームによって、`init` を実行する必要があるタイミングの要件が異なります。

* **cURL**: ページがレンダリングされるたびに初期化します。
* **Web**: ページが開かれるたびに初期化します(シングルページアプリケーションを含む)。
* **iOS** または **Android**: アプリケーションが起動するたびに初期化します。

新しいデバイスでの初回起動時には、デバイス識別子がありません。デバイス ID を生成するには、デバイス ID を指定せずに `init` メソッドを呼び出します。Kameleoon Web Experimentation を使用するバックエンドレコメンデーションロジックの場合は、この API を呼び出し、ID を `sid` 用の `KameleoonProducts_session_code` クッキーと `did` 用の `KameleoonProducts_device_id` クッキーに保存します。

## クエリパラメーター

| パラメーター    | 型      | 必須     | 説明                                                                                                                                                                                                            |
| --------- | ------ | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `shop_id` | String | True   | ストアキー。Kameleoon アプリの **Recommendations** > **Settings** > **Store settings** で確認できます。キーについては、カスタマーサクセスマネージャーにもお問い合わせいただけます。                                                                                   |
| `did`     | String | False  | デバイス ID。デバイス ID が既に存在する場合は、ここに指定してください。`did` を指定しない場合、API は Kameleoon データベース内で新しい ID を生成します。生成された ID は、それ以降のすべてのリクエストでデバイス ID として使用してください。                                                                    |
| `sid`     | String | True\* | セッション ID は、現在のセッション中にユーザーに割り当てられた一時的な識別子です。一意の文字列でなければならず、新しいセッションが開始されるたびに再生成されます。最初の init リクエストには `sid` を含めないでください。`sid` は Kameleoon によって生成され、API レスポンスで返されます。リクエストで `sid` を指定し、それがシステム内に存在しない場合、エラーが発生します。 |

<Note>
  `sid` パラメーターは必須ですが、最初の初期化時には追加しないでください。システムがそれを生成し、レスポンス(`seance` として)で返します。

  生成後は、現在のセッション内のリクエストにはシステムが生成した `sid` を使用してください。
</Note>
