結果を変換する

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

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

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

using Sitecore.XConnect; using Sitecore.XConnect.Collection.Model; using System;

namespace Documentation { public class CarPurchaseOutcome : Outcome { public static Guid CarPurchaseEventDefinitionId { get; } = new Guid("2b7e9e7e-f7ac-4ac2-8f8e-26a9c8644b23");

public CarPurchaseOutcome(DateTime timestamp, string currencyCode, decimal monetaryValue, string model, string make) : base(CarPurchaseEventDefinitionId, timestamp, currencyCode, monetaryValue) { Model = model; Make = make; }

public string Model { get; set; } public string Make { get; set; } }

}

結果変換プロセッサを作成する

  1. ConvertToXConnectEventProcessorBaseを継承するパイプラインプロセッサを作成します。
  2. 示された通り CreateEvent と CanProcessPageEventData を実装します。このハンドラは、車のメーカーとモデルが CustomValues 辞書に保存されていると仮定しています。

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

namespace Documentation { public class ConvertCarPurchaseOutcome : ConvertToXConnectEventProcessorBase { protected override Event ConvertToEvent(OutcomeData entity) { var make = entity.CustomValues"Make" as string; var model = entity.CustomValues"Model" as string;

var carPurchase = new CarPurchaseOutcome(entity.Timestamp, make, model, entity.CurrencyCode, entity.MonetaryValue);

return carPurchase; }

protected override bool CanProcess(Sitecore.Analytics.Model.Entity entity) { if (entity is OutcomeData) { OutcomeData outcomeData = (OutcomeData)entity;

return (outcomeData.OutcomeDefinitionId == CarPurchaseOutcome.CarPurchaseOutcomeID); }

return false; } } }

レジスタ結果変換プロセッサ

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

!重要最終結果ハンドラーの前にプロセッサーが接続されなければなりません。

結果を誘発する

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

var ev = Sitecore.Analytics.Tracker.MarketingDefinitions.OutcomesCarPurchaseOutcome.CarPurchaseOutcomeID;

if (ev != null) { var outcomeData = new Sitecore.Analytics.Data.OutcomeData(ev, "DKK", 100000.00m);

outcomeData.CustomValues.Add("Make", "Mazda"); outcomeData.CustomValues.Add("Model", "MX-5");

Sitecore.Analytics.Tracker.Current.CurrentPage.RegisterOutcome(outcomeData); }

!注9.0 Update-1以降は、現在のやり取りに関するカスタムデータで結果をトリガーすることも可能です。

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