---
title: "条件付きレンダリング用のカスタムパーソナライズルールを追加"
slug: "add-a-custom-personalization-rule-for-conditional-rendering"
abstract: "条件付きレンダリング用のカスタムパーソナライズルールの作成方法を説明しています。新しいルールはパーソナライズ用のルールセットエディターで使用できます。"
---
# 条件付きレンダリング用のカスタムパーソナライズルールを追加

Sitecore条件付きレンダリングに使えるいくつかのデフォルトのパーソナライズルールが含まれています。既存のルールで対応できない特定のニーズがある場合は、自分でパーソナライズルールを作成できます。このトピックでは、*Default*デバイス上で条件付きレンダリングに使えるカスタムパーソナライズルールの作成方法を説明します。

## カスタムルールを追加してください

1.  sitecore/system/Settings/Rules/Definitions/Tagsで、右クリックで**タグ**を押し、「>**タグ****を挿入**」をクリックしてから、新しいタグの名前を入力します。
    
2.  /sitecore/system/Settings/Rules/Definitions/Elementsでは、**Elements**を右クリックして「**Element Folder** >**挿入**」をクリックすると、ルール要素フォルダを作成できます。
    
3.  新しく作成した要素フォルダを右クリックし、「**条件**を挿入」>「**条件**」をクリックし、新しい条件の説明名を入力します。
    
4.  新しい条件の **テキスト** フィールドには、ルールを使う人のユーザー向けテキストとルール条件を作成する入力フィールドの組み合わせを入力します。例えば、「クエリ文字列パラメータが値と比較される場合」のように、下線付きのテキストが条件を表しています。各条件を4つのカンマ区切られた値を含む正方形括弧のペアで定義します。
    
    -   条件を実装する.NETクラスのプロパティ名です。ユーザーが条件の値を入力すると、その値は.NETクラスプロパティに割り当てられます。
        
    -   あらかじめ定義された機能を含むマクロの名前です。例えば、ユーザーが整数を選択できるユーザーインターフェースです。これを空にしておくと、デフォルトのインターフェースが使われます。既存のマクロを使えば、例えば文字列演算子を使えます:
        
        where the current contact's AreaName,,,Area Name Key,,,Key OperatorId,StringOperator,,compares to RuleString,,,specific value
        
        > !注マクロを /sitecore/system/Settings/Rules/Definitions/Macrosで定義します。
        
    -   ユーザーインターフェースに関連するURLパラメータを、マクロでインターフェースを作成する場合に指定します。例えば、選択木のルートとして /sitecore/Content/Home項目を指定するには、root=/sitecore/Content/Homeと入力します。URLパラメータが期待できない場合は、このパラメータを空にしても構いません。
        
    -   ルールセットエディターで表示するテキスト。ユーザーが値を選択すると、テキストはそれに応じて変化します。
        
5.  新しい条件の **型** フィールドに、条件を実装する.NETクラスの完全修飾名を以下の形式で入力します: namespace, assembly name。
    
    ![A screenshot of the Content Editor Type field for a new condition.](https://doc.sitecore.com/api/markdown-image/xp/ja/users/92/sitecore-experience-platform/images/CustomPersRuleType_08-23.png)
    
6.  新しい要素フォルダで **「Tags** > **Default**」をクリックし、ステップ1で作成したタグを割り当てます。
    
7.  ルールセットエディターの **条件付きレンダリング**にルールを表示するには、/sitecore/system/Settings/Rules/Conditional Renderings/Tags/Defaultを開き、新しいタグを **条件付きレンダリング** タグに割り当ててください。
    
8.  最後に、Sitecoreのbinフォルダに、条件を実装する.NETクラスを含むDLLを追加します。名前空間とクラス名が上記の**Type**フィールドで指定された値と一致していることを確認してください。.NETクラスは以下のいずれかのクラスから継承する必要があります:
    
    -   ブール条件を実装するには、 Sitecore.Rules.Conditions.WhenConditionを使用します。
    -   文字列の値を比較するには、 Sitecore.Rules.Conditions.StringOperatorConditionを使用します。
    -   他のタイプの値を比較するには、 Sitecore.Rules.Conditions.OperatorConditionを使用します。

プロセスを完了すると、ルールはSitecoreルールセットエディターで利用可能になります。

例えば、以下のテキストです:

![A screenshot of text input for a condition.](https://doc.sitecore.com/api/markdown-image/xp/ja/users/92/sitecore-experience-platform/images/CustomPersRuleText_08-23.png)

結果は以下の通りです:

![A screenshot of the Sitecore Rule Set Editor.](https://doc.sitecore.com/api/markdown-image/xp/ja/users/92/sitecore-experience-platform/images/CustomPersRuleSetEditor08-23.png)