---
title: "カスタムアウトカムモデルを作成する"
slug: "create-a-custom-outcome-model"
abstract: "定義項目やカスタムアウトカムモデルの作成方法、モデル内のカスタムファセットの定義方法、そしてカスタムアウトカムモデルの使い方についても教えてください。"
---
# カスタムアウトカムモデルを作成する

このトピックでは、Outcomeを継承するカスタムアウトカムCarPurchaseOutcomeを作成する方法を説明し、以下の要件を前提としています。

-   CarPurchaseOutcome結果は単一の定義項目で使用されます
-   CarPurchaseOutcomeには、MakeとModel

## 定義項目を作成する

1.  Sitecoreコンテンツエディターを開きます。
2.  /sitecore/system/マーケティングコントロールパネル/結果に行ってください。
3.  結果項目を右クリックし、「**結果>挿入**」**を選択してください。**
4.  プロンプトでアイテム名を入力してください。例えば「Car Purchase」などです。
5.  新しく作成した定義を選択し、「 **レビュー** 」タブをクリックし、「 **デプロイ」**を選択します。これにより定義がウェブデータベースに公開され、リファレンスデータサービスデータベースに展開されます。

## カスタムアウトカムモデルの作成

Outcomeクラスを継承する新しいクラスCarPurchaseOutcomeを作成します。このクラスは固定された定義IDを持ち、他の定義IDでインスタンス化することはできません。

using Sitecore.XConnect;
using System;

namespace Documentation
{
 public class CarPurchaseOutcome : Outcome
 {
 public static Guid CarPurchaseEventDefinitionId { get; } = new Guid("2b7e9e7e-f7ac-4ac2-8f8e-26a9c8644b23");

 public CarPurchaseOutcome(DateTime timestamp, string currencyCode, decimal monetaryValue, string model, string make)
 : base(CarPurchaseEventDefinitionId, timestamp, currencyCode, monetaryValue)
 {
 Model = model;
 Make = make;
 }

 public string Model { get; set; }
 public string Make { get; set; }
 }
}

## モデル内でカスタムファセットを定義します

.DefineEventTypeメソッドを使ってコレクションモデルで新しい結果を定義します。以下の例では、結果モデルがSampleModelというモデルに追加されています。Sitecoreコンテキストでモデルを使用する場合、モデルクラスは[クライアント設定ファイルに登録](https://doc.sitecore.com/xp/ja/developers/91/sitecore-experience-platform/create-a-custom-model.html "Create a custom model")する必要があります。

using Sitecore.XConnect;
using Sitecore.XConnect.Schema;

namespace Documentation
{
 public class SampleModel
 {
 public static XdbModel Model { get; } = SampleModel.BuildModel();

 private static XdbModel BuildModel()
 {
 XdbModelBuilder modelBuilder = new XdbModelBuilder("SampleModel", new XdbModelVersion(0, 1));

 modelBuilder.ReferenceModel(Sitecore.XConnect.Collection.Model.CollectionModel.Model);
 modelBuilder.DefineEventType<CarPurchaseOutcome>(false);

 return modelBuilder.BuildModel();
 }
 }
}

> !警告結果モデルを登録しなければ、使用できません。「このインスタンスの型はスキーマ内のどの型とも対応しません」といったエラーが発生します。

## カスタムアウトカムモデルを使おう

xConnect Client APIを使って [、あなたの結果をインタラクションに追加](https://doc.sitecore.com/xp/ja/developers/91/sitecore-experience-platform/add-interaction-events.html "Add interaction events")してください。以下の例は、カスタム結果をインスタンス化する方法を示しています:

var purcaseOutcome = new CarPurchaseOutcome(DateTime.UtcNow, "DKK", 60000, "MX-5", "Mazda");

## トラッカーでカスタムアウトカムモデルを使います

トラッカー内でカスタムアウトカムモデルを使用するには、イベント変換パイプラインプロセッサを作成する必要があります。詳細については [、「カスタムイベントのトリガー」](https://doc.sitecore.com/xp/ja/developers/91/sitecore-experience-platform/triggering-custom-events.html "Triggering custom events")をご覧ください。