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

# Get Treatments

> Get Treatments APIは、アプリやその他のサーフェスでトリートメントをレンダリングするために必要なすべての詳細情報を取得します。

<Note>
  日本語版はAIによる翻訳です。正確な情報については[英語版](/api-reference/get-treatments)をご参照ください。
</Note>

## API定義

```url theme={null}
POST https://apis.auxia.io/v1/GetTreatments
```

### Path Parameters

<table>
  <thead>
    <tr>
      <th>Name</th>
      <th>Type</th>
      <th>Description</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>api\_key</td>
      <td>String</td>

      <td>
        Auxiaを使用する各プロジェクトまたは企業に発行される文字列のAPIキーです。
        リクエストパラメータまたはヘッダーのいずれかに設定できます。
      </td>
    </tr>
  </tbody>
</table>

### Headers

<table>
  <thead>
    <tr>
      <th>Name</th>
      <th>Type</th>
      <th>Description</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>x-api-key</td>
      <td>String</td>

      <td>
        Auxiaを使用する各プロジェクトまたは企業に発行される文字列のAPIキーです。このAPIキーには、このAPIを呼び出す権限が必要です。
        リクエストパラメータまたはヘッダーのいずれかに設定できます。
      </td>
    </tr>
  </tbody>
</table>

### ステータスコード

1. 200: OK トリートメントが正常に返されます。
2. 401: Unauthorized 正しいAPIキー、projectId、その他のパラメータがリクエストに含まれていることを確認してください。

## リクエストボディ（Raw）

```json lines theme={null}
{
    "projectId": "1250",
    // This is an example user ID. Actual user ID can be obfuscated. See
    // documentation below
    "userId": "gGTE8CWUIgpzPivCejVk7JN284V",
    "contextualAttributes": [
        {
            "key": "profile_id",
            "stringValue": "pr1234"
        },
        {
            "key": "last_action",
            "stringValue": "button_x_clicked"
        }
    ],
    "surfaces": [
        {
            "surface": "HOME_SCREEN",
            "maximumTreatmentCount": 1
        },
        {
            "surface": "CART_SCREEN",
            "maximumTreatmentCount": 3,
            "minimumTreatmentCount": 1
        }
    ],
    // Optional. Defaults to "en".
    "languageCode": "en"
}
```

## curlの例

```json lines theme={null}
curl --location --request POST 'https://apis.auxia.io/v1/GetTreatments' \
--header 'Content-Type: application/json' \
--header 'x-api-key: *********************' \
--data-raw '{
    "projectId": "1250",
    "userId": "gGTE8CWUIgpzPivCejVk79JN284V",
    "contextualAttributes": [
        {
            "key": "profile_id",
            "integerValue": 10
        },
        {
            "key": "last_action",
            "stringValue": "button_x_clicked"
        }
    ],
    "surfaces": [
        {
            "surface": "HOME_SCREEN",
            "maximumTreatmentCount": 1
        },
        {
            "surface": "CART_SCREEN",
            "maximumTreatmentCount": 3,
            "minimumTreatmentCount": 1
        }
    ]
}'
```

## レスポンス

```json lines theme={null}
{
   "responseId": "690e24d8-16a6-4518-bf37-09a8f0120dfb",
   "userTreatments": [
       {
           "treatmentId": "6",
           "treatmentTrackingId": "6_690e24d8-16a6-4518-bf37-09a8f0120dfb",
           "rank": "1",
           "treatmentContent": "{ \"title\": \"You have a new message!\", \"description\": \"Learn how our product helps you\", \"cta_name\": \"Learn more\", \"cta_link\": \"/tabs/home/feed\"}",
           "treatmentType": "IN_APP_CONTENT_CARD",
           "surface": "HOME_SCREEN",
           "contentLanguageCode": "en",
       },
       {
           "treatmentId": "4",
           "treatmentTrackingId": "4_690e24d8-16a6-4518-bf37-09a8f0120dfb",
           "rank": "1",
           "treatmentContent": "{ \"title\": \"Check out your trends\", \"description\": \"87% of users found this feature useful\", \"cta_name\": \"View trends\", \"cta_link\": \"/actionscreen\"}",
           "treatmentType": "IN_APP_CONTENT_CARD",
           "surface": "CART_SCREEN",
           "contentLanguageCode": "en",
       },
       {
           "treatmentId": "3",
           "treatmentTrackingId": "3_690e24d8-16a6-4518-bf37-09a8f0120dfb",
           "rank": "2",
           "treatmentContent": "{ \"title\": \"Check leaderboard\", \"description\": \"See your global ranking\", \"cta_name\": \"View leaderboard\", \"cta_link\": \"/leaderboardscreen\"}",
           "treatmentType": "IN_APP_CONTENT_CARD",
           "surface": "HOME_SCREEN",
           "contentLanguageCode": "en",
       }
   ]
}
```

