Personalisation Query

We've been asked for personalisation that updates the home page banner with a custom banner based on particular page visits. This is quite easily achieved with the personalisation tools, in theory, however we have 10 pages to spread this across. A few examples:

Visit page 1 - page 1 banner appears on homepage

Then visit page 2 - page 2 banner appears on homepage

Then visit page 7 - page 7 ....etc

etc

We've trialled a few ways to do this:

Goals - setting 10 different goals, the system doesn't allow us to determine which goal was achieved last (down to second not days)

Profiles - Point accumulation. This works the best, however if you accumulate say 50 points per page, if there's a stalemate, it doesn't always update the profile persona to the most recent card that accumulated points

Rules - hard to determine the last page the user went to, if they don't navigate to the home page directly.

So the question is, can we (out of the box) reset goals, reset profile points instantly, or some other solution to get the desired result? We're aware we could do some custom code to achieve what we need, however we want to achieve this with current default Sitecore 8 functionality, as this is the first stage of a larger personalisation rollout.

2 Replies

I'd probably go down the rules option. Inject your own pipeline step into the httpRequestBegin pipeline, after the ItemResolver, and in that step store something in System.Web.HttpContext.Current.Session that indicates what the current and previous pages are (the ID, the item name, a field on the item, whatever you want to run your rule against)

1 Move value from Session["Current"] to Session["Previous"]
2 Set Session["Current"] to PageContext.Current.Item.Name

If you wanted to you could extend this to store the last two or three pages visited. Have your rule query the Session value to test if a given page is in the list of previous pages stored.