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

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

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

トラッキングの文脈では、イベントをトリガーする際にマーケティング定義へのアクセスが必要です。例えば、PageEventDataクラスはイベントエイリアスでインスタンス化されなければなりません。イベントのエイリアスは、ベースIDefinitionのAliasプロパティで表されます。

IDefinition ev = Sitecore.Analytics.Tracker.MarketingDefinitions.GoalsNewsletterSignupGoal.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つあります:

  • GoalsやCampaignsなどのコレクションを定義する Sitecore.Analytics.Tracker.MarketingDefinitions プロパティを使用します。
  • 定義マネージャーを使いましょう。例えば PageEventDefinitionManager

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

var definitionID = Guid.NewGuid();

IDefinition campaign = Sitecore.Analytics.Tracker.MarketingDefinitions.CampaignsdefinitionID;

あるいは、定義マネージャーを活用することもできます。すべての定義タイプには専用の定義マネージャーがあります。以下の例は、キャンペーンマネージャーを使ってキャンペーンを開始する方法を示しています:

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();

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 } } }

!注定義マネージャーを使うことで、自分のコードのユニットテストが簡単にできます。

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