---
title: "組み込みイベントのトリガー"
slug: "triggering-built-in-events"
abstract: ""
---
# 組み込みイベントのトリガー

このトピックでは、トラッカーからの標準イベントのGoalおよびOutcomeのトリガー方法を説明します。追加データを含む [カスタムイベントもトリガー](https://doc.sitecore.com/xp/ja/developers/91/sitecore-experience-platform/triggering-custom-events.html "Triggering custom events") できます。

> !注以下のコード例はC#(.NET)で書かれ、サーバーサイドのSitecore XP追跡APIを使用しています。これらの例はSitecoreサーバー(例えばコントローラ、パイプライン、イベントハンドラ、カスタムサービスなど)上で実行されなければなりません。これらのAPIはブラウザ側のJavaScriptから直接呼び出すことはできません。ブラウザJavaScriptからイベントをトリガーするには、以下の2つの方法のいずれかがあります。
> 
> -   *JSS apps* - [JSS Tracking API](https://doc.sitecore.com/xp/en/developers/hd/22/sitecore-headless-development/en/jss-tracking-api.html)を使用して、クライアントから目標、成果、キャンペーン、イベント、ページビューを送信します。
>     
> -   *従来の Sitecore MVC サイトでは*、トラッカー APIを呼び出すサーバーエンドポイント(MVC、ウェブAPI、ハンドラー)を実装し、そのエンドポイントをJavaScriptから呼び出します(例えばfetchを使う)。
>     

## 目標を発動する

Sitecore.Analytics.Tracker.Current.CurrentPage.RegisterGoal()メソッドを使って現在のページに対して目標を登録します。このメソッドは目標定義項目を必要とします。以下の例では目標IDを用いてSitecore.Analytics.Tracker.MarketingDefinitions.Goalsから定義項目を取得します。

var goalId = Guid.NewGuid(); // ID of goal
var goalDefinition = Sitecore.Analytics.Tracker.MarketingDefinitions.GoalsgoalId;

Sitecore.Analytics.Tracker.Current.CurrentPage.RegisterGoal(goalDefinition);

セッション終了時に目標はSitecore.XConnect.Goalオブジェクトに変換されます。

## 結果を引き起こす

インタラクション全体に対して結果をトリガーすることも、特定のページに対しても可能です。結果はセッション終了時にオブジェクトSitecore.XConnect.Outcomeに変換されます。

### 相互作用の結果を促す

Tracker.Current.Interaction.RegisterOutcome()メソッドを使って、現在の相互作用に対して結果を登録します。このメソッドにはアウトカム定義項目が必要です。以下の例では、アウトカムIDを用いてSitecore.Analytics.Tracker.MarketingDefinitions.Outcomesから定義アイテムを取得します。

var outcomeDefinitionId = Guid.NewGuid(); // Replace with outcome definition ID

Tracker.Current.Interaction.RegisterOutcome(Tracker.MarketingDefinitions.OutcomesoutcomeDefinitionId, "DKK", 300.5m);

### 特定のページで結果をトリガーします

Sitecore.Analytics.Tracker.Current.CurrentPage.RegisterOutcome()メソッドを使って、現在のページに対して結果を登録します。このメソッドはアウトカム定義項目を必要とします。以下の例では、アウトカムIDを用いてSitecore.Analytics.Tracker.MarketingDefinitions.Outcomesから定義項目を取得します。

var outcomeDefinitionId = Guid.NewGuid(); // Replace with outcome definition ID

Tracker.Current.CurrentPage.RegisterOutcome(Tracker.MarketingDefinitions.OutcomesoutcomeDefinitionId, "DKK", 300.5m);

### 金銭的価値のない結果を引き起こす

示すように、金銭的価値が0.0mの結果をトリガーできます。ただし、currencyCodeパラメータはnullや空にはなりません。

var outcomeDefinitionId = Guid.NewGuid(); // Replace with outcome definition ID

Tracker.Current.CurrentPage.RegisterOutcome(Tracker.MarketingDefinitions.OutcomesoutcomeDefinitionId, "USD", 0.0m);

## キャンペーンイベントを起動する

Sitecore.Analytics.Tracker.Current.CurrentPage.TriggerCampaign()メソッドを使って、現在のページに対してキャンペーンイベントを登録します。この方法にはキャンペーン定義項目が必要です。以下の例では、キャンペーンIDを使ってSitecore.Analytics.Tracker.MarketingDefinitions.Campaignsから定義項目を取得しています:

var campaignDefinitionId = Guid.NewGuid(); // Replace with real campaign DEFINITION ID

var definition = Sitecore.Analytics.Tracker.MarketingDefinitions.CampaignscampaignDefinitionId;

Sitecore.Analytics.Tracker.Current.CurrentPage.TriggerCampaign(definition);

キャンペーンはセッション終了時にSitecore.XConnect.Collection.Model.CampaignEventオブジェクトに変換されます。キャンペーンの定義IDはCampaignDefinitionIdプロパティで表されます。

## ページイベントのトリガー

RegisterPageEvent()メソッドを使って、現在のページに対してページイベントを登録します。このメソッドはページイベント定義項目を必要とします。以下の例では、ページイベントIDを使ってSitecore.Analytics.Tracker.MarketingDefinitions.PageEventsから定義項目を取得します:

var pageEventId = Guid.NewGuid(); // ID of goal
var pageEventDefinition = Sitecore.Analytics.Tracker.MarketingDefinitions.PageEventspageEventId;

Sitecore.Analytics.Tracker.Current.CurrentPage.RegisterPageEvent(pageEventDefinition);

> !ヒント共通のページイベントIDはSitecore.Analytics.AnalyticsIdsで見つけることができます。例えばSitecore.Analytics.AnalyticsIds.FollowHitEvent。ページイベントはSitecoreツリー内のsitecore//system//Settings//Analytics//Page Eventsで定義されています。

### トリガーサーチイベント

Searchイベントは専門的なページイベントであり、カスタムデータが必要です。 Sitecore.Analytics.Tracker.Current.CurrentPage.Register() メソッドを使って現在のページに対して検索イベントを登録します。 Dataプロパティを検索時に使用されたキーワードに設定します:

var searchEvent = Tracker.MarketingDefinitions.PageEventsAnalyticsIds.SearchEvent.Guid;

Sitecore.Analytics.Tracker.Current.CurrentPage.Register(new PageEventData(searchEvent.Alias, searchEvent.Id)
{
 Data = "sitecore experience platform"
});

このイベントはSitecore.XConnect.Collection.Model.SearchEventオブジェクトに変換されます。 DataプロパティはKeywordsプロパティにマッピングされます。

### トリガーダウンロードイベント

ダウンロードイベントは専門的なページイベントであり、カスタムデータが必要です。 Sitecore.Analytics.Tracker.Current.CurrentPage.Register() メソッドを使って現在のページに対してダウンロードイベントを登録します。 ItemIdプロパティをダウンロードされたメディアアイテムのIDに設定します:

var mediaItemId = Guid.NewGuid(); // Replace with real media item ID
var downloadDefinition = Tracker.MarketingDefinitions.PageEventsAnalyticsIds.DownloadEvent.Guid;

Sitecore.Analytics.Tracker.Current.CurrentPage.Register(new PageEventData(downloadDefinition.Alias, downloadDefinition.Id)
{
 Text = "Sitecore installation guide", // Not mandatory
 ItemId = mediaItemId
});

このイベントはSitecore.XConnect.Collection.Model.DownloadEventオブジェクトに変換されます。 ItemIdプロパティはマッチングItemIdにマッピングされ、オプションのTextプロパティはマッチプロパティTextマッピングされます。

## イベント拡張

以下のシステムイベントは、専門的な拡張手法でトリガーできます。

-   Sitecore.Analytics.Extensions.CampaignExtensions.TriggerCampaignFailed() (AnalyticsIds.CampaignRegistrationFailedEvent.Guid)
-   Sitecore.Analytics.Extensions.ErrorExtensions.LongWait() (AnalyticsIds.LongRunningRequestEvent.Guid)
-   Sitecore.Analytics.Extensions.ErrorExtensions.RegisterError() (AnalyticsIds.ErrorEvent.Guid)
-   Sitecore.Analytics.Extensions.ErrorExtensions.RegisterPageError() (AnalyticsIds.PageErrorEvent.Guid)
-   Sitecore.Analytics.Extensions.ErrorExtensions.RegisterPageNotFound() (AnalyticsIds.PageNotFoundEvent.Guid)

## 別名でイベントをトリガーする

イベントの [エイリアス](https://doc.sitecore.com/xp/ja/developers/91/sitecore-experience-platform/definition-aliases.html "Definition aliases")でトリガーできます。イベントの定義IDにアクセスできない場合のみ使用してください。この方法はパフォーマンスが劣ります。

// Option 1 - pass event alias into PageEventData
Sitecore.Analytics.Tracker.Current.CurrentPage.Register(new PageEventData("Download") // Use only if ID of event is not available
{
 Text = "Sitecore installation guide",
});

// Option 2 - pass event alias into .Register() method; text parameter maps to 'Text' property on PageEventData
Sitecore.Analytics.Tracker.Current.CurrentPage.Register("Download", "Installation guide downloaded");