---
title: "カスタム目標モデルの作成"
slug: "create-a-custom-goal-model"
abstract: "カスタム目標モデルの作成方法、目標定義項目の作成方法、カスタム目標モデルの作成方法、そしてカスタム目標モデルの使い方などが含まれます。"
---
# カスタム目標モデルの作成

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

-   NewsletterSignup目標は単一の目標定義項目と共に使用されます
-   NewsletterSignup目標にはオプションの CampaignId プロパティがあります

## 目標定義項目を作成する

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

## カスタム目標モデルの作成

Goalクラスを継承する新しいクラスを作成NewsletterSignup。このクラスは固定された定義IDを持ち、他の定義IDでインスタンス化することはできません。このクラスには「CampaignId」というオプションプロパティがあり、キャンペーンの一環としてニュースレターに登録した場合に設定できます。

using Sitecore.XConnect;
using System;

namespace Documentation
{
 public class NewsletterSignup : Goal
 {
 public static Guid NewsletterSignupEventDefinitionId { get; } = new Guid("3a7e9e7e-a2ac-4ac2-8f8e-26a9c8644b23");
 public Guid CampaignId { get; set; }

 public NewsletterSignup(DateTime timestamp)
 : base(NewsletterSignupEventDefinitionId, timestamp)
 {
 }
 }
}

## モデル内でカスタム目標を定義します

.DefineEventTypeメソッドを使ってコレクションモデルで新しい目標を定義します。以下の例では、目標モデルがSampleModelというモデルに追加されています。Sitecoreコンテキストでモデルを使用する場合、モデルクラスは[クライアント設定ファイルに登録](https://doc.sitecore.com/xp/ja/developers/93/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<NewsletterSignup>(false);

 return modelBuilder.BuildModel();
 }
 }
}

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

## カスタム目標モデルを活用してください

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

var newsletterGoal = new NewsletterSignup(DateTime.UtcNow);

var campaign = Guid.Parse("e7f411bc-09e6-4872-8961-1cf078e317e9"); // Sample campaign ID
newsletterGoal.CampaignId = campaign;

## トラッカーでカスタム目標モデルを使え

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