---
title: "セッション特性の定義、保存、アクセス"
slug: "defining-storing-and-accessing-session-traits"
abstract: "セッション固有の値を取得し、ゲストコンテキスト内に保存し、そのSitecore Personalize内でアクセスするためのロジックをJavaScriptで定義する方法。"
---
# セッション特性の定義、保存、アクセス

このトピックでは、顧客として特定されたゲストのセッション特性を捉え保存する方法を説明します。JavaScriptを使ってセッション特性のロジックを定義し、属性を取得・計算し、ゲストに対して保存し、Sitecore Personalize内でその値にアクセスする方法が含まれます。

## JavaScriptによるセッション特性の定義

セッション特性は、各顧客のウェブセッション終了時に実行される[JavaScriptコードで定義](https://doc.sitecore.com/personalize/ja/users/sitecore-personalize/developer-center/session-traits/create-a-session-trait.html "Create a session trait") されます。カスタムコードは、ウェブセッション内のすべてのイベントや利用可能な顧客データ(ゲストプロパティ、データ拡張、注文データなど)に基づいて特定の値を計算します。

例えば、顧客のページビューを追跡するための [セッション特性を作成する](https://doc.sitecore.com/personalize/ja/users/sitecore-personalize/developer-center/session-traits/create-a-session-trait.html "Create a session trait") ことができます。ページ [ビューイベントをカウント](https://doc.sitecore.com/personalize/ja/users/sitecore-personalize/developer-center/session-traits/code-snippets.html#UUID-09c95acf-0616-30ef-5e3b-79bc84f7b2ee_section-idm234572777668165 "Count a customer's page views")するためのJavaScriptスニペットの例を以下に示します:

(function () {
 var counter = 0;
 triggerSession.events.forEach(event => {
 if (event.type == "VIEW") {
 counter++;
 }
 })
 return counter;
})();

セッション特性 [を有効にする](https://doc.sitecore.com/personalize/ja/users/sitecore-personalize/developer-center/session-traits/activate-a-session-trait.html "Activate a session trait") と、JavaScriptコードは各顧客のウェブセッションの最後に実行され、カスタムロジックを適用して望ましい値を計算します。この例では、顧客が閲覧したページ数を取得し、後で使うために保存します。

## セッション特性をゲストに対して保存する方法

セッション特性で捉えられた値は、ゲストコンテキストのルートレベルでtraitsオブジェクト内の属性として格納されます。各顧客は [最大10個のセッション特性](https://doc.sitecore.com/personalize/ja/users/sitecore-personalize/developer-center/session-traits/session-trait-limitations.html "Session trait limitations") を保存できます。以下はtraitsオブジェクトを持つゲストコンテキストの例です:

{
 "email": "jane\_doe@sitecore.com",
 "emails": 
 "jane\_doe@sitecore.com"
 ,
 "ref": "99378e77-34e8-477d-bc82-4951082fc1f0",
 "clientKey": "<client\_key>",
 "createdAt": "2024-02-07T09:\`21:57\`.764Z",
 "modifiedAt": "2024-02-07T09:\`24:13\`.295Z",
 "title": "Ms",
 "firstName": "Jane",
 "lastName": "Doe",
 "identifiers": ,
 "firstSeen": "2024-02-07T09:\`21:57\`.764Z",
 "lastSeen": "2024-02-07T09:\`21:57\`.764Z",
 "guestType": "customer",
 "subscriptions": ,
 "dataExtensions": ,
 "sessions": ,
 "orders": ,
 "segmentMemberships": ,
 "traits": {
 "session": {
 "count\_views": {
 "name": "Count\_views",
 "createdAt": "2024-07-26T10:\`38:39\`.688Z",
 "value": 4,
 "modifiedAt": "2024-07-26T10:\`44:58\`.788Z"
 },
 "countpageviews": {
 "name": "Count-page-views",
 "createdAt": "2024-07-26T10:\`38:39\`.688Z",
 "value": 4,
 "modifiedAt": "2024-07-26T10:\`44:58\`.788Z"
 }
 }
}

traitsオブジェクト内には、顧客に関連するすべてのセッション特性をsessionサブオブジェクトが格納します。各セッション特性オブジェクトは、[そのfriendlyId](https://doc.sitecore.com/personalize/ja/users/sitecore-personalize/developer-center/session-traits/create-a-session-trait.html "Create a session trait")によって一意に識別され、作成時に自動的に生成されます。以下の属性を含みます。

-   name - セッション特性の作成時にユーザー定義の名称。
-   createdAt - セッション特性作成時刻を示す自動生成タイムスタンプ。
-   modifiedAt - セッション特性が最後に変更された日を示す自動生成タイムスタンプ。
-   value - 計算されたセッション特性値。これはJavaScriptのロジックに応じて文字列、数値、ブール値、または文字列のリストのいずれかです。

セッション特性はtraitsオブジェクト内でmodifiedAtタイムスタンプに基づいて降順に並べ替えられ、最も最近更新されたセッション特性がtraitsオブジェクトの上部に配置されます。

## セッション特性Sitecore Personalize値の取得方法

セッション特性の保存値をSitecore Personalize内で使用または取得するには、既知の構造を使ってゲストコンテキストからその値を参照できます。例えば:

guest.traits.session.sessionTrait1.value.

sessionTrait1をセッション特性のfriendlyId(manage-session-traits.html#UUID-7a7e2f14-bd96-e48d-06ad-f7f9dc424c24\_section-idm234411970915559 "Copy the friendly ID of a session trait")に置き換え、顧客のセッション終了時に計算された保存値を取得します。