コンタクトの識別
コンタクトの識別は、現在のセッション、デバイス、およびコンタクト セッションを識別子と紐付けるプロセスです。コンタクトを識別するには IContactIdentificationManager.IdentifyAs()
メソッドを使用します。次に例を示します。
Sitecore.Analytics.Tracking.Identification.IContactIdentificationManager
は、一時的なサービスです。
var identificationManager = Sitecore.DependencyInjection.ServiceLocator.ServiceProvider.GetRequiredService<Sitecore.Analytics.Tracking.Identification.IContactIdentificationManager>();
Sitecore.Analytics.Tracking.Identification.IdentificationResult result = identificationManager.IdentifyAs(new Sitecore.Analytics.Tracking.Identification.KnownContactIdentifier("twitter", "myidentifier"));
if(!result.Success)
{
//check result.ErrorCode and result.ErrorMessage for more details
}
<name of a service>
は、 Sitecore.Context.Site
に依存し、それが利用可能なコンテキストで解決される必要があります。
匿名のコンタクトのセッション中に IdentifyAs()
が呼び出されると、次のいずれかが行われます。
-
識別子が存在しない場合は作成されます。現在のコンタクトが既知になります。
-
識別子が存在する場合、既存の既知のコンタクトが xConnect から読み込まれ、匿名のコンタクトとマージされます。
-
明示的な同意が必要であるが、コンタクトから同意が得られないか、同意が取り消された場合、識別は失敗します。
IdentifyAs
メソッドは次のプロパティを含む Sitecore.Analytics.Tracking.Identification.IdentificationResult
オブジェクトを返します。
-
ブール値
Success
プロパティ。識別に失敗した場合、プロパティはfalse
に設定されます。 -
ErrorCode
プロパティ (文字列) には、失敗した結果のエラー コードが含まれます。 -
ErrorMessage
プロパティには、失敗した結果に関するメッセージが含まれます。
識別子は、識別子とソースで構成されます。識別子は、ユーザー名など、コンタクトに関する一意の情報であり、識別子のソースは、識別子の提供元を示します。コンタクトは複数の識別子を持つことができます。次の表に、既知の識別子とソースの例をいくつか示します。
識別子 |
ソース |
myrtlesitecore |
|
m_McSitecore |
brandextranet |
abc10769150 |
facebookauth |
匿名の識別子を使用してコンタクトを識別することはできません。このルールの唯一の例外は、エイリアス識別子です。
トラッカー識別子
Web サイトを訪問したすべてのコンタクトには匿名のトラッカー識別子があります。トラッカー識別子は Sitecore.Analytics.Tracker.Current.Contact.ContactId
プロパティに一致し、xConnect のコンタクトの ID とは異なります。詳細については、「コンタクト ファセットの設定」トピックを参照してください。
識別するタイミング
識別は認証とは別のものであり、通常は同時に発生します。ただし、デバイスでコンタクトが識別されると、トラッカーは「分析 Cookie」を使用して、ASP.NET セッション Cookie が削除された場合でも、そのコンタクトを自動的に再識別します (再認証しません) 。
要件に応じて、複数のデバイスにわたってコンタクトを識別できる、さまざまな識別方法があります。次に例を示します。
シナリオ |
識別 |
コンタクトがログインします。 |
ユーザー名を識別子として使用できます。ログインが成功した場合は、IdentifyAs(“usernamesource”, “username”) を呼び出します。 |
コンタクトが Email Experience Manager から送信されたメール リンクを開きます。 |
メール リンクには、クエリ文字列にコンタクトのエイリアス識別子が含まれています。このデータは、コンタクトを識別するために使用されます。 |
次の例では、コンタクトが正常にログインした後にコンタクトの識別が行われます。
![]() |
識別子ソース
どのソースを使用してコンタクトを識別するかはユーザーが決めます。ソースの中央リポジトリはありません。コンタクトがすべてのシステムで同じ詳細を使用してログインする場合は、ソースがすべてのログインと登録コードで一貫していることを確認してください。
識別シナリオ
次の表は、IdentifyAs()
を呼び出したときの結果を示しています。
セッション内のコンタクト |
IdentifyAs() パラメーター |
識別 |
|
識別子は、xConnect に存在する既知のコンタクトと一致します。 |
匿名のコンタクトの情報は既知のコンタクトとマージされ、匿名のコンタクト レコードは廃止され、既知のコンタクト レコードへのポインターに置き換えられます。マージ後、コンテキスト コンタクトはセッション状態から削除されます。マージされたコンタクトには、カスタム コンタクト ファセットとインタラクションの履歴が含まれます。 |
|
識別子は、xConnect に存在する既知のコンタクトと一致します。 |
トラッカーは、既知のコンタクトに代わって現在のインタラクションを続行します。xConnect に匿名のコンタクトが存在しなかったため、マージは発生しません。 |
|
識別子は、xConnect に存在する別の既知のコンタクトと一致します。 |
現在のインタラクションは終了し、既知のコンタクトの新しいインタラクションが開始されます。新しいインタラクションは、終了したインタラクションの最後のページから始まり、現在のデバイスと既知のコンタクトの間のリンクが更新されます。 |
|
識別子は xConnect にまだ存在していません。 |
現在のコンタクトが新しい既知の識別子とともに xConnect に保存され、セッションが続行されます。 |