---
title: "相互作用の追加"
slug: "add-interactions"
abstract: "新しい連絡先や既存の連絡先に交流を加える方法。"
---
# 相互作用の追加

client.AddInteraction()拡張メソッドを使って、新しいまたは既存のコンタクトに新しいインタラクションを追加します。インタラクションには少なくとも1つの[イベント](https://doc.sitecore.com/xp/ja/developers/91/sitecore-experience-platform/add-interaction-events.html "Add interaction events")が必要で、それはコアコレクションモデルイベントまたはカスタムイベントでなければなりません。インタラクションには、コンストラクタパラメータとして渡す必要がある以下の必須プロパティがあります:

-   相互作用が属する接触点
-   ユーザーやブランドなど、インタラクションの発起人
-   インタラクションを作成するアプリケーションやサービスのユーザーエージェント(例えば「Chrome」)のことです。
-   YouTube広告やアフィリエイト紹介など、そのやり取りをもたらしたチャンネルのID

> !注新しいやり取りは、xConnectに提出された後は連絡先のInteractionsコレクションには含まれません。新しいやり取りを見るには、再度連絡先をリクエストし、「展開オプション」を使って連絡先のやり取りを取得する必要があります。

## 新しい連絡先に交流を追加する

以下の例は、新しい接触に新しい相互作用を追加する方法を示しています。この相互作用は単一のPageViewEventを持ちます。

> !注xConnectが新しい連絡先を作成できなければ、新しいインタラクションを追加する操作も失敗します。

using Sitecore.XConnect.Collection.Model;
using Sitecore.XConnect;
using Sitecore.XConnect.Operations;
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 Sitecore.XConnect.Operations;
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 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 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
 }
 }
 }
 }
}