我们希望根据他们所做的所有访问来匹配访问者模式卡,而不仅仅是当前访问。细分生成器规则“匹配模式”是:
where the visitor matches the [PatternName,Pattern,selectprofilefirst=1&resulttype=Name,specific] pattern card in the [ProfileName,Profile,resulttype=Name,specific] profile
这是来自
Sitecore.Analytics.Rules.SegmentBuilder.Conditions.HasPatternCondition,Sitecore.SegmentBuilder
是否可以将此添加到页面编辑器可以为组件选择的可用个性化规则中,并在运行时对其进行评估?
Sitecore.NET 7.2(rev.140526)
答案 0 :(得分:1)
细分生成器规则旨在根据您的条件匹配大量现有访问者。如果您检查任何Segment Builder条件的代码,您将看到它们构建了一个最终针对Visitors表执行的子句。
对于当前访问仅匹配模式卡的OOTB条件渲染规则,你是正确的。值得庆幸的是,扩展规则以在所有访问中包含配置文件非常容易:
using Sitecore.Analytics;
using Sitecore.Analytics.Data.DataAccess;
using Sitecore.Analytics.Rules.Conditions;
using Sitecore.Rules;
namespace MyProject.Web.Analytics.Rules.Conditions.Patterns
{
public class VisitorHasPatternCondition<T> : HasPatternCondition<T> where T : RuleContext
{
protected override bool Execute(T ruleContext)
{
// Load all profiles into current dataset
Tracker.Visitor.LoadAll(VisitLoadOptions.Profiles, VisitorOptions.None);
return base.Execute(ruleContext);
}
}
}
LoadAll()
方法会将所有访问者的个人资料加载到当前的DataSet中。然后,我们调用基础Execute()
方法,该方法检查DataSet是否匹配模式卡。