2

我们使用的是 Sitecore 6.5,我们设置了电子邮件活动,并且电子邮件会在注册用户生命周期的不同阶段自动触发。

我的任务是获取统计信息 - “已发送”、“打开率”和“点击率”的电子邮件总数(这是用户单击电子邮件上的链接并访问我们的网站)。

有谁知道如何使用 Sitecore Analytics API 做到这一点。我需要提取此信息并将其显示为报告。

我是 Analytics 的新手,任何帮助都将不胜感激。

编辑:我需要在网页中将其显示为 4 列:日期、发送的电子邮件总数、打开的电子邮件总数和点击的电子邮件总数。因此,如果您能指出我正确的 API,那就太好了。

谢谢

4

2 回答 2

5

Jack - 在 Sitecore 后端,营销中心下方有一个区域,其中包含参与计划,这确实是您需要查看的地方。请记住一件事..这些有哪些特定用户可用..但它不会在报告中显示特定的“用户”。这在后端可用,但目前还不是简单的 API 调用。

所有电子邮件的跟踪都是通过参与计划和状态完成的。ECM 中的每封电子邮件都有一个名为 Engagement Plan 的字段,该字段指向用于跟踪事物的特定参与计划。在内容编辑器或营销中心浏览该参与计划将打开一个屏幕,您可以在其中查看参与计划中的状态并查看有多少电子邮件处于何种状态。ECM 参与计划包括从“排队等待发送”到打开和点击链接的所有状态,并进行了富有成效的访问。

您在 ECM 中配置的每封电子邮件都应该有一个参与计划,并且根据发送的电子邮件类型,您还可以通过单击“监控行为”来访问“已发送”文件夹中的电子邮件爆炸”。还有一个显示一些统计数据的执行仪表板,尽管这更像是一个 10000 英尺的视图。

于 2012-05-09T22:24:33.920 回答
4

我找到了获取所需数据的方法,但我使用的是 Sitecore 版本 6.6,但在 6.5 中应该是相同的。如果您选择电子邮件活动的“已发送”文件夹中的消息,您将在项目详细信息的消息预览选项卡中找到“监控行为”按钮。此按钮打开分析数据对话框,其中显示您需要的信息。现在,通过这种方式在后端获取这些信息:

//get the message item we need the statistics for
var campaignMessage = Sitecore.Modules.EmailCampaign.Util.GetMessage(itemId);

//FlowDesigner will use the sc_ContentDatabase database
Sitecore.Context.Items["sc_ContentDatabase"] = Sitecore.Context.Database;

//get the flow by plan id
var flow = new FlowDesigner().ItemsToFlow(campaignMessage.PlanId);
Assert.ArgumentNotNull(flow, "flow");

var infos = new Dictionary<string, StateInfo>();

int totalVisitorsCount = 0;
foreach (State state in flow.States)
{
    totalVisitorsCount += state.Visitors;
    infos[state.Name] = new StateInfo(state.Id, state.Name, (double)state.Visitors, default(double), default(int), string.Empty);
}

foreach (StateInfo info in infos.Values)
    info.UsersPct = (totalVisitorsCount == default(double)) ? default(double) : Math.Round((double)((info.UsersTotal / totalVisitorsCount) * 100.0), 1);

TotalUserCount = totalVisitorsCount.ToString();
SentNotCompleted = infos["Send not Complete"].UsersTotal.ToString();
InvalidAddress = infos["Invalid Address"].UsersTotal.ToString();
SoftBouncePercent = infos["Soft Bounce"].UsersPct.ToString();
HardBouncePercent = infos["Hard Bounce"].UsersPct.ToString();
MessageOpened = infos["Message Opened"].UsersTotal.ToString();
ClickedThroughPercent = infos["Clicked Through Message"].UsersPct.ToString();
VisitorBouncedPercent = infos["Visitor Bounced"].UsersPct.ToString();
MessageUnopened = infos["Message Unopened"].UsersTotal.ToString();

这是对 Sitecore 用于获取统计数据的代码的轻微修改。修改是我将项目放在字典中,这样我就可以轻松地按名称引用它们,但计算逻辑没有改变。您可以获得的状态是:

  • 收件人排队
  • 发送未完成
  • 无效地址
  • 软反弹
  • 硬反弹
  • 消息未打开
  • 消息已打开
  • 通过消息点击
  • 访客反弹
  • 非生产性访客
  • 富有成效的访客

您可以分别使用 Sitecore.Shell.MarketingAutomation.BusinessObjects.StateInfo 的 UsersTotal 和 UsersPct 属性以数字或百分比显示统计数据。

于 2013-04-03T07:51:29.750 回答