What’s new in Sitecore 9.1: Experience Platform

This post is part of the What’s new in Sitecore 9.1 series, Sitecore 9.1 has a lot of exciting innovation and value that will help our customers get to market faster, and ongoing refinements and enhancements to existing functionality.

In previous posted we focused on the What’s new in Sitecore 9.1 Content Management. In this post we will look at all the marketing innovations, features and enhancements within the Experience Platform. Before we dive in I want to provide context around Sitecore, this will help to understand the unique opportunity we have with Sitecore.

Starting with some history, as we all know Sitecore originally was a Content Management System. Being well known of the central hub for serving all the managed and integrated content. Over the years Sitecore evolved from web and to additional channels; including email, mobile and any other marketing channel.

The main driver was the introduction the Online Marketing Suite back in 2009. One of the first Experience Marketing solutions in the industry. Now Sitecore is a full Experience Marketing platform and the Sitecore Experience Cloud allows customers to personalize both online and offline experiences while capturing all the data; including all interactions, conversions, test results, patterns and basically any user information online and offline.

Now the great thing about Sitecore is that it’s all one native platform, both CMS and the Experience Platforms are closely tight together, it’s a truly unified platform.

Sitecore’s unified platform is one of the reasons why Sitecore is loved by developers and marketers.

The true power of Sitecore is in combining the analytics data with the content.  The platform provides you with the opportunity to create relevant personalized experiences in real-time.

Sitecore Content and Analytics

Continue reading “What’s new in Sitecore 9.1: Experience Platform”

Sitecore Symposium: DMS Datamodel explained slides

For my presentation about the DMS datamodel I created a great amount of slides. I didn’t have time to show all the slides because I only had about 60 minutes to do the talk. I uploaded the complete slidedeck to Slideshare including additional slides about Profiling and Automation.

The complete session has been recorded and will be shared after the Symposium.

Thanks for attending the session and for the great questions. Hope you have enjoyed the session. If you have any feedback or questions about the slides or the session you can leave a comment below.

——————————————————————-
UPDATE
——————————————————————-

The video is available here.

Also read the following reviews and summary of the session:

 

Step 2-1: Track all external links with a custom processor

This article is part of Sitecore How To: Track Exteral links with DMS series. Before starting with this step you need to be finished with Step 1: Save outgoing click to the DMS analytics database.

For this solution I want to measure all the outgoing link using the Analytics Database of Sitecore Digital Marketing System (DMS). Based on this data I want to create a report in the Sitecore Engagement Analytics that will show all outgoing clicks by page. I want to create a solution that rewrites all external links within rich-text fields and General Link fields. With this solution all external links on an existing website will be automatically rewritten and measured.

In this article I will create a solution for measuring outgoing links in the following steps:

  • Create a processor to rewrite all external links on the website.

Let get started!

Create the processor for rewriting external links

For the rewriting of the external links we are creating a Render Field Processor. This processor will fire for every field that is rendered. During this process we will rewrite the URL.

The easiest way to create a new processor is with the Visual Studio 2010  plugin Sitecore Rocks. One of the many things Sitecore Rocks does is creating Visual Studio Templates. These templates will help you extending Sitecore. Open your solution in VS2010 and add a new item. In the dialog window go to Sitecore –> Pipelines en selecteer Render Field Processor. Name the processor ExternalUrlReWriterProcessor.cs and click Add.

Sitecore custom processor

The Render Field Processor Template will generate two files for you; the ExternalUrlReWriterProcessor.cs and a  ExternalUrlReWriterProcessor.config.

 

Custom sitecore config processor

Modify the ExternalUrlReWriterProcessor class that all external URLs are rewritten to out /link.aspx page that we are going to create next. Below is my POC code. Please take notice of the comments and the TODO comments.

[code language=”csharp”]
public class ExternalUrlReWriterProcessor
{
public void Process([NotNull] RenderFieldArgs args)
{
// Do not modify output if the field is not a rich text field or general link
// or if the page is in page editor mode
if ((args.FieldTypeKey != “rich text” && args.FieldTypeKey != “general link”) ||
String.IsNullOrEmpty(args.FieldValue) ||
Sitecore.Context.PageMode.IsPageEditorEditing)
{
return;
}

//Check if URL is external link
if (args.FieldTypeKey == “general link”)
{
Sitecore.Data.Fields.LinkField linkField = args.GetField();
//Don’t change the link if it’s not a external link
if (linkField.LinkType != “external”)
return;

}
string fieldValue = args.Result.FirstPart;

string changedUrl = Regex.Replace(fieldValue, @”href=””(.*?)”””, delegate(Match match)
{
//Regex definition to check if URL contains HTTP or HTTPS (so it’s an external link)
Regex rgxExternal = new Regex(@”Regex rgxExternal = new Regex(@”(((http(s?))\://){1}\S+)”);”);

string orriginalUrl = match.Groups[1].Value.ToString();
if (rgxExternal.IsMatch(orriginalUrl))
{
//Rewrite the url to the redirect item
//TODO: Make the path configurable
return @”href=””/link.aspx?url=” + orriginalUrl + @””””;

}

return match.Value;
}, RegexOptions.Compiled);

args.Result.FirstPart = changedUrl;

}
}

[/code]

If you check your website all external links will be rewritten to /link.aspx?url=[EXTERNAL LINK]. Now let’s create the links.aspx and save the outgoing link information to the DMS Analytics database.

Test if it works

You can test if the solution is working on your website by testing the following functionalities

Action Expected result
Create a internal link in a rich-text field The link is not rewritten.
Create a external link in a rich-text field The link is rewritten to /link.aspx?url=[THE LINK]
Create a internal link in a general link field The link is not rewritten.
Create a external link in a general link field The link is rewritten to /link.aspx?url=[THE LINK]
Click a external URL The visitor is redirected to the external website.

Converting .mrt reports from OMS to DMS

In this article I’m going to explain how to convert .mrt reports from the Sitecore Online Marketing Suite (Sitecore 6.4) to the Sitecore Digital Marketing System (Sitecore 6.5).

Report related changes between OMS and DMS

Both the OMS and the DMS use .mrt reports for Analitics reporting. There are two mayor changes between the OMS and DMS reporting; a full redesign of the datamodel and the location of the SQL query for the report data.

Mapping the datamodel of the OMS with the DMS

If you compare the datamodel of the OMS to the DMS datamodel you will see that it’s completely different. But the main concept of both datamodels is almost the same.

OMS table DMS Table Description
GlobalSession Vistors Contains the Visitor information.
Session Visits Contains the information of all the visits. A visits is underneed a Visitors.
Page Pages Contains all pages that are visited and are connected to a Session.

The following drawing will show the relation of Visitor->Sessions->Pages.

image

In this example we have a Continue reading “Converting .mrt reports from OMS to DMS”