I just extended a little on the Virtual Roles Sample Pack project on Codeplex after Joe came to me with a challenge: “I want to push a personalized message on my web site to everyone who is an EPiServer Certified Developer and who have visited page A, B and C.”
Since personalization is one of the many passions that I like to spend every waken moment thinking about, I jumped at the challenge and decided to extend the Virtual Roles project to include this functionality. In order to do so, I added 3 new roles:
- PageViewRole – a role which you will only be in, if you have visited all pages on a specified list.
- ProfileMatchRole – a role which you will be in if your user profile has a certain parameter that matches a given criteria. Useful for targeting content to people based on the information they have provided in their profile – like Age, gender, company, industry, interests, etc.
- ScoreRole – Actually this was a bit over the top – Joe’s challenge was met with a combination of the first two, but I couldn’t help myself. This role allows you to assign scores to different counters in a user profile for different actions and/or page views. And a role based on the score role will only match visitors with a specified minimum and/or maximum score for a given counter. This means that you can assign scores to the “PotentialCustomer” counter whenever they view a product page or reference list, “ExistingCustomer” when they browse support issues or perhaps “Press” if they spend enough time going through your press-releases or looking at the “About Us” section.
You can of course combine these roles using the old MultiRole (that will match visitors belonging to a list of other roles) and use the roles to assign permissions – or simply put blocks of targeted content using the Role-Based Dynamic Content element.