1. 連絡先の追跡

ContactManagerリファレンス

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

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

ContactManagerクラスは、Sitecoreが基になるXConnectDataAdapterProviderに要求を渡すために内部的に使用され、新しい匿名の連絡先を保存してxConnectでファセットを設定するなど、限られた数のシナリオで必要になります。

次の例は、Sitecoreコンテキストでコンタクト マネージャーのインスタンスを取得する方法を示しています。

var manager = Sitecore.Configuration.Factory.CreateObject("tracking/contactManager", true) as Sitecore.Analytics.Tracking.ContactManager;

if (manager != null)
{
    // Use contact manager
}
メモ

進行中のセッションがないコンタクトを変更するには、xConnect Client APIを使用します。 ContactRepositoryは使用しないでください。進行中のセッションでコンタクトを更新するには、ファセットの更新に関するこのトピックを参照してください。

AddIdentifier(Guid id,ContactIdentifier識別子)

このメソッドは、バックグラウンドでxConnectを呼び出すことにより、現在の連絡先に識別子を追加します。この方法は、現在の連絡先がknownで、既知の識別子または匿名の識別子を追加する場合に使用します。 AddIdentifier() を呼び出すと、コンタクトがまだ保存されていない場合はxConnectに保存されます。

手記

このコンテキストでのidトラッカー識別子であり、xConnectによって生成されるコンタクトIDではありません。

次の例は、AddIdentifier()の使用方法を示しています。

var manager = Sitecore.Configuration.Factory.CreateObject("tracking/contactManager", true) as Sitecore.Analytics.Tracking.ContactManager;

if (manager != null)
{
    var currentContact = Sitecore.Analytics.Tracker.Current.Contact;

    manager.AddIdentifier(currentContact.ContactId, new ContactIdentifier(identifier.Source, identifier.Identifier, ContactIdentificationLevel.Known));
}

次の点に注意してください。

  • 送信しようとした識別子がすでに使用されている場合、xConnectは例外をスローします。

  • Sitecore.Analytics.Tracker.Current.Contact.Identifiersコレクションは、識別子が追加された後、現在not再読み込みされます。

CreateContact(非Null ID ID)

この方法は、トラッカーがセッションで新しいトラッカー連絡先 (Sitecore.Analytics.Tracking.Contact) を作成するために使用されます - この時点では、連絡先はxConnectに存在せず、IsNewプロパティはtrueに設定されています。

手記

このコンテキストのidトラッカー識別子 になり、xConnectによって生成されるコンタクトの最終IDではありません。

LoadContact(NotNull 文字列ソース,NotNull 文字列識別子)

このメソッドは、一致する識別子とソースの組み合わせを持つ連絡先をxDBから読み込み、それをSitecore.Analytics.Tracker.Contactとして表します。この方法を使用して、連絡先が存在するかどうかを確認できます。コンタクトを更新するには、xConnectクライアントAPIを使用します。

LoadContact(ガイド連絡先ID、ブール排他的= true)

このメソッドは、contactIdが連絡先の トラッカー識別子 と一致するxDBから連絡先を読み込み、それをSitecore.Analytics.Tracker.Contactとして表します。万が一、排他ロックが必要な場合は、SaveAndReleaseInSharedSessionStateを使用して連絡先を解放してください。

手記

lockは、xConnectのロックではなく、共有セッション状態のロックです。他のソースでもxConnectで連絡先を更新できます。

SaveAndReleaseInSharedSessionState(NotNull 連絡先)

この方法は、LoadContact()と組み合わせて使用 されます。排他ロックを要求した場合は、この方法を使用して解放します。

SaveContactToCollectionDb(連絡先連絡先)

この方法では、進行中のセッションを中断することなく、連絡先をxConnectに保存します。ファセットを設定する前に匿名の連絡先を保存する必要がある場合は、この方法を使用します。 contact.ContactSaveModeContactSaveMode.AlwaysSaveに設定してください。

手記

SaveContactToCollectionDb(GuidcontactId)過負荷は使用しないでください。

RemoveFromSession(Guid連絡先ID)

このメソッドは、共有セッション状態から連絡先を削除します。次の例に示すように使用します。

manager.RemoveFromSession(Sitecore.Analytics.Tracker.Current.Contact.ContactId);
Sitecore.Analytics.Tracker.Current.Session.Contact = manager.LoadContact(Sitecore.Analytics.Tracker.Current.Contact.ContactId);

連絡先は、次のリクエスト時に共有セッション状態に再ロードされます。xConnect Client APIを使用してコンタクトの ファセットに変更を加えた後でコンタクトを再読み込みする場合は、この方法を使用します。これにより、セッションにキャッシュされるデータが可能な限り最新の状態に保たれます。

SetTrackingConsent(連絡先、bool isConsentGiven)

このメソッドは、現在のサイトの連絡先の追跡同意を設定します。次に、コンタクトが新規でない場合は、選択内容をすぐにConsentInformation xConnectファセットに保存します。

manager.SetTrackingConsent(contact, true);

コンタクトが新しい場合は、現在のセッションの有効期限が切れると、ConsentInformationファセットと同時に保存されます。

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