1. イベントの追跡

マーケティング定義へのアクセス

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

トラッキングのコンテキストでは、イベントをトリガーするときにマーケティング定義へのアクセスが必要です。たとえば、PageEventDataクラスはイベント エイリアスを使用してインスタンス化する必要があります。イベントのエイリアスは、次に示すように、基本IDefinitionAliasプロパティで表されます。

IDefinition ev = Sitecore.Analytics.Tracker.MarketingDefinitions.Goals[NewsletterSignupGoal.NewsletterGoalID];

if (ev != null)
{
    var newsletterId = Guid.NewGuid(); // Fake newsletter ID
    var pageData = new Sitecore.Analytics.Data.PageEventData(ev.Alias, ev.Id);

    pageData.Data = newsletterId.ToString();

    Sitecore.Analytics.Tracker.Current.CurrentPage.Register(pageData);
}

トラッカーからマーケティング定義にアクセスするには、次の2つの方法があります。

  • GoalsCampaignsなどのコレクションを定義するSitecore.Analytics.Tracker.MarketingDefinitionsプロパティを使用します。

  • 次のような定義マネージャーを使用します。 PageEventDefinitionManager

次の例は、MarketingDefinitionsプロパティを使用してすべてのキャンペーンを取得し、キャンペーンをID単位で取得する方法を示しています。

var definitionID = Guid.NewGuid();

IDefinition campaign = Sitecore.Analytics.Tracker.MarketingDefinitions.Campaigns[definitionID];

または、定義マネージャーを使用します。すべての定義タイプには、専用の定義マネージャーがあります。次の例は、キャンペーン マネージャーを使用してキャンペーンを取得する方法を示しています。

using System;
using System.Globalization;
using Sitecore.DependencyInjection;
using Sitecore.Marketing.Definitions;
using System.Globalization;
using Sitecore.Marketing.Definitions.Campaigns;

namespace Documentation
{
    public class GetCampaign
    {
        public void Example()
        {
            var definitionManager = ServiceLocator.ServiceProvider.GetDefinitionManagerFactory().GetDefinitionManager<ICampaignActivityDefinition>();

            Guid campaignActivityID = Guid.NewGuid(); // Campaign activity ID

            // Call Get() to get concrete campaign by ID and culture
            var campaignActivityDefinition = definitionManager.Get(campaignActivityID, System.Globalization.CultureInfo.InvariantCulture); // Specific culture can also be used
        }
    }
}
メモ

定義マネージャーを使用すると、独自のコードの単体テストが容易になります。

この記事を改善するための提案がある場合は、 お知らせください!