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

# CSVフィールドリファレンス

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

このページでは、一括アップロードCSVテンプレートの各カラムについて詳細な情報を提供します。

## 1. 基本フィールド

* **External treatment ID**
  * **型**: String
  * **必須**: いいえ
  * **説明**: 他のシステムとの連携用の外部識別子
  * **備考**:
    * プロジェクト設定で有効にしている場合のみ利用可能です
    * 指定する場合、プロジェクト内で一意である必要があります

* **Tags**

  * **型**: String
  * **必須**: いいえ
  * **説明**: トリートメントの整理・分類用のタグ
  * **形式**: 複数のタグを区切るにはセミコロン（`;`）を使用します
  * **書式ルール**
    * タグの区切りにはセミコロン（`;`）を使用します
    * セミコロンの後にスペースを入れないでください
    * セミコロン間に空の値を残さないでください
    * タグは大文字と小文字を区別します

  <Note>
    すべてのタグは、一括アップロードで使用する前にプロジェクト内に存在している必要があります。必要に応じて、先にコンソールでタグを作成してください。
  </Note>

* **Treatment type**\*
  * **型**: String
  * **必須**: はい
  * **説明**: このトリートメントのトリートメントタイプ
  * **例**: `POPUP_BANNER`, `PUSH_NOTIFICATION`
  * **備考**:
    * トリートメントタイプは既に存在している必要があります
    * 1つのCSV内のすべてのトリートメントは同じトリートメントタイプである必要があります

* **Target action**
  * **型**: String
  * **形式**:
    * **基本イベント**
      * 特定のプロパティ要件がないイベントの場合。
      * **構文**: `EventName`
      * **例**:  `purchase`
    * **プロパティ付きイベント**
      * 特定のプロパティ値が必要なイベントの場合。
      * **構文**: `EventName (PropertyName1: PropertyValue1 ; PropertyName2: PropertyValue2)`
      * **単一プロパティの例**: `purchase (product_type: premium)`
      * **複数プロパティの例**: `level_end (level_number: 5 ; result: success ; difficulty: hard)`
  * **重要事項**
    * イベント名はプロジェクト内に存在している必要があります
    * プロパティ名はイベントのプロパティ定義と完全に一致する必要があります
    * プロパティ値はそのプロパティの既存の値と完全に一致する必要があります
    * 指定するすべてのプロパティはそのイベントに存在している必要があります

* **Name**\*
  * **型**: String
  * **必須**: はい
  * **説明**: コンソールに表示されるトリートメント名

* **Description**\*
  * **型**: String
  * **必須**: はい
  * **説明**: トリートメントの目的に関する詳細な説明

* **Surfaces**\*
  * **型**: String（セミコロン区切り）
  * **必須**: はい
  * **説明**: このトリートメントに含めるサーフェス
  * **形式**: 複数のサーフェスを区切るにはセミコロン（`;`）を使用します
  * **備考**
    * トリートメントタイプに関連付けられたサーフェスのみ指定できます
    * 少なくとも1つのサーフェスを指定する必要があります
    * サーフェス名は既存のサーフェスと完全に一致する必要があります

* **MEG**
  * **型**: String
  * **必須**: いいえ
  * **説明**: 相互排他グループ名
  * **例**: `holiday_promotions`

<Note>
  相互排他グループ（MEG）は、一括アップロードで使用する前にプロジェクト内に存在している必要があります。必要に応じて、先にコンソールでMEGを作成してください。
</Note>

***

## 2. 配信スケジュール

* **Start timestamp**\*
  * **型**: Timestamp (UTC)
  * **必須**: はい
  * **説明**: トリートメントが有効になる日時
  * **形式**: `MM/dd/yyyy hh:mm a`
  * **例**: `06/01/2024 12:00 AM`
  * **備考**:
    * UTCタイムゾーンで指定する必要があります
    * AM/PM付きの12時間形式を使用してください
    * 月と日はゼロ埋め形式にしてください（例：`1` ではなく `01`）

