问题描述
当用户下载媒体项目的 PDF 扩展时,我想跟踪登录的用户电子邮件。
目前我可以跟踪下载,但不能跟踪他们登录的用户电子邮件。 请告诉我如何在 Sitecore 9 中以编程方式对其进行自定义。
解决方法
您可以使用 client.AddInteraction()
扩展方法向用户交互添加下载事件。例如,以下代码向现有联系人添加了与下载事件的新交互。
using Sitecore.XConnect.Client;
using Sitecore.XConnect.Collection.Model;
using Sitecore.XConnect;
using System;
...
using (Sitecore.XConnect.Client.XConnectClient client = Sitecore.XConnect.Client.Configuration.SitecoreXConnectClientConfiguration.GetClient())
{
try
{
var existingContact = client.Get<Sitecore.XConnect.Contact>(new Sitecore.XConnect.IdentifiedContactReference("source","identifier"),new Sitecore.XConnect.ContactExpandOptions());
if (existingContact != null)
{
Guid mediaItemId = Guid.NewGuid(); // Replace with real media item ID GUI
Guid channelId = Guid.NewGuid(); // Replace with real channel ID GUID
string userAgent = "Sample User Agent";
// Interaction
var interaction = new Interaction(existingContact,InteractionInitiator.Brand,channelId,userAgent);
Sitecore.XConnect.Collection.Model.DownloadEvent downloadEvent = new DownloadEvent(DateTime.UtcNow,mediaItemId)
{
Text = "Some PDF Asset" // Not mandatory
};
interaction.Events.Add(downloadEvent);
client.AddInteraction(interaction);
client.Submit();
}
}
catch (XdbExecutionException ex)
{
// Handle exception
}
}