相互作用の追加
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
client.AddInteraction()拡張メソッドを使って、新しいまたは既存のコンタクトに新しいインタラクションを追加します。インタラクションには少なくとも1つのイベントが必要で、それはコアコレクションモデルイベントまたはカスタムイベントでなければなりません。インタラクションには、コンストラクタパラメータとして渡す必要がある以下の必須プロパティがあります:
- 相互作用が属する接触点
- ユーザーやブランドなど、インタラクションの発起人
- インタラクションを作成するアプリケーションやサービスのユーザーエージェント(例えば「Chrome」)のことです。
- YouTube広告やアフィリエイト紹介など、そのやり取りをもたらしたチャンネルのID
!注新しいやり取りは、xConnectに提出された後は連絡先のInteractionsコレクションには含まれません。新しいやり取りを見るには、再度連絡先をリクエストし、「展開オプション」を使って連絡先のやり取りを取得する必要があります。
新しい連絡先に交流を追加する
以下の例は、新しい接触に新しい相互作用を追加する方法を示しています。この相互作用は単一のPageViewEventを持ちます。
!注xConnectが新しい連絡先を作成できなければ、新しいインタラクションを追加する操作も失敗します。
using Sitecore.XConnect.Collection.Model; using Sitecore.XConnect; using System; using Sitecore.XConnect.Client;
namespace Documentation { public class AddInteraction { // Async example public async void ExampleAsync() { using (Sitecore.XConnect.Client.XConnectClient client = Sitecore.XConnect.Client.Configuration.SitecoreXConnectClientConfiguration.GetClient()) { try { // New anonymous contact var newContact = new Sitecore.XConnect.Contact(); client.AddContact(newContact);
Guid channelId = Guid.Parse("86c7467a-d019-460d-9fa9-85d6d5d77fc4"); // Replace with real channel ID GUID string userAgent = "Sample User Agent";
// Interaction var interaction = new Interaction(newContact, InteractionInitiator.Brand, channelId, userAgent);
var fakeItemID = Guid.Parse("5746c4f3-7e16-40d9-ba1d-14c70875724c"); // Replace with real item ID
Sitecore.XConnect.Collection.Model.PageViewEvent pageView = new PageViewEvent(DateTime.UtcNow, fakeItemID, 3, "en") { Duration = new TimeSpan(0, 0, 30), Url = "/test/url/test/url?query=testing" };
interaction.Events.Add(pageView);
client.AddInteraction(interaction);
await client.SubmitAsync(); } catch (XdbExecutionException ex) { // Handle exception } } }
// Sync example public void ExampleSync() { using (Sitecore.XConnect.Client.XConnectClient client = Sitecore.XConnect.Client.Configuration.SitecoreXConnectClientConfiguration.GetClient()) { try { // New anonymous contact var newContact = new Sitecore.XConnect.Contact(); client.AddContact(newContact);
Guid channelId = Guid.Parse("86c7467a-d019-460d-9fa9-85d6d5d77fc4"); // Replace with real channel ID GUID string userAgent = "Sample User Agent";
// Interaction var interaction = new Interaction(newContact, InteractionInitiator.Brand, channelId, userAgent);
var fakeItemID = Guid.Parse("5746c4f3-7e16-40d9-ba1d-14c70875724c"); // Replace with real item ID
Sitecore.XConnect.Collection.Model.PageViewEvent pageView = new PageViewEvent(DateTime.UtcNow, fakeItemID, 3, "en") { Duration = new TimeSpan(0, 0, 30), Url = "/test/url/test/url?query=testing" };
interaction.Events.Add(pageView);
client.AddInteraction(interaction);
client.Submit(); } catch (XdbExecutionException ex) { // Handle exception } } } } }
既存の連絡先にインタラクションを追加する
以下の例では、既存の接触に追加される相互作用です:
using Sitecore.XConnect; using Sitecore.XConnect.Client; using Sitecore.XConnect.Collection.Model; using System;
namespace Documentation { public class AddInteractionExistingContact { public async void ExampleAsync() { using (Sitecore.XConnect.Client.XConnectClient client = Sitecore.XConnect.Client.Configuration.SitecoreXConnectClientConfiguration.GetClient()) { try { var existingContactTask = client.GetAsync<Sitecore.XConnect.Contact>(new Sitecore.XConnect.IdentifiedContactReference("twitter", "myrtlesitecore"), new ContactExecutionOptions(new Sitecore.XConnect.ContactExpandOptions()));
var existingContact = await existingContactTask;
if (existingContact != null) { Guid channelId = Guid.Parse("86c7467a-d019-460d-9fa9-85d6d5d77fc4"); // Replace with real channel ID GUID string userAgent = "Sample User Agent";
// Interaction var interaction = new Interaction(existingContact, InteractionInitiator.Brand, channelId, userAgent);
var fakeItemID = Guid.Parse("5746c4f3-7e16-40d9-ba1d-14c70875724c"); // Replace with real item ID
Sitecore.XConnect.Collection.Model.PageViewEvent pageView = new PageViewEvent(DateTime.UtcNow, fakeItemID, 3, "en") { Duration = new TimeSpan(0, 0, 30), Url = "/test/url/test/url?query=testing" };
interaction.Events.Add(pageView);
client.AddInteraction(interaction);
await client.SubmitAsync(); } } catch (XdbExecutionException ex) { // Handle exception } } }
// Sync example public void ExampleSync() { using (Sitecore.XConnect.Client.XConnectClient client = Sitecore.XConnect.Client.Configuration.SitecoreXConnectClientConfiguration.GetClient()) { try { var existingContact = client.Get<Sitecore.XConnect.Contact>(new Sitecore.XConnect.IdentifiedContactReference("twitter", "myrtlesitecore"), new ContactExecutionOptions(new Sitecore.XConnect.ContactExpandOptions()));
if (existingContact != null) { Guid channelId = Guid.Parse("86c7467a-d019-460d-9fa9-85d6d5d77fc4"); // Replace with real channel ID GUID string userAgent = "Sample User Agent";
// Interaction var interaction = new Interaction(existingContact, InteractionInitiator.Brand, channelId, userAgent);
var fakeItemID = Guid.Parse("5746c4f3-7e16-40d9-ba1d-14c70875724c"); // Replace with real item ID
Sitecore.XConnect.Collection.Model.PageViewEvent pageView = new PageViewEvent(DateTime.UtcNow, fakeItemID, 3, "en") { Duration = new TimeSpan(0, 0, 30), Url = "/test/url/test/url?query=testing" };
interaction.Events.Add(pageView);
client.AddInteraction(interaction);
client.Submit(); } } catch (XdbExecutionException ex) { // Handle exception } } } } }