プログラムによる結果の登録

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

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

コンタクトが匿名の訪問者から既知のコンタクトや顧客に移行すると、そのジャーニー中にトリガーされたイベントやコンバージョンされたゴールを追跡できます。 成果 は、コンタクトとブランド間の1つ以上のインタラクションの結果としてSitecore Experience Database (xDB) に登録できるビジネス上の重要なイベントです。それらは金銭的または非金銭的のいずれかです。

結果により、コンタクトがウェブサイトや外部ソースとどのようにやり取りしているか、また、コンタクトが組織にどのような財務価値をもたらしているかについてのインサイトを得ることができます。ウェブサイトベースの結果の例としては、顧客がウェブサイトから商品を購入する場合が挙げられます。

Sitecoreマーケティング プラットフォームでは、パーソナライゼーション、エンゲージメント自動化を作成するか、エクスペリエンス分析やエクスペリエンス プロファイルなどのアプリケーションを使用してアクティビティを分析することで、成果に基づいて行動できます。

結果を作成および定義するには、マーケティングコントロールパネル (これには、事前定義された結果タイプと定義もいくつか含まれています) パネル。事前定義済みかカスタムかに関係なく、結果を登録するには、APIを使用して、Webサイトの訪問者によってトリガーされたときにxDBに結果イベントを登録する必要があります。結果を登録すると、結果がxDB内の既存のコンタクトにアタッチされます。

結果を登録できるAPIクラスは2つあります。

  • TrackerExtensions - Sitecore Webサイトのビジター セッションで結果を登録できるようにするTracker抽象クラスの拡張メソッド。

  • OutcomeManager - 外部データソースから結果を登録して、データベースに直接保存できます。

このトピックでは、次の方法について説明します。

Webセッション中に結果を登録する

結果を登録する標準的な方法は、TrackerExtensions APIを使用してWebセッション中に結果を登録することです。

TrackerExtensions APIでは、Webセッション中に発生する結果を管理できる拡張メソッドがTrackerクラスに導入されています。

TrackerExtensions APIを使用して結果を登録すると、結果はxDBコレクション データベースに直接保存されず、セッションに保存されます。つまり、セッションがアクティブである間は、購入プロセス中に連絡先が配送先住所を変更した場合など、結果をキャンセルまたは変更することができます。結果は、セッションが終了したときにのみ登録され、コレクション データベースに書き込まれます。

TrackerExtensions APIを使用して結果を登録することには、主に2つの利点があります。

  • Performance - 結果はセッションに保存されるため、ネットワークトラフィックが少なくなります。セッションが終了すると、結果はxDBに保存されます。

  • Data consistency - 結果は、コンタクトがxDBに保存された後にのみコレクション データベースに保存されます。これにより、すべての結果が対応する連絡先に添付されます。たとえば、接触がロボットの場合、接触は保存されないため、結果も保存されません。

Webセッション中に結果を登録するには:

  1. TrackerExtensions APIを使用するには、次の名前空間をC# ソース ファイルにインポートします。using Sitecore.Analytics.Outcome.Extensions;

  2. 次のコード サンプルで示され、次の表で説明されているように、結果のパラメーターを設定します。

    // Register an outcome in the session. It will only be saved to the database on session end
    // and only in case the contact itself is saved.
    var outcome = new ContactOutcome(outcomeId, outcomeDefinitionId, contactId);
    Tracker.Current.RegisterContactOutcome(outcome);

ContactOutcomeコンストラクタは、次のパラメータを取ります。

Parameter

Description

outcomeId

Sitecoreの結果の一意のID。

outcomeDefinitionId

マーケティングコントロールパネルの結果定義アイテムのアイテムID。

contactId

コレクション・データベースに格納されている連絡先の一意のID。

  • 次のコードを使用して、結果を登録します。この方法では、連絡先IDを内部的に設定します。

    Tracker.Current.RegisterContactOutcome(outcome);

結果のキャンセル(Webセッション)

現在のWebセッション中に結果を取り消すには、次のコード サンプルに示すようにDeleteContactOutcomeメソッドを使用します。

// Unregister an outcome that was previously registered in the current session.
Tracker.Current.DeleteContactOutcome(outcomeId);

すべての結果を取得する

現在のWebセッション中に登録されたすべての結果を取得するには、次のコード サンプルに示すように、Tracker.Current.GetContactOutcomesメソッドを使用します。

// Get all outcomes registered during the current session.
IList<IOutcome> outcomes = Tracker.Current.GetContactOutcomes();

外部ソースからの結果の登録

OutcomeManager APIを使用して、必ずしもWebサイトやセッションに関連しない結果を登録します。Outcome Manager APIは、特に他の外部ソースからのものや、他のSitecore以外のWebサイトからのWebセッションである場合に、すべてのタイプの結果を登録するために使用できます。これにより、これらの結果を最初にセッションに格納することなく、直接データベースに登録して保存できます。

たとえば、外部のCRMシステムがある場合や、オフラインのインタラクション中に登録された結果を収集したい場合に便利です。

メモ

OutcomeManager APIを使用しても、データの一貫性が確保されたり、パフォーマンスが向上したりすることはありません。

OutcomeManagerを使用して結果を登録すると、その結果はxDBコレクション データベースに直接保存されます。使用するコンタクトIDがxDBの既知のコンタクトに対応していない場合でも、結果は保存されます。

外部ソースからの結果を登録するには:

  1. OutcomeManagerのインスタンスにアクセスするには、次のファクトリ呼び出しを使用します。

    // Instantiate the outcome manager.
    var manager = Factory.CreateObject("outcome/outcomeManager", true) as OutcomeManager;
  2. 次のコードを使用して、結果を登録します。

    // Register an outcome.
    var outcome = new ContactOutcome(outcomeId, outcomeDefinitionId, contactId);
    manager.Save(outcome);
    手記

    ID.NewID, などのランダム識別子を使用して、ランダムoutcomeIdを生成できます。

  3. ContactOutcomeコンストラクタは、次のパラメータを取ります。

    Parameter

    Description

    outcomeId

    Sitecoreの結果の一意のID。

    outcomeDefinitionId

    マーケティング コントロール パネルの結果定義項目のItemID。

    contactId

    コレクション・データベースに格納されている連絡先の一意のID。

すべての結果を取得する

連絡先のすべての結果を取得するには、次の方法を使用します。

// Get all outcomes of a contact.
IReadOnlyCollection<IOutcome> outcomes = manager.GetForEntity<IOutcome>(contactId);
この記事を改善するための提案がある場合は、 お知らせください!