结果的 Sitecore 个性化

Sitecore Personalization on Outcomes

我正在尝试显示依赖于 Sitecore 结果的组件。我已确认此结果已被触发并已提供给联系人。

现在我设置了一个规则,根据此结果显示或隐藏组件。

规则永远不会通过。如果我将规则更改为类似于正在查看的特定页面之类的规则,它就可以正常工作。将其改回结果规则会导致它始终失败。

我做错了什么吗?我有完整的体验平台。

编辑: 我正在使用 Sitecore 8.0

注册码:

if (Tracker.Current == null)
            return false;

        ID group = GroupOutcomes[groupId]; //array of item ids for the outcomes
        if (Tracker.Current.HasOutcome(group))
            return false;

        ID id = ID.NewID;
        ID interactionId = ID.Parse(Tracker.Current.Interaction.InteractionId);
        ID contactId = ID.Parse(Tracker.Current.Contact.ContactId);

        var finalGroup = new ContactOutcome(id, group, contactId)
        {
            DateTime = DateTime.UtcNow.Date,
            MonetaryValue = 0,
            InteractionId = interactionId
        };

        Tracker.Current.RegisterContactOutcome(finalGroup);

我看到了提供给联系人的结果,我实际上在页面加载时显示了联系人结果,以查看定义 ID 是否匹配并且他们匹配。

回答此问题以防有人遇到类似问题。

这是 Sitecore 8.0 中的错误。这是我在 Sitecore 的帮助下解决问题的方法

解法:

1) 导航到“/sitecore/system/Settings/Rules/Definitions/Elements/Outcomes/Contact 已在任何交互期间注册结果”项并更改其文本字段,如下所示: 当前联系人在任何交互过程中注册了 [OutcomeDefinition,Tree,root=/sitecore/system/Marketing 控件 Panel/Outcomes,outcome]

2) 保存并发布项目。

3) 导航到“/sitecore/system/Settings/Rules/Definitions/Elements/Outcomes/Contact 在与值的任何交互期间已注册结果”项并更改其文本字段,如下所示: 当前联系人在货币价值 [operatorid,Operator,compares to] [value,Decimal,value ]

4) 保存并发布项目。