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.

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.

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 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.

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.



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>


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!