## スキーマリファレンス

### リクエスト

<table>
  <thead>
    <tr>
      <th>Name</th>
      <th>Data Type</th>
      <th>Required?</th>
      <th>Description</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>projectId</td>
      <td>string</td>
      <td>Required</td>

      <td>
        特定の顧客のプロジェクトに対して、常に同じ値を使用してください。
      </td>
    </tr>

    <tr>
      <td>userId</td>
      <td>string</td>
      <td>Required</td>

      <td>
        各ユーザーの一意のIDです。
      </td>
    </tr>

    <tr>
      <td>contextualAttributes</td>
      <td>json</td>
      <td>Optional</td>

      <td>
        <p>アプリのコンテキストからの追加属性のセットです。例: 現在の画面、最近のアクション、ユーザーのコンテキスト選択など。各コンテキスト属性はキーと値のペアです。</p>
        <p><strong>含めるべき内容:</strong></p>

        <ol>
          <li>Auxiaが最後に認識したものよりも新しい可能性のあるユーザー属性。これにより、最新のシグナルがトリートメント選択のルール処理やMLモデルに含まれるようになります。</li>
          <li>アプリ内のユーザーの現在のコンテキストを識別するその他のシグナル。例えば、<code>last\_button\_clicked</code>や<code>current\_screen\_id</code>などです。</li>
        </ol>

        <p>同じキーを持つ重複した属性は例外をスローします。</p>
        <p><strong>例:</strong></p>

        <ul>
          <li>\{ "key": "profile\_id", "stringValue": "pr1234" }</li>
          <li>\{ "key": "profile\_id", "integerValue": 10 }</li>
        </ul>
      </td>
    </tr>

    <tr>
      <td>surfaces</td>
      <td>json</td>
      <td>Required</td>

      <td>
        <p>リクエストには少なくとも1つのサーフェスを含める必要があります。各サーフェスには以下が含まれます:</p>

        <ul>
          <li><code>surface</code>は、特定のUIコンポーネント、画面（ホーム画面）、またはユースケース（クーポン）のトリートメントをリクエストするためのクライアント設定パラメータです。サーフェスの一般的な例は<code>HOME\_SCREEN</code>や<code>PURCHASE\_SCREEN</code>です。</li>
          <li><code>maximumTreatmentCount</code>（Optional）は、指定されたサーフェスに対してクライアントに返されるトリートメントの最大数です。値が設定されていない場合、デフォルトは1です。</li>
          <li><code>minimumTreatmentCount</code>（Optional）は、指定されたサーフェスに対してクライアントに返されるトリートメントの最小数です。このフィールドが設定されている場合、レスポンスは0または<code>minimumTreatmentCount</code>の値以上のいずれかであることが保証されます。値が設定されていない場合、デフォルトは0です。</li>
        </ul>

        <p><strong>例:</strong></p>

        <ul>
          <li>\{ "surface": "CAROUSEL", "maximumTreatmentCount": 10, "minimumTreatmentCount": 1 }</li>
        </ul>
      </td>
    </tr>

    <tr>
      <td>languageCode</td>
      <td>string</td>
      <td>Optional</td>

      <td>
        トリートメントのコンテンツに対してリクエストされる言語コードです。形式: IETF BCP 47。このフィールドが未指定の場合、デフォルトの言語（en）が使用されます。リクエストされた言語の翻訳がないトリートメントは返されません。
      </td>
    </tr>

    <tr>
      <td>maximumTreatmentCount</td>
      <td>int64</td>
      <td>Optional</td>

      <td>
        クライアントに返されるトリートメントの最大数です。値が設定されていない場合、デフォルトは1です。
      </td>
    </tr>
  </tbody>
</table>

### レスポンス

<table>
  <thead>
    <tr>
      <th>Name</th>
      <th>Data Type</th>
      <th>Description</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>responseId</td>
      <td>string</td>

      <td>
        <code>getTreatments</code>の各呼び出しに対して生成される一意のIDです。このIDは、レスポンス内の各トリートメントに固有の<code>UserTreatment.treatmentTrackingId</code>と比較して、レスポンス全体に対するグローバルなIDです。
        レスポンスでトリートメントが0件返された場合を除き、このグローバルなレスポンスIDではなく、十分なフィードバックループを確保するためにトリートメントIDが必要です。
      </td>
    </tr>

    <tr>
      <td>userTreatments</td>
      <td>json（下記の表を参照）</td>

      <td>
        UIやメッセージングシステムでレンダリングするために必要な情報を含むトリートメントのリストです。
      </td>
    </tr>
  </tbody>
</table>

### userTreatments

