---
title: "拡張データオブジェクト"
slug: "extension-data-object"
abstract: "Sitecore Engage SDK(Sitecore PersonalizeストリームAPI)における拡張データオブジェクトを記述します。"
---
# 拡張データオブジェクト

extension dataオブジェクトを使ってイベントに関するカスタムデータを収集し、それをSitecore Personalizeに送信します。これはイベント [送信](https://doc.sitecore.com/personalize/ja/developers/api/integrating-with-sitecore-personalize/understanding-integration-details/sending-events-using-the-engage-sdk.html "Sending events using the Engage SDK")時に最後の関数の引数として指定できるオプションオブジェクトです。このオブジェクトは最大50個のカスタム属性を受け入れることができます。

イベントを送信すると、このオブジェクト内のデータはパーソナライズや意思決定に利用可能になります。

このオブジェクトを構築する際は、フラットオブジェクト構造を使いましょう。Sitecore Personalize自動的にネストされたオブジェクトをフラット化し、必要に応じてキーの名前を変更します。例えば:

ネストされたオブジェクト:

{"params":{"customObject":{"number":"16"}}}

キー名を変更した平坦なオブジェクト:

{"params\_customObject\_number":"16"}

こちらはevent() 関数を使ってmyretailsite:CLICKED\_POPUPというカスタムイベントを送信する方法の例です。 eventDataは [イベントデータオブジェクトに必要なすべての属性](https://doc.sitecore.com/personalize/ja/developers/api/stream-api/sitecore-engage-sdk-reference/objects/event-data-object.html#UUID-a7f441ce-7bee-9e1a-8a6c-7f995310e71b_UUID-2cda931f-8a8a-520d-dd7c-fe7fa3c3d597 "Required attributes")を含みます。 extensionDataはカスタムデータです。

import { engage } from "./engage.js";
// ...

const handleClick = async (e) => {
 e.preventDefault();

 const eventData = {
 channel: "WEB",
 currency: "EUR",
 pointOfSale: "myretailsite/ireland",
 language: "EN",
 page: "home"
 };

 const extensionData = {
 customKey: "customValue"
 };

 await engage.event("myretailsite:CLICKED\_POPUP", eventData, extensionData);
};