---
title: "インタラクティブな実験を実施する"
slug: "run-an-interactive-experiment"
abstract: "顧客とのやり取りをシミュレートし、実験をトリガーするペイロードをSitecore Personalizeに送るためのインタラクティブな実験の実施方法。"
---
# インタラクティブな実験を実施する

インタラクティブな実験を作成した後、顧客のやり取りをシミュレートしたデータSitecore Personalizeにペイロードを送信して実験をトリガーすることでテストできます。

カスタムフィールドを使う高度な実験にはこれを行うことを推奨します。より簡単な実験の場合は、コードをテストする代わりに[API応答をプレビュー](https://doc.sitecore.com/personalize/ja/users/sitecore-personalize/introduction-to-experiments-in-sitecore-personalize/introduction-to-interactive-experiments-in-sitecore-personalize/compose-the-api-response-for-an-interactive-experiment/test-the-api-response-for-an-interactive-experiment.html "Test the API response for an interactive experiment") できます。

インタラクティブな実験を行うためのいくつかの選択肢があります:

-   Engage SDKまたはCloud SDKが提供する機能を利用しています。
-   Personalize REST APIを使ってPOSTリクエストを送信します。
-   Chrome DevToolsコンソールを Boxever.js (レガシー)で使用しています。

## エンゲージSDK

Engage SDKを使っている場合は、Engage.personalize(personalizationData, timeout)関数を使ってインタラクティブな実験を実行できます。この関数は、実行したいライブ実験のfriendlyIdを含んで呼び出さなければなりません。

実験を実行してコンソールに記録する方法の例を紹介します。

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

const handlePersonalization = async () => {
 const response = await engage.personalize(personalizationData);
 console.log(response);
};

こちらはパーソナライズデータオブジェクトの例です。このオブジェクトにはゲストを識別するためのemail属性やidentifier属性が含まれていません。このパーソナライズデータオブジェクトにはオプションのカスタムフィールドも含まれています。

const personalizationData = {
 channel: "WEB",
 currency: "EUR",
 pointOfSale: "myretailsite/ireland",
 friendlyId: "running\_shoes\_popup\_02",
 // optional attributes:
 params: { key: "value" }
}

## クラウドSDK

クラウドSDKを使っているなら、[personalize](https://doc.sitecore.com/sdk/en/developers/004/cloud-sdk/en/cloud-sdk-personalize-browser-personalize.html)機能を使ってSitecore Personalizeでリアルタイムのインタラクティブな実験を実行できます。

以下はNext.jsのpersonalize関数の使い方の例です:

"use client";
import { useEffect } from "react";
import { init, personalize } from "@sitecore-cloudsdk/personalize/browser";

export default function Home() {
 // Initialize the module using init()...

 // Run personalization:
 const runPersonalization = async () => {
 const personalizationData = {
 channel: "WEB",
 friendlyId: "running\_shoes\_popup\_02",
 };

 const personalizeRes = await personalize(personalizationData);
 console.log("Ran personalization.", personalizeRes);
 };

 return (
 <div>
 <button onClick={runPersonalization}>run personalization</button>
 </div>
 );
}

## REST API

Personalize REST APIを使ってPOSTリクエストを出すことでインタラクティブな実験を行うことができます。

フロー実行リクエストを送信するには、browserId、email、またはidentifiersを使う必要があります。

以下はbrowserIdを使った実験の例です:

curl -X POST '<baseURL>/v2/callFlows' \\
-H 'Accept: application/json' \\
--data-raw '
{
 "clientKey": "abBah8aelipaPeebae7roox2tiexoSee",
 "channel": "WEB",
 "language": "en",
 "currencyCode": "EUR",
 "pointOfSale": "myretailsite/ireland",
 "browserId": "a38b230c-11eb-4cf9-8d5d-274e9f344925",
 "friendlyId": "home\_page\_banner"
}'

## Boxever.js(遺産)

Chrome DevToolsコンソールを使ってBoxever.jsを使ってインタラクティブな実験のためにJavaScriptを実行できます。この方法は、Boxever.jsライブラリがインストールされているあなたのウェブサイトからのリクエストを実行し、設定が最小限で済むため一般的に使われています。

こちらはChrome DevToolsを使ってインタラクティブな実験を行う際に使えるJavaScriptの例です:

var flowData = {
 "clientKey": Boxever.client\_key,
 "channel": "WEB",
 "language": "en",
 "currencyCode": "EUR",
 "pointOfSale": Boxever.pointOfSale,
 "browserId": Boxever.getID(),
 "friendlyId": "cos\_\_interactive\_\_custom\_fields" }
Boxever.callFlows(flowData, function(response) {
 console.log(response);
});

ペイロードリクエストにカスタムパラメータを含めるには、keyパラメータをflowDataオブジェクトに追加し、以下のJSON例のようにキー/バリューペアとしてカスタムparamsを追加します。

"params": {
 "loggedInState": "logged in" // example
 "someKey": "someValue" // example
 }