---
title: "識別子を追加"
slug: "add-identifiers"
abstract: "外部システムに連絡先を識別する連絡先識別子を新規または既存の連絡先に追加する方法と更新方法。"
---
# 識別子を追加

コンタクト識別子は外部システムに対して一意に連絡先を識別し、新規または既存の連絡先に追加できます。バッチが正常に提出されると、新しい識別子は連絡先のIdentifiersコレクションで利用可能です。

## 新しい連絡先に識別子を追加する

以下の例では、既知の識別子と匿名の識別子が新しい連絡先に追加されます。識別子はContactコンストラクタに渡すか、.AddContactIdentifier() メソッドを使うことができます。

using Sitecore.XConnect;
using Sitecore.XConnect.Client;
using Sitecore.XConnect.Operations;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;

namespace Documentation
{
 public class GetContactIdentifiers
 {
 public async void ExampleAsync()
 {
 using (Sitecore.XConnect.Client.XConnectClient client = Sitecore.XConnect.Client.Configuration.SitecoreXConnectClientConfiguration.GetClient())
 {
 try
 {
 var contact = new Sitecore.XConnect.Contact(
 new Sitecore.XConnect.ContactIdentifier("twitter", "myrtlesitecore", Sitecore.XConnect.ContactIdentifierType.Known)
 );
 client.AddContact(contact);
 client.AddContactIdentifier(contact, new Sitecore.XConnect.ContactIdentifier("ad-network", "ABC123456", Sitecore.XConnect.ContactIdentifierType.Anonymous));

 await client.SubmitAsync();
 }
 catch (XdbExecutionException ex)
 {
 // Manage exception
 }
 }
 }

 public void Example()
 {
 using (Sitecore.XConnect.Client.XConnectClient client = Sitecore.XConnect.Client.Configuration.SitecoreXConnectClientConfiguration.GetClient())
 {
 try
 {
 var contact = new Sitecore.XConnect.Contact(
 new Sitecore.XConnect.ContactIdentifier("twitter", "myrtlesitecore", Sitecore.XConnect.ContactIdentifierType.Known)
 );
 client.AddContact(contact);
 client.AddContactIdentifier(contact, new Sitecore.XConnect.ContactIdentifier("ad-network", "ABC123456", Sitecore.XConnect.ContactIdentifierType.Anonymous));

 client.Submit();
 }
 catch (XdbExecutionException ex)
 {
 // Manage exception
 }
 }
 }

 }
}

> !注 .AddContactIdentifierメソッドを使って新しい連絡先に識別子を追加できます。

## 既存の連絡先に識別子を追加する

以下の例では、.AddContactIdentifier() メソッドを用いて既存の連絡先に識別子を追加します。

using System;
using Sitecore.XConnect;
using Sitecore.XConnect.Client;

namespace Documentation
{
 public class UpdateContact
 {
 // Async example
 public async void ExampleAsync()
 {
 using (Sitecore.XConnect.Client.XConnectClient client = Sitecore.XConnect.Client.Configuration.SitecoreXConnectClientConfiguration.GetClient())
 {
 try
 {
 // Retrieve contact from xConnect first
 var existingContactTask = client.GetAsync<Sitecore.XConnect.Contact>(new Sitecore.XConnect.IdentifiedContactReference("twitter", "myrtlesitecore"), new ContactExecutionOptions(new Sitecore.XConnect.ContactExpandOptions("SitecoreSkyFrequentFlyerInfo")));

 Sitecore.XConnect.Contact existingContact = await existingContactTask;

 if (existingContact != null)
 {
 client.AddContactIdentifier(existingContact, new Sitecore.XConnect.ContactIdentifier("twitter", "myrtlesitecore", Sitecore.XConnect.ContactIdentifierType.Known));

 await client.SubmitAsync();
 }
 }
 catch (Exception ex)
 {
 // Handle exceptions
 }

 }
 }