<table>
  <thead>
    <tr>
      <th>Name</th>
      <th>Data Type</th>
      <th>Description</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>treatmentId</td>
      <td>string</td>

      <td>
        特定のトリートメントを識別する一意のIDです。Auxiaコンソールの「Overview」セクションの「Treatments」でも確認できます。
      </td>
    </tr>

    <tr>
      <td>treatmentTrackingId</td>
      <td>string</td>

      <td>
        特定のトリートメントだけでなく、そのトリートメントが返された特定のRPC呼び出しも参照する一意のIDです。
      </td>
    </tr>

    <tr>
      <td>surface</td>
      <td>string</td>

      <td>
        リクエストで上記に定義されたサーフェスの名前で、このトリートメントがレンダリングされるべき、またはこのトリートメントが使用されるべきサーフェスです。
      </td>
    </tr>

    <tr>
      <td>rank</td>
      <td>int64</td>

      <td>
        指定されたサーフェスに対するレスポンス内のトリートメントのランクです。Auxiaは、レスポンスでプロビジョニングされる前に、各ユーザーのトリートメントをランク付けしてソートします。
      </td>
    </tr>

    <tr>
      <td>treatmentType</td>
      <td>string</td>

      <td>
        コンテンツのレンダリング方法を決定するために使用されるクライアント設定パラメータです。
        例: タイトル、テキスト、画像を含むカードをレンダリングする「In App Content Card」や、異なるUIコンポーネント用の「Banner」など。
      </td>
    </tr>

    <tr>
      <td>treatmentContent</td>
      <td>json</td>

      <td>
        （アプリ内で）表示される、または（メッセージに）含まれるコンテンツです。
        コンテンツ内のプレースホルダーは、パーソナライゼーションシグナルで置き換えることができます。
        コンテンツ形式は、Treatment Config UIを通じてAuxiaのお客様が管理します。
        プレーンテキスト、JSON、HTML、JSスニペット、またはクライアントUIで直接使用可能な任意の形式を使用できます。
        <strong>例:</strong>
        <code>\{ "content": "\{ title: 'Check out your trends', description: '87% of users found this feature useful', cta\_name: 'View trends', cta\_link: '/actionscreen' }" }</code>
      </td>
    </tr>

    <tr>
      <td>contentLanguageCode</td>
      <td>string</td>

      <td>
        トリートメントのコンテンツの言語コードです。形式: IETF BCP 47。
      </td>
    </tr>
  </tbody>
</table>

## 付録

### 言語と翻訳

in\_app\_content\_cardなどのトリートメントコンテンツは、異なる言語に翻訳できます。

翻訳を使用するには、以下のエンドポイントにPOSTする際に「language\_code」JSONフィールドで特定の言語コードを選択してください:

```url theme={null}
https://apis.auxia.io/v1/GetTreatments
```

#### 例

```json lines theme={null}
curl --location --request POST 'https://apis.auxia.io/v1/GetTreatments' \
--header 'Content-Type: application/json' \
--header 'x-api-key: *********************' \
--data-raw '{
    "projectId": "1250",
    "userId": "gGTE8CWUIgpzPivCejVk7JN284V",
    "contextualAttributes": [
        {
            "key": "profile_id",
            "stringValue": "pr1234"
        },
        {
            "key": "last_action",
            "stringValue": "button_x_clicked"
        }
    ],
    "surfaces": [
        {
            "surface": "HOME_SCREEN",
            "maximumTreatmentCount": 1
        }
    ],
    "languageCode": "vi"
}'
```

#### レスポンス

```json lines theme={null}
{
    "responseId": "18c7c4b3-2093-494a-9996-94989abac914",
    "userTreatments": [
        {
            "treatmentId": "4",
            "treatmentTrackingId": "4_18c7c4b3-2093-494a-9996-94989abac914",
            "rank": "1",
            "treatmentContent": "... translated content ...",
            "treatmentType": "IN_APP_CONTENT_CARD",
            "surface": "HOME_SCREEN",
            "contentLanguageCode": "vi",
        }
    ]
}
```

### 未翻訳の場合

リクエストされた言語にトリートメントが翻訳されていない場合、そのトリートメントは返されません。

#### 例

```json lines theme={null}
curl --location --request POST 'https://apis.auxia.io/v1/GetTreatments \
--header 'Content-Type: application/json' \
--header 'x-api-key: *********************' \
--data-raw '{
    "projectId": "1250",
    "userId": "gGTE8CWUIgpzPivCejVk7JN284V",
    "contextualAttributes": [
        {
            "key": "profile_id",
            "stringValue": "pr1234"
        },
        {
            "key": "last_action",
            "stringValue": "button_x_clicked"
        }
    ],
    "surfaces": [
        {
            "surface": "HOME_SCREEN",
            "maximumTreatmentCount": 1
        }
    ],
    "languageCode": "eo"
}' # The language code `eo` is not supported.
```

#### レスポンス

```json lines theme={null}
{
    "responseId": "e9861c48-f8bf-42dd-a189-a471c35002ad"
}
```