* **End timestamp**
  * **型**: Timestamp (UTC)
  * **必須**: いいえ
  * **説明**: トリートメントの有効期限
  * **形式**: `MM/dd/yyyy hh:mm a`
  * **例**: `12/31/2024 11:59 PM`
  * **備考**:
    * UTCタイムゾーンで指定する必要があります
    * AM/PM付きの12時間形式を使用してください
    * 指定しない場合、トリートメントは無期限に配信されます

***

## 3. コンテンツフィールド

コンテンツフィールドはトリートメントタイプによって異なります。以下の2つのカテゴリに分類されます：

* **言語非依存フィールド**

  すべての言語に共通して適用されるフィールドです。

  * **カラム名**: `field_name`
  * **例**: `image_url`, `deep_link`

* **言語固有フィールド**

  言語ごとに異なるコンテンツを持つフィールドです。

  * **カラム名**: `field_name_languagecode`
  * **例**:
    * `title_en`, `title_ja`
    * `body_en`, `body_ja`
    * `cta_text_en`, `cta_text_ja`

  **備考**:

  * 各フィールドには最大文字数制限があります（トリートメントタイプとフィールドによって異なります）
  * 文字数制限を超えると検証エラーが発生します

***

## 4. 適格条件

適格条件は、トリートメントを受信する資格のあるユーザーを決定します。各適格条件は4つのカラムで定義されます。

* **カラムパターン**

  適格条件番号N（N = 1, 2, 3, ...）ごとに：

  | カラム                                                | 説明                        |
  | -------------------------------------------------- | ------------------------- |
  | `Qualification field N`                            | 評価するデータフィールド              |
  | `Qualification condition N`                        | 比較条件                      |
  | `Qualification value N`                            | 比較対象の値                    |
  | `Apply qualification N if attribute not available` | データが欠落している場合の動作（ユーザー属性のみ） |

* **Qualification field N**
  * **説明**: 資格を判定するためにチェックするデータフィールド。以下の2つのタイプのいずれかです：
  * **タイプ**:
    * **通常のデータフィールド（IDで指定）**
      * プロジェクトの数値データフィールドIDを使用します
      * **例**: `12345`
    * **自己参照トリートメントインタラクション**
      * **概要**: 現在作成中のトリートメントに対するユーザーのインタラクションを追跡する特殊なデータフィールドです
      * **形式**: `InteractionType_(THIS_TREATMENT)_TimeWindow`
      * **注意**: `(THIS_TREATMENT)` は作成中のトリートメントを自動的に参照するプレースホルダーです
      * **例**: トリートメントの表示頻度を制限する場合
        * **CSVでの入力**: `Sent_(THIS_TREATMENT)_last_1d`、条件 `is less than`、値 `2`
        * **コンソールでの表示**: `auxia_treatment_sent treatment_id:12345 last_1d<2`（12345はトリートメントID）
      * **対応するインタラクションタイプ**:
        * `Sent` - トリートメントがユーザーに送信された
        * `Viewed` - ユーザーがトリートメントを閲覧した
        * `Clicked` - ユーザーがトリートメントをクリックした
        * `Snoozed` - ユーザーがトリートメントをスヌーズした
        * `Dismissed` - ユーザーがトリートメントを閉じた
        * `Cta_completed` - ユーザーがCTAを完了した
        * `Swipe` - ユーザーがトリートメントをスワイプした
      * **対応するタイムウィンドウ**:
        | タイムウィンドウ           | 戻り値の型     | 説明                 |
        | ------------------ | --------- | ------------------ |
        | `first_timestamp`  | TIMESTAMP | インタラクションが最初に発生した日時 |
        | `latest_timestamp` | TIMESTAMP | インタラクションが最後に発生した日時 |
        | `last_1d`          | INTEGER   | 過去1日間の回数           |
        | `last_7d`          | INTEGER   | 過去7日間の回数           |
        | `last_14d`         | INTEGER   | 過去14日間の回数          |
        | `last_28d`         | INTEGER   | 過去28日間の回数          |
        | `last_56d`         | INTEGER   | 過去56日間の回数          |
        | `days_since_first` | INTEGER   | 最初の発生からの日数         |
        | `days_since_last`  | INTEGER   | 最後の発生からの日数         |

