Sitecore Federated Experience Manager

One of the perks of working in a company that is a Sitecore partner is getting advanced previews of new products. We recently got a chance to demo one of the newest modules to come soon, the Federated Experience Manager. This product comes from the Sitecore Integrated Products Team, which is led by Adam Conn. As you may already know, part of Total Sitecore Customer Experience Platform product includes the Digital Marketing System. Digital Marketing System (DMS) provides the customer the ability to measure and analyze customer visits, profile the visitor and personalize their content. This is a great tool for any company to have, and can be leveraged to accomplish a lot of different types of goals.

Implementing a complete DMS strategy for a marketing department is a daunting task, and requires a lot of planning. The depth of a web presence for a company is very mature at this point in time, and as such, most companies already have a pretty in-depth strategy in place. When they take on the task of implementing Sitecore for their CMS platform, it can become a pretty difficult task to also port their marketing strategy. Enter the Federated Experience Manager (FXM). FXM allows Sitecore users to be able to measure, profile, target and personalize content and visitors of a site that is external to Sitecore. This, I believe could be major deciding factor for a technology choice for a customer, as the migration can be done over a longer time period, and there is less of a disruption in everyday activites of an already mature marketing department.

In a nutshell, FXM gives the ability to:

  • Tracking and analytics on non-sitecore sites
  • Tracking actions and click events on non-sitecore sites
  • The ability to maintain personalized content blocks in Sitecore and then deliver them to the non-sitecore sites.

The reports are all seen in the Engagement Analytics View. It has the ability to track the usual information – page views, page events, goals, etc. Again, from a development point of view, this is a great pro to be able to offer a customer, since now everything can be in one place. How does this all work?

Basic Tracking

The first step would be to setup the external site in Sitecore. A new external site must be setup in FXM first in order to start the process. In FXM, a external site is created with all the connection information and then the external site is crawled to build a mirror site in FMX/Sitecore. Each mirrored item corresponds to an URL on the external site and it has the same structure as the external site. Furthermore, you can use the very powerful Sitecore rules engine to define how your mirror site is built.

The external site is first configured as a new item, with the URL, protocol, etc.
The external site is first configured as a new item, with the URL, protocol, etc.

Once the mirror site is created, the only thing you need on the non-sitecore site is to add a single JS include. What this does is to send the request to Sitecore, and then Sitecore delivers a customized JS, and that JS makes the call back to the respective mirrored item in Sitecore.

Connecting the external site to Federated Experience Manager is done via a JS include.
Connecting the external site to FXM is done via a JS include.

This is very easy to plug in and you can start to measure and track right away without having to make major changes in the external site. The JS script is dynamically generated based on the setting in FXM. Basic settings for the FXM external site is pretty simple – at the least, you’ll need to enter the domain and the protocol which is how the JS coming back to Sitecore knows what site to map to and then the individual URL gets mapped to the respective mirrored item.

The Federated Experience Manager Crawler for the external site.
The Federated Experience Manager Crawler for the external site.

The crawler that comes with Sitecore will crawl the site based on default settings and create all the mirrored item. There is also an API to create a custom crawler, in case you wanted to kick it off via a monitoring tool that notifies the crawler that the external site has been updated. The default crawler can also be run on a scheduled task and via the page editor.

For the crawler, you can configure if you want only part of the site, or only a particular section, etc – just in case you don’t want the entire site to be mirrored and you can define which templates must be used for the mirrored item (so that standard values can be set). As part of the crawler rules, you can also attach different trackers to each item.

Each mirrored item in the Federated Experience Manager can be dynamically created with a specific template using the rules engine.
Each mirrored item in the Federated Experience Manager can be dynamically created with a specific template using the rules engine.

Tracking actions and click events

The second major tracking functionality FXM provides is to be able to track events. Similar to how click events can be tracked via google analytics, you can also track click events and visitor actions by attaching JS calls back to FXM. The JS that was included in the first step provides the libraries to be able to do this. If you are familiar with google analytics, you can see how easy this is, and the learning curve is very fast. The call is very flexible, and you can pass as many parameters as you want. You can pass in whatever is needed, and then configure the External Application Configuration to make sure it triggers the correct page event.

Federated Experience Manager action click event from the external site.
Federated Experience Manager action click event from the external site.
Federated Experience Manager Action Click Event Trackers using the rules engine
Federated Experience Manager Click Event Trackers
The Action Click Event can be configured using the templates and actions that come with the Federated Experience Manager.
The Action Click Event can be configured using the templates and actions that come with the Federated Experience Manager.

Personalize Content on non-Sitecore Sites

The third major functionality is to be able to personalize content on the external site. The way this is done is by first identifying the
<DIV> where the personalized content will go. Once you identify this, you can view the mirrored site via the page editor and add the rendering/sublayout you want to add.

Note: we were told that in the initial release you will need to add the placeholder manually in the external site – but in future releases you don’t need to add anything to the external site – Sitecore will know where to add it by knowing the id of the <DIV>

Using a placeholder and a div, the external site can serve up personalized content from Sitecore.
Using a placeholder and a div, the external site can serve up personalized content from Sitecore.
Once the placeholder appears, you can use functionality from the page editor to insert a rendering.
Once the placeholder appears, you can use functionality from the page editor to insert a rendering.

With these three major functionalities, FXM provides a pretty comprehensive way to be able to track external sites in Sitecore. FXM has been created with Sitecore design practices in mind, based on the provider model and uses pipelines extensively. Control of external sites is very difficult, so the Integrated Product Team thought to make sure that this was completely customizable.

There is no word on whether it will be a separate module, but we’ve been told it will be part of Sitecore 8 and be available for Sitecore 7.1 and above via a module.

Either way, I’m very much looking forward to the release of this module!

Advertisement