ゴールをコンバージョンする

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

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

このトピックでは、トラッカーからトリガーされた目標をxConnectに保存される前にカスタム目標に変換する方法を説明します。

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

using Sitecore.XConnect; using System;

namespace Documentation { public class NewsletterSignupGoal : Goal { public static Guid NewsletterGoalID = Guid.Parse("{1779CC42-EF7A-4C58-BF19-FA85D30755C9}");

public NewsletterSignupGoal(DateTime timestamp, Guid newsletterID) : base(NewsletterGoalID, timestamp) { NewsletterId = newsletterID; }

public Guid NewsletterId { get; private set; } } }

目標変換プロセッサを作成する

  1. ConvertPageEventDataToEventBaseを継承するパイプラインプロセッサを作成します。
  2. 示した通り CreateEvent と CanProcessPageEventData を実装します。このハンドラは NewsletterId が Data プロパティに保存されていると仮定しています。

using Sitecore.Analytics.Model; using Sitecore.Analytics.XConnect.DataAccess.Pipelines.ConvertToXConnectEventPipeline; using Sitecore.Framework.Conditions; using Sitecore.XConnect;

namespace Documentation { public class ConvertNewsletterSignupGoal : ConvertPageEventDataToEventBase { protected override bool CanProcessPageEventData(PageEventData pageEventData) { Condition.Requires(pageEventData, nameof(pageEventData)).IsNotNull();

if (pageEventData.PageEventDefinitionId == NewsletterSignupGoal.NewsletterGoalID) { return true; }

return false; }

protected override Event CreateEvent(PageEventData pageEventData) { var newsletter = Guid.Empty;

Guid.TryParse(pageEventData.Data, out newsletter);

NewsletterSignupGoal newsletterSignupGoal = new NewsletterSignupGoal(pageEventData.DateTime, newsletter);

return newsletterSignupGoal; } } }

レジスタ目標変換プロセッサ

MyBrand.CustomEvents.configという新しい設定ファイルを作成し、表示通りハンドラーでパッチを当ててください:

!重要最終ゴールハンドラーの前にプロセッサーを接続しなければなりません。

目標を発動する

目標変換パイプラインプロセッサが期待するカスタムデータで目標をトリガーします:

var 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); }

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