* **Qualification condition N**
  * **説明**: 使用する比較演算子。有効な条件はデータフィールドの型によって異なります。
  * **型ごとの条件**:
    * **INTEGER および DOUBLE の場合**:

      * `is` - 等しい
      * `is not` - 等しくない
      * `is greater than` - より大きい
      * `is at least` - 以上
      * `is less than` - より小さい
      * `is at most` - 以下
      * `is any of` - リスト内のいずれかの値に一致
      * `is not any of` - リスト内のいずれの値にも一致しない

      <Note>
        `between` 条件はサポートされていません。代わりに、最小値に `is at least` を使用する条件と最大値に `is at most` を使用する条件の2つの適格条件を別々に作成してください。
      </Note>

    * **STRING の場合**:
      * `is` - 完全に一致
      * `is not` - 一致しない
      * `contains` - 部分文字列を含む
      * `does not contain` - 部分文字列を含まない
      * `is any of` - リスト内のいずれかの値に一致
      * `is not any of` - リスト内のいずれの値にも一致しない

    * **BOOLEAN の場合**:
      * `is` - 等しい（true または false）

    * **TIMESTAMP\_SECONDS の場合**:
      * `at or before` - 指定タイムスタンプ以前
      * `at or after` - 指定タイムスタンプ以降
      * `is older than` - 現在時刻から指定期間を引いた時刻より前
      * `> current time minus` - 現在時刻から指定期間を引いた時刻より後
      * `has happened` - イベントが発生した（値: true）か発生していない（値: false）かを確認

    * **INTEGER\_LIST, DOUBLE\_LIST, STRING\_LIST の場合**:
      * `contains` - リストが値を含む
      * `does not contain` - リストが値を含まない
      * `contains any of` - リストが指定リスト内のいずれかの値を含む
      * `does not contain any of` - リストが指定リスト内のいずれの値も含まない

* **Qualification value N**
  * **説明**: 比較対象の値。形式は条件とデータフィールドの型によって異なります。

* **Apply qualification N if attribute not available**
  * **型**: String (Boolean)
  * **必須**: いいえ（ユーザー属性データフィールドの場合のみ適用）
  * **説明**: ユーザー属性データフィールドのデータが欠落または利用不可の場合の動作を制御します
  * **有効な値**:
    * `TRUE` - 属性が欠落している場合、適格条件を満たしたものとして扱います
    * `FALSE` - 属性が欠落している場合、適格条件を満たしていないものとして扱います
    * 空欄 - デフォルトの動作
  * **重要事項**:
    * このフィールドはユーザー属性データフィールド（ユーザープロパティに基づくデータフィールド）にのみ適用されます
    * 自己参照トリートメントインタラクションフィールドやイベントベースのフィールドには設定できません
    * 非ユーザー属性フィールドにこの値を設定しようとすると、検証に失敗します
  * **シナリオ例**:
    `country` = `US` のユーザーをターゲットにしているが、一部のユーザーに国情報がない場合：
    * `FALSE` に設定: 国情報のないユーザーは、他の条件が満たされていてもトリートメントを受信しません
    * `TRUE` に設定: 国情報のないユーザーは、他の条件が満たされていればトリートメントを受信します

***

**次のステップ**: CSVの入力が完了したら、[アップロードと検証](/ja/bulk-upload/upload-and-validate)に進んで、検証ルール、エラーのトラブルシューティング、ファイルのアップロードを行ってください。