 // Sync
 public void Example()
 {
 using (Sitecore.XConnect.Client.XConnectClient client = Sitecore.XConnect.Client.Configuration.SitecoreXConnectClientConfiguration.GetClient())
 {
 try
 {
 // Retrieve contact from xConnect first
 Contact existingContact = client.Get<Sitecore.XConnect.Contact>(new Sitecore.XConnect.IdentifiedContactReference("twitter", "myrtlesitecore"), new ContactExecutionOptions(new Sitecore.XConnect.ContactExpandOptions("SitecoreSkyFrequentFlyerInfo")));

 if (existingContact != null)
 {
 client.AddContactIdentifier(existingContact, new Sitecore.XConnect.ContactIdentifier("twitter", "myrtlesitecore", Sitecore.XConnect.ContactIdentifierType.Known));

 client.Submit();
 }
 }
 catch (Exception ex)
 {
 // Handle exceptions
 }

 }
 }
 }
}

## 連絡先識別子の更新

既存の連絡先識別子は更新できません。識別子は削除と追加のみ可能です。以下の例では、既存の識別子が .RemoveContactIdentifier() 拡張子を使って削除されています。

using Sitecore.XConnect;
using System;
using System.Threading.Tasks;
using System.Linq;
using Sitecore.XConnect.Client;

namespace Documentation
{
 public class RemoveContactIdentifier
 {
 // Async example
 public async void ExampleAsync()
 {
 using (Sitecore.XConnect.Client.XConnectClient client = Sitecore.XConnect.Client.Configuration.SitecoreXConnectClientConfiguration.GetClient())
 {
 try
 {
 var reference = new Sitecore.XConnect.ContactReference(Guid.Parse("B9814105-1F45-E611-82E6-34E6D7117DCB"));

 Task<Contact> contactTask = client.GetAsync<Sitecore.XConnect.Contact>(reference, new ContactExecutionOptions(new Sitecore.XConnect.ContactExpandOptions() { }));

 Sitecore.XConnect.Contact contact = await contactTask;

 var identifierToRemove = contact.Identifiers.FirstOrDefault(x => x.Identifier == "sitecoremyrtle");

 client.RemoveContactIdentifier(contact, identifierToRemove);

 await client.SubmitAsync();
 }
 catch (XdbExecutionException ex)
 {
 // Manage exception
 }
 }
 }

 // Sync example
 public void ExampleSync()
 {
 using (Sitecore.XConnect.Client.XConnectClient client = Sitecore.XConnect.Client.Configuration.SitecoreXConnectClientConfiguration.GetClient())
 {
 try
 {
 var reference = new Sitecore.XConnect.ContactReference(Guid.Parse("B9814105-1F45-E611-82E6-34E6D7117DCB"));

 Contact contact = client.Get<Sitecore.XConnect.Contact>(reference, new ContactExecutionOptions(new Sitecore.XConnect.ContactExpandOptions() { }));

 var identifierToRemove = contact.Identifiers.FirstOrDefault(x => x.Identifier == "sitecoremyrtle");

 client.RemoveContactIdentifier(contact, identifierToRemove);

 client.Submit();
 }
 catch (XdbExecutionException ex)
 {
 // Manage exception
 }
 }
 }
 }
}

## 連絡先識別子の追加または削除の影響

連絡先ID(GUID)はxConnectにおける権威ある識別子です。既存の連絡先に新しい識別子を追加しても、その連絡先の内部連絡先ID(GUID)は変わりません。やり取り、リストメンバーシップ、マーケティングオートメーション登録、連絡先のファセット(好みを含む)などの分析データはそのまま維持されます。新しい識別子は外部システムからの連絡先解決のために即座に利用可能になります。

既存の識別子を削除しても、その識別子は連絡先を削除せず、過去のやり取りや分析も変更されません。さらに、マーケティングオートメーションプランの登録およびリストメンバーシップも保持されます。

> !重要フォーム、ログインフロー、EXM、統合など、外部システムで現在も積極的に使用されている識別子は削除しないことを推奨します。識別子に依存して連絡を解決するシステムは、識別子が削除されると機能が停止し、IDの断片化を引き起こす可能性があります。識別子の削除は、将来の追跡帰属、分析報告の整合性、リストメンバーシップの正確性、マーケティング自動化の継続性、マーケティングの優先順位の強制(例:誤った連絡先に配信解除されるなど)に間接的に影響を及ぼす可能性があります。