---
title: "コードスニペット"
slug: "code-snippets-1481735"
abstract: "Sitecore CDPのセッション特性で使える便利なコードスニペット。"
---
# コードスニペット

セッション [特性](https://doc.sitecore.com/cdp/ja/users/sitecore-cdp/developer-center/session-traits/session-traits.html "Session traits")のコードを書くための出発点として使えるJavaScript関数のリストはこちらです。

## トリガーセッション関数

この機能は、顧客のセッション特性の計算を引き起こした特定のセッションを特定するために設計されています。現在のセッション内のすべてのイベントを手動で検索・反復する代わりに、この関数を使って計算に関連するイベントに直接アクセスできます。セッション特性計算を開始したイベントタイプの配列を返すことで、プロセスを簡素化します。

(function () {
	return triggerSession.events.map(e => e.type);
})();

例えば、作成したセッション特性がVIEW、CLICK、SUBMITなどのイベントでトリガーされた場合、関数は以下の値を含む配列を返します: "VIEW", "CLICK", "SUBMIT"。

トリガーセッションを特定する必要があるときにこの機能を使え、以下のコードスニペットで示すように効率的かつ多用途なツールとなります。

## 顧客のページビュー数を数えましょう

この関数は顧客のセッション内のページVIEWイベントの数をカウントします。 [トリガーセッション関数](https://doc.sitecore.com/cdp/ja/users/sitecore-cdp/developer-center/session-traits/code-snippets-1481735.html#UUID-1443721e-1d90-6001-5ab4-70083c02890f_section-idm234470818367493 "Trigger session function")を使い、セッションイベントをループし、一致するVIEWイベントを見つけるたびにカウンターを増分します。ループが完了すると、VIEWイベントの総カウントを返します。VIEWイベントが見つからなければ、0を返します。

(function() {
 var counter = 0;
 if (triggerSession && Array.isArray(triggerSession.events)) {
 for (var i = 0; i < triggerSession.events.length; i++) {
 if (triggerSession.eventsi.type === 'VIEW') {
 counter++;
 }
 }
 }
 return counter;
})();

## 顧客が最後に閲覧したページを特定しましょう

この関数は、顧客のセッションで記録されたイベントに基づいて、顧客が最後に閲覧したページを特定します。 [トリガーセッション関数](https://doc.sitecore.com/cdp/ja/users/sitecore-cdp/developer-center/session-traits/code-snippets-1481735.html#UUID-1443721e-1d90-6001-5ab4-70083c02890f_section-idm234470818367493 "Trigger session function")を用いて、一致するVIEWイベントのセッションイベントをループします。一致するVIEWイベントが見つかれば、そのイベントに関連付けられたページを返します。VIEWイベントが見つからなければ、関数は文字列 "No VIEW Events"を返します。

(function () {
 if (triggerSession && Array.isArray(triggerSession.events)) {
 for (var i = 0; i < triggerSession.events.length; i++) {
 var event = triggerSession.eventsi;
 if (event.type === 'VIEW') {
 return event.arbitraryData.page;
 }
 }
}
 return "No VIEW Events";
})();

## 顧客が利用規約ページを見たかどうか確認してください

この関数は顧客の現在のセッションイベントをチェックし、POLICYページ(利用規約を表す)が閲覧されたかどうかを確認します。 [トリガーセッション関数](https://doc.sitecore.com/cdp/ja/users/sitecore-cdp/developer-center/session-traits/code-snippets-1481735.html#UUID-1443721e-1d90-6001-5ab4-70083c02890f_section-idm234470818367493 "Trigger session function")を使ってセッション内のすべてのイベントをループします。POLICYページのVIEWイベントが見つかれば1を返します。そうでなければ、0を返し、セッション中にページが閲覧されていないことを示します。

(function () {
 var viewedPolicy = 0;

 if (triggerSession && Array.isArray(triggerSession.events)) {
 for (var i = 0; i < triggerSession.events.length; i++) {
 var event = triggerSession.eventsi;

 if (
 event.type === 'VIEW' &&
 event.arbitraryData &&
 event.arbitraryData.page === 'POLICY'
 ) {
 viewedPolicy = 1;
 break; // stop checking once found
 }
 }
 }

 return viewedPolicy;
})();

## 顧客が特定のバナーを見たかどうか確認してください

この関数は、顧客がセッション中に特定のバナーを閲覧したかどうかを確認します。 [トリガーセッション関数](https://doc.sitecore.com/cdp/ja/users/sitecore-cdp/developer-center/session-traits/code-snippets-1481735.html#UUID-1443721e-1d90-6001-5ab4-70083c02890f_section-idm234470818367493 "Trigger session function")を用いて、セッションイベントをループし、指定されたバナー参照に一致するVIEWイベントを探します。一致するイベントが見つかれば、関数はtrueを返し、バナーが閲覧されたことを示します。一致するイベントが見つからなければ、falseを返します。

(function () {
 // Replace with the actual banner reference
 var bannerRef = "/banners/special-offer";
 if (triggerSession && Array.isArray(triggerSession.events)) {
 for (var i = 0; i < triggerSession.events.length; i++) {
 var event = triggerSession.eventsi;
 if (event.type === 'VIEW' && event.arbitraryData.page === bannerRef) {
 return true;
 }
 }
}
 return false;
})();

## 顧客の好みを捉える

この関数はセッションデータから顧客の好みをキャプチャし、保存します。Tシャツサイズやズボンサイズの空文字列などのデフォルト値でuserPreferencesオブジェクトを初期化します。その後、[トリガーセッション関数](https://doc.sitecore.com/cdp/ja/users/sitecore-cdp/developer-center/session-traits/code-snippets-1481735.html#UUID-1443721e-1d90-6001-5ab4-70083c02890f_section-idm234470818367493 "Trigger session function")を使ってセッションイベントをループし、それに応じて設定を更新します。例えば、TシャツサイズページのCLICKイベントが見つかると、関数はtshirtSize値を更新します。最後に、ユーザー設定と連結された文字列を返します。

(function () {
 // Initialize an object to store user preferences with empty strings instead of null
 var userPreferences = {
 language: triggerSession.language,
 currency: triggerSession.currency,
 tshirtSize: "",
 pantsSize: ""
 };

 if (triggerSession && Array.isArray(triggerSession.events)) {
 for (var i = 0; i < triggerSession.events.length; i++) {
 var event = triggerSession.eventsi;

 if (event.type === 'CLICK' && event.arbitraryData.page === 'tShirtSize') {
 userPreferences.tshirtSize = event.arbitraryData.value;
 }

 if (event.type === 'CLICK' && event.arbitraryData.page === 'pantsSize') {
 userPreferences.pantsSize = event.arbitraryData.value;
 }
 }
}

 // Log the final user preferences
 console.log('User preferences:');
 console.log('Language: ' + userPreferences.language);
 console.log('Currency: ' + userPreferences.currency);
 console.log('T-shirt size: ' + userPreferences.tshirtSize);
 console.log('Pants size: ' + userPreferences.pantsSize);

 // Return a concatenated string of the user preferences instead of an object
 return "Language: " + userPreferences.language +
 ", Currency: " + userPreferences.currency +
 ", T-shirt size: " + userPreferences.tshirtSize +
 ", Pants size: " + userPreferences.pantsSize;
})();