1. カスタム条件を作成する

条件のテスト

日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

重要

機能の利用可能性は段階的に展開される一環です。あなたの組織はまだこの機能に気づいていないかもしれません。環境が導入された際に利用可能になります。

Sitecore Personalizeは、特定のゲストに対して条件をテストすることを可能にします。

公開前に状態をテストし、エラーを特定し最適なパフォーマンスを確保することをお勧めします。コードを変更した後、同じゲストで再度テストして結果を確認してください。

リクエストでヘッダーやパラメータを渡す必要があるより高度なユースケースでは、高度な条件をテストすることができます。

条件をテストする際、Sitecore Personalizeはサーバー側でJavaScriptをテストします。これにより、JavaScriptが実行されるコンテキスト内で検証されることが保証されます。

UserDeveloperAdminまたはSitecore Cloud Portalで役割を持つチームメンバーは、状態を検査することができます。

条件をテストするには:

  1. 条件をOpenしてTestをクリックします。

    Testing a condition
  2. Test Conditionダイアログでは、デフォルトのゲストの属性と照合したり、検索ボックスをクリックして最近アクティブなゲストリストからRecentを選んだり、ブックマークしたゲストのリストからBookmarksを選んだりできます。システムは最近アクティブだったゲストを選びます。例えば、メールアドレスや他のユニークな識別子、ブラウザIDを使ってゲストを検索できます。

    注記

    設定やテスト時によく使うゲストがいれば、starアイコンをクリックしてゲストをブックマークし、検索しなくて済むようにしましょう。

  3. ゲストデータを一時的に変更するには(これは一時的で、ゲストに関連付けられた属性は変更しません)、コードエディタでJSONを編集してください。

  4. クリックTest。条件は、選択したゲストのデータに対して、本番環境と同様に実行されます。条件の出力はResponse タブに表示されます。

ゲストパラメータの追加

ゲストパラメータを設定して、テストの応答でそれらを確認できるようにできます。これを実現するには、条件にguestコンテキストを呼び出す関数を含める必要があります。

条件にゲストパラメータを追加するには:

  1. コードエディタで、以下のJavaScriptを含めると、guestコンテキストを呼び出します。以下は以下の通りです。

    (function () {
            return { guest: guest };
    })();
  2. Condition parametersオプションをクリックして値を入力してください。

  3. クリックTest。条件の出力(ゲストパラメータを含む)はResponseタブに表示されます。

POSパラメータを追加してください

Point of Saleパラメータを設定して、テストの応答でそれを確認できるようにできます。これを実現するには、条件にrequestコンテキストを呼び出す関数を含める必要があります。

条件にPOSオブセールパラメータを追加するには:

  1. コードエディタで、requestコンテキストを呼び出すためのJavaScriptを含めることができます。ここに示されています:

    (function () {
            return { request: request };
    })();
  2. Experience requestオプションをクリックし、ドロップダウンリストから販売時点を選択します。

  3. クリックTest。条件の出力、Point of Saleパラメータの表示を含むResponseタブ

テナントパラメータの追加

テストの回答でそれらを確認できるようにtenantパラメータを設定することができます。これを実現するには、条件に関数を含んでtenantコンテキストを呼び出す必要があります。

条件にテナントパラメータを追加するには:

  1. コードエディタで、以下のJavaScriptを含めると、tenantコンテキストを呼び出します。以下は以下の通りです。

    (function () {
            return { tenant: tenant };
    })();

    例えば、箱から出した条件のVisit date of month (organization time zone) 条件はJavaScriptにtenant.configurations.timezoneパラメータを含みます。以下は以下の通りです。

    (function () {
        load("classpath:moment.js");
        load("classpath:moment-timezone.js");
        var returnValue = false;
        var comparison = false;
        var comparator = "[[is | enum(is, is not) | is | { required: true }]]";
        var operatorValue = "[[compares to | enum(is equal to,is greater than,is less than,is greater than or equal to,is less than or equal to,is between) | | { required: true, placeholder: compares to} ]]";
        var dayOfMonth = Number("[[number | number | | { required: true, min: 0, max: 31, placeholder: 0 }]]");
        var dayOfMonth2 = Number("[[until day | number | | { required: true, min: 0, max: 31, placeholder: 0 }]]");
        var tenantTimezone = "";
        if (tenant && tenant.configurations && tenant.configurations.timeZone) {
            tenantTimezone = tenant.configurations.timeZone;
        }
        var tenantDate = moment.tz(tenantTimezone).date();
        
        if (operatorValue === 'is between') {
                comparison = tenantDate >= dayOfMonth && tenantDate <= dayOfMonth2;
        } else {
            if (operatorValue === 'is equal to') {
               comparison = tenantDate === dayOfMonth; 
            } else if (operatorValue === 'is greater than') {
                comparison = tenantDate > dayOfMonth;
            } else if (operatorValue === 'is less than') {
                comparison = tenantDate < dayOfMonth;
            } else if (operatorValue === 'is greater than or equal to') {
                comparison = tenantDate >= dayOfMonth;
            } else if (operatorValue === 'is less than or equal to') {
                comparison = tenantDate <= dayOfMonth;
            }
        }
            
        if (comparator === "is") {
            returnValue = comparison;
        } else {
            returnValue = !comparison;
        }
        return returnValue;
    })();
  2. Condition parametersオプションをクリックして値を入力してください。

  3. クリックTest。条件の出力( tenantパラメータを含む)はResponseタブに表示されます

印刷文を追加してください

条件のデバッグやその流れを理解するために、条件にprint() 文を含めることができます。これにより、コードがエラーを出すまでの条件出力をレスポンスで確認できます。

条件にprint文を追加するには:

  1. コードエディタでprint() 文のJavaScriptを入れてください。例えば:

    (function () {
            print("first log");
            print("second log");
            return true;
    })();
  2. クリックTest。条件の出力はResponseタブに表示されます。

  3. print()の声明のログを見るには、以下の通りLogsをクリックしてください。

    Print statement logs in the Response tab.
この記事を改善するための提案がある場合は、 お知らせください!