Search code examples
sessionanalyticssitecoresitecore6sitecore-dms

What is the best way to join Sitecore Analytics (OMS) Session and Global Session data for conditional rules, reports, etc.?


I'm a new Sitecore Analytics developer (Sitecore 6.3.1), and I'm wondering what is going on with Sessions and GlobalSessions with regard to storing Profiles data. Upon reading the Analytics Configuration Reference, I see that:

Analytics profiles differ from security profiles and analytics tags. Analytics profiles apply to individual sessions in individual Web clients rather than to users or global sessions.

I want to accumulate scores for users based on the Global Session, but looking at the API in reflector, it appears that there is no relationship defined between the Session and GlobalSession objects... it looks like I will need to join Session and GlobalSession at the data layer, get a list of Sessions there and then build my own conditional rules for rendering, rather than use an API method or anything else baked in.

My questions are:

  1. Is my understanding correct?
  2. Are any other people trying to track users across sessions, using anything other than 'tags'?
  3. What is Sitecore's logic behind not rolling this data up at the Global Session level?

Solution

    1. Yes, the profile scores a for a single visit only by default
    2. I have seen a number of examples of sites using personalisation across all sessions
    3. Don't know the answer to this, default behaviour is for single session only.

    To modify this for version 6.3, take a look at 'Sitecore.Analytics.Pipelines.RenderingConditions.EvaluateProfileKeys' in the analytics pipelines. You will have to do a custom implementation of this class to accumulate scores for all sessions.