Sitecore ListManager Contact Lists vs Segment Lists

Sitecore List Manager 主要是用于管理用户订阅和取消订阅的,当用户订阅之后,相关的用户信息就会保存在对应的 List。
而 Sitecore 的 List 类型分为两类:Contact List 和 Segment List。
有关文档:https://sitecorehacker.com/2018/12/15/list-manager-contact-lists-vs-segment-lists/

1. Contact Lists

特点:

  1. 可以直接在 ListManager 内部添加和删除 contact;

2. Segment Lists

特点:

  1. 无法直接在 CM 的 ListManager 内操作 contact,即增删;
  2. 可以转换成 Contact Lists;
  3. 添加一个 contact 到此 List,并不算真正意义的加入了一个副本,只是引用了这个 contact;
    (比如:两个 Segment Lists 都因触发了 segment 加入了此 contact,但是数据库内部只会存在这一个 contact,所以在各自的 segment lists 内部看到的都是同一个 contact,这点与 contact lists 是最大的区别)
  4. 可以设置多个 Segment(可以定义一些规则,当触发这些事件时,用户才会加入此List,比如用户订阅了某个活动等等)
    image

关于 List 的代码操作:

关于 ListSubscribeOperation 枚举说明,详情看官方文档:https://doc.sitecore.com/xp/en/developers/exm/102/email-experience-manager/the-email-experience-manager-client-api.html

public enum ListSubscribeOperation
{
    Subscribe,
    Unsubscribe,
    UnsubscribeFromAll,
    AddToList,
    RemoveFromList,
}
// 通过 DI 获取 IClientApiService
IClientApiService clientApiService = ServiceLocator.ServiceProvider.GetRequiredService<IClientApiService>();

// 使用 UpdateListSubscription 方法来调用对应的 operation
UpdateListSubscriptionMessage message = new UpdateListSubscriptionMessage
{
	// 主要通过 ListSubscribeOperation 枚举来控制
	ListSubscribeOperation = ListSubscribeOperation.Unsubscribe
	, ContactIdentifier = contactIdentifier
	, MessageId = messageId
	, ManagerRootId = mrId
	, ListId = listId
	// 等等其他参数...
};
ClientApiService.UpdateListSubscription(message);
posted @ 2024-03-19 16:22  灵火  阅读(2)  评论(0编辑  收藏  举报