---
title: 属性エンリッチメントルールについて
description: この記事では、イベント、訪問、および訪問属性の属性エンリッチメントにおけるルールの機能と適用タイミングについて説明します。
url: https://docs.tealium.com/ja/server-side/attributes/enrichments/about-enrichment-rules/
---
ルールは、エンリッチメントが実行される前に真でなければならない条件を定義します。ルールはエンリッチメントがいつ実行されるか、どのデータが属性に適用されるかを決定します。

ルールがない場合、エンリッチメントは広範囲に実行され、次のような問題が発生する可能性があります：

* すべてのイベントでエンリッチメントが実行される
* 属性が空または誤った値で上書きされる
* 時間の経過とともにデータ品質が一貫しない

ルールにより、次のことが可能になります：

* 特定のイベントタイプにエンリッチメントを制限する
* 意図しない上書きを防ぐ
* 属性の動作をビジネスロジックに合わせる

イベント駆動型データでは、属性がすべてのイベントで構成されるわけではないため、ルールは特に重要です。

エンリッチメントを追加する際にルールを適用する方法については、[エンリッチメントを追加する](https://docs.tealium.com/add-enrichment/)を参照してください。

## ルールの仕組み

ルールは、1つ以上の条件グループで構成されます。各条件は、属性値をフィルターを使用して演算子（`equals`、`contains`、`greater than`など）で評価します。条件は次のように評価されます：

* グループ内の条件はANDロジックを使用します。グループ内のすべての条件が真である必要があります。
* 複数のグループの条件はORロジックを使用します。いずれかのグループが真と評価された場合、エンリッチメントが実行されます。

ルールは、エンリッチメントが処理される時点での受信イベントデータおよび既存の属性値に対して評価されます。

## イベント属性のルール

イベント属性は、受信イベントデータから直接値を受け取ります。これらの値がすべてのイベントに存在する保証はありません。

ルールを適用しない場合、エンリッチメントはすべてのイベントで実行され、ソースデータが欠落している場合でも実行されます。すべてのイベントで実行すると、有効な値が空またはnull値で上書きされる可能性があります。

たとえば、`order_total`は購入イベントでのみ構成されます。ルールなしで`order_total`を使用して訪問属性をエンリッチメントする場合：

* すべてのイベントでエンリッチメントが実行されます。
* `order_total`がないイベントは、保存された値を空の値で上書きします。

常にイベント属性エンリッチメントにルールを追加して、データが存在するイベントに制限してください。

次のルールは、エンリッチメントを購入イベントに制限します：


[
  [
    {
      "input": "tealium_event",
      "operator": "equals",
      "filter": "purchase"
    }
  ]
]


## 訪問および訪問属性のルール

訪問および訪問属性エンリッチメントは、**WHEN**構成を使用してタイミングを定義します：

* 新しい訪問
* 新しい訪問
* 任意のイベント
* 訪問終了

ルールは**WHEN**構成の上に制御の第二層を追加します。両方の構成は次のように連携します：

* **WHEN**はエンリッチメントが実行されるタイミングを決定します。
* **ルール**はどのイベントが適格かを決定します。

たとえば、「ライフタイムオーダートータル」属性は次を使用するかもしれません：

* **WHEN**: 任意のイベント
* **ルール**: `tealium_event equals purchase`

ルールにより、訪問中にエンリッチメントが実行されますが、購入イベントのみに限定されます。

## ルールを使用するタイミング

常にルールを使用してください：

* ソースデータがすべてのイベントに存在しない場合。
* エンリッチメントを特定のイベントタイプにのみ適用する場合。
* 既存の値を更新または上書きする場合。
* 属性が特定のユーザーアクションに依存する場合。

実際には、これらの条件はほとんどのイベント駆動型エンリッチメントに適用されます。

## 例

### 特定のイベントタイプに制限する

このパターンを使用して、`tealium_event`が特定の値と一致する場合にのみエンリッチメントを実行します：


[
  [
    {
      "input": "tealium_event",
      "operator": "equals",
      "filter": "purchase"
    }
  ]
]


### 複数の条件（ANDロジック）

同じグループに複数の条件を追加して、すべての条件が真であることを要求します：


[
  [
    {
      "input": "tealium_event",
      "operator": "equals",
      "filter": "purchase"
    },
    {
      "input": "product_category",
      "operator": "equals",
      "filter": "Electronics"
    }
  ]
]


### 複数のグループ（ORロジック）

いずれかの条件がエンリッチメントをトリガーできるように、別々のグループを追加します：


[
  [
    {
      "input": "tealium_event",
      "operator": "equals",
      "filter": "checkout"
    }
  ],
  [
    {
      "input": "tealium_event",
      "operator": "equals",
      "filter": "purchase"
    }
  ]
]


### 訪問属性条件

ルールは訪問または訪問属性も評価できます：


[
  [
    {
      "input": "loyalty_member",
      "operator": "equals",
      "filter": "true"
    }
  ]
]


## 高度な考慮事項

ルールを設計する際には、エンリッチメントが時間の経過とともにどのように振る舞うかを考慮してください：

* **上書き動作**：エンリッチメントが値を構成する場合、有効なデータが存在するときにのみ実行されるようにします。
* **イベント頻度**：高頻度のイベントは意図しない上書きのリスクを増加させます。
* **属性の目的**：属性が単一の瞬間（たとえば、最新の注文）、累積値（たとえば、総支出）、または状態（たとえば、登録ユーザー）を表すかどうかを決定します。各パターンは、一貫した結果を生み出すために異なるルールロジックを必要とします。

## 関連トピック

* [属性について](https://docs.tealium.com/about-attributes/#rules)
* [エンリッチメントについて](https://docs.tealium.com/about-enrichments/)
* [エンリッチメントを追加する](https://docs.tealium.com/add-enrichment/)
* [エンリッチメント使用例](https://docs.tealium.com/usage-examples/)