Blogs from Episerver teams2022-02-24T02:42:01.0000000Z/product-blogs/the-personalization-blog/Optimizely WorldUsing Postman with Optimizely Data Platform (ODP) APIs for a custom demo scenario/blogs/renan-maluenda/dates/2022/2/how-to-build-tailored-demos-in-optimizely-data-platform-odp-using-postman/2022-02-24T02:42:01.0000000Z<p>As a Solution Architect at Optimizely, building custom demos that tell a compelling story to a prospect or customer is just part of my role. But as a passionate Marketing Technologist, I really enjoy helping our audience picture our solutions as part of their own ecosystem, embedded in their day to day processes and helping address some of their pain points. </p>
<p>With that view in mind, a few weeks ago as I explored what we could do programmatically via the APIs available for Optimizely Data Platform (ODP), I came up with this quick guide on how to use Postman to tailor a bespoke narrative, with custom products and events, for a winning ODP demo session. While this may be applicable only to internal employees and partners with access to a sandbox, if you're reading this and you're an Optimizely customer, I hope this helps to spark some ideas in terms of what is possible in ODP via APIs. </p>
<p>The steps below assume you have access to an ODP instance. If you're an Optimizely Partner and would like access, you can submit a request via the <a href="https://partnercenter.optimizely.com/s/">Partner Portal</a>. </p>
<h2>Preparing your scenario</h2>
<ol>
<li>Go to your Product Directory (<em>Company > Products > Product Directory</em>) to choose what products you'd like to taylor for your demo. Note down the Product IDs (example highlighted below) as they will be required later for your POST requests in Postman.<br /><br /><img src="/link/fdcf80534bfe440bb6df26a3bcef70c5.aspx" width="809" height="154" /><br /><br />Note: If you're working in a shared ODP instance, don’t edit product titles, IDs, SKUs unnecessarily to avoid breaking any existing reports and segments based on product information. If you need to add new products, you can import a CSV file in <em>Settings > Data Management > Integrations</em>, or use the same example POST request shown below, with a new and unique product ID).<br /><br /><img src="/link/c8fad36d7003455cae4bd2e369b9ac95.aspx" width="804" height="176" /><br /><br /></li>
<li>Go to <em>Customers > Profiles</em> and pick an example customer profile to be used as part of your scenario, as you will need the email identifier for the API query. <br /><br /><img src="/link/d7513d740ade4c2c8cd3efa2bfbd6a79.aspx" width="1065" height="125" /><br /><br /></li>
</ol>
<h2> Building your requests in Postman</h2>
<ol>
<li>Using <a href="https://www.postman.com/">Postman</a>, we will use the <a href="https://docs.developers.zaius.com/api/rest-api/events">Events API</a> to push eCommerce sample events for the selected products and customer profile(s), relevant to your scenario. Create a new HTTP request and ensure it’s setup as a POST request with the appropriate API keys in place. (Your API key can be found in ODP under <em>Account Settings > Data Management > APIs</em>). <br /><br /><img src="/link/4d86e209f43842c69307f171d2db546b.aspx" width="1056" height="344" /><br /><br />The Product API reference can be found <a href="https://docs.developers.zaius.com/core-concepts/use-cases/ecommerce/products">here</a>. In this demo scenario, the customer will browse through a couple of different TVs (<em>"product detail view"</em>), add one to their shopping cart and finally make a purchase ("convert") in the following day.<br /><br /></li>
<li>Using the product IDs and customer profile selected earlier, we submit a POST request in Postman with <em>product detail views</em> and the <em>add to cart</em> events to that customer profile.<br />
<pre><span style="font-family: 'andale mono', monospace;">[</span><br /><span style="font-family: 'andale mono', monospace;"> {</span><br /><span style="font-family: 'andale mono', monospace;"> "type": "product",</span><br /><span style="font-family: 'andale mono', monospace;"> "action": "detail",</span><br /><span style="font-family: 'andale mono', monospace;"> "identifiers": {</span><br /><span style="font-family: 'andale mono', monospace;"> "email": "renan.maluenda@optimizely.com"</span><br /><span style="font-family: 'andale mono', monospace;"> },</span><br /><span style="font-family: 'andale mono', monospace;"> "data": {</span><br /><span style="font-family: 'andale mono', monospace;"> "ts": 1642633200, //Optional, timestamp in Epoch format</span><br /><span style="font-family: 'andale mono', monospace;"> "product_id": "moab_7"</span><br /><span style="font-family: 'andale mono', monospace;"> }</span><br /><span style="font-family: 'andale mono', monospace;"> },</span><br /><span style="font-family: 'andale mono', monospace;"> {</span><br /><span style="font-family: 'andale mono', monospace;"> "type": "product",</span><br /><span style="font-family: 'andale mono', monospace;"> "action": "detail",</span><br /><span style="font-family: 'andale mono', monospace;"> "identifiers": {</span><br /><span style="font-family: 'andale mono', monospace;"> "email": "renan.maluenda@optimizely.com"</span><br /><span style="font-family: 'andale mono', monospace;"> },</span><br /><span style="font-family: 'andale mono', monospace;"> "data": {</span><br /><span style="font-family: 'andale mono', monospace;"> "ts": 1642633800,</span><br /><span style="font-family: 'andale mono', monospace;"> "product_id": "moab_7b"</span><br /><span style="font-family: 'andale mono', monospace;"> }</span><br /><span style="font-family: 'andale mono', monospace;"> },</span><br /><span style="font-family: 'andale mono', monospace;"> {</span><br /><span style="font-family: 'andale mono', monospace;"> "type": "product",</span><br /><span style="font-family: 'andale mono', monospace;"> "action": "add_to_cart",</span><br /><span style="font-family: 'andale mono', monospace;"> "identifiers": {</span><br /><span style="font-family: 'andale mono', monospace;"> "email": "renan.maluenda@optimizely.com"</span><br /><span style="font-family: 'andale mono', monospace;"> },</span><br /><span style="font-family: 'andale mono', monospace;"> "data": {</span><br /><span style="font-family: 'andale mono', monospace;"> "ts": 1642634100,</span><br /><span style="font-family: 'andale mono', monospace;"> "product_id": "moab_7b"</span><br /><span style="font-family: 'andale mono', monospace;"> }</span><br /><span style="font-family: 'andale mono', monospace;"> }</span><br /><span style="font-family: 'andale mono', monospace;">]</span></pre>
<br />Note the timestamps added for each event. These are optional for product events, however they may be a good idea for a better story narrative. Without them, all events in the request above will be added with the same timestamp when you submit the request.<br /><br /></li>
<li>You should see an <em>Accepted</em> request in Postman (status <em>202</em>). The Product API reference <a href="https://docs.developers.zaius.com/api/rest-api/products">here</a> shows examples of status <em>400</em> and <em>403</em>. If you get any errors, check your API keys and <em>Product ID</em>.<br /><br />
<pre>{<br /> "title": "Accepted",<br /> "status": 202,<br /> "timestamp": "2022-01-20T04:11:54.444Z"<br />}</pre>
</li>
<li>If you want to take the story further, into an eCommerce conversion, you can add a purchase event and relevant order information into your POST request. Make sure you still have the correct Product ID and email identifier.<br /><br />
<pre>[<br /> {<br /> "type": "order",<br /> "action": "purchase",<br /> "identifiers": {<br /> "email": "renan.maluenda@optimizely.com"<br /> },<br /> "data": {<br /> "ts": 1642648500, //Optional, timestamp in Epoch format<br /> "order": {<br /> "order_id": "OR4356", //Make something up and unique here <br /> "total": 299.00,<br /> "items": [<br /> {<br /> "product_id": "moab_7b",<br /> "price": 299.00,<br /> "quantity": 1,<br /> "discount": 0.00,<br /> "subtotal": 299.00<br /> }<br /> ]<br /> }<br /> }<br /> }<br />]</pre>
<br />
<p>Check the <em>Order Reference</em> in the Event API documentation <a href="https://docs.developers.zaius.com/api/rest-api/orders">here</a> for examples on <em>Returns</em>, <em>Refunds</em> and <em>Order Cancellation</em>.</p>
<p>Note: It can take up to 10 minutes for these events to show in the UI post data processing, but they should be available for querying immediately via the GraphQL explorer. <br /><br /><strong>All done! You now have created custom events for your bespoke scenario in ODP.<br /><br /><img src="/link/c3b4b48a7c644768ad914719dfb11359.aspx" width="1005" height="580" /><br /></strong></p>
</li>
</ol>
<p><strong></strong></p>
<h2><strong>Wrapping Up</strong></h2>
<p>This was initially a step by step I shared internally with our presales team. But hopefully this walkthrough scenario can help you in building your own demo or test scenarios, no matter if you're an Optimizely partner getting your hands in ODP for the first time, or a customer exploring our APIs.</p>
<p>For more on ODP custom event tracking, I highly recommend checking <a href="https://blog.danisaacs.net/optimizely-data-platform-odp-tracking-and-usage-examples/">this article</a> posted by our own Dan Isaacs with very detailed examples for custom tracking in ODP. </p>
<p>- Renan </p>Planned maintenance of Visitor Intelligence data storage in East US/blogs/Dmytro-Duk/Dates/2020/8/planned-maintenance-of-visitor-intelligence-data-storage-in-east-us/2020-08-07T14:06:58.0000000Z<p>Data storage used by Visitor Intelligence and Profile Store in East US requires maintenance to enable Microsoft to migrate resources to newer hardware in Azure.</p>
<p>The maintenance is planned on Monday, August 10, 02:00-04:00 AM Eastern Time Zone, when the traffic is minimal in East US. This maintenance will not affect any other regions.</p>
<p>While most product updates and changes cause no services interruption, this update may result in a delay in event processing during the update. The product will catch up with event processing after the update is completed and events tracked during the update should not be lost. Please try to minimize using Profile Store REST API during the maintenance, please avoid updating data.</p>
<p>We apologize for any impact that this maintenance may have. The team works hard to minimize the impact of this maintenance, and to provide our customers with as much information as possible.</p>Visitor Group Tracking into Episerver Insight/blogs/david-buo/dates/2019/11/visitor-group-tracking-into-episerver-insight/2019-11-13T14:43:56.0000000Z<p>In August Chris Sharp wrote about the newly released top-level filter for Visitor Groups in Episerver Insight (<a href="/link/506c9359e3e2449881fe8ebdc1a77235.aspx">link to blog</a>). To make use of this filter it requires additional tracking into the Profile Store (underlying datastore for Episerver Insight) with the visitor group information. This blog will show an example of how to track Visitor Groups into Profile Store with similar syntax to the standard [PageViewTracking] attribute on the controller action method, that is included in <em>EPiServer.Tracking.PageView. This content was presented at Episerver Ascend in London.</em></p>
<p>In order to get started, we need to install the following packages (full documentation <a href="/link/9761986c6c7944b185f5f94bbaf57125.aspx">here</a>)</p>
<ul>
<li><em>EPiServer.Tracking.Core</em>. Generic package for all tracking.</li>
<li><em>EPiServer.Tracking.Cms</em>. Base classes for tracking of CMS data.</li>
</ul>
<p>For a complete tracking of your website, I would also recommend installing the pageview and commerce tracking</p>
<ul>
<li><em>EPiServer.Tracking.PageView</em>. Native integration for tracking of CMS data.</li>
<li><em>EPiServer.Tracking.Commerce</em>. Native integration for tracking of Commerce data.</li>
</ul>
<p>To follow the [PageViewTracking] notation I have created a custom [VisitorGroupTracking] that does the following:</p>
<ol>
<li>Make sure we're not in Edit mode</li>
<li>Get all visitor groups</li>
<li>Check which visitor groups the principal is a member of
<ul>
<li>I will track both member and non-member</li>
</ul>
</li>
<li>Create a tracking event</li>
<li>Send tracking data</li>
</ol>
<p>Complete source code can be found <a href="https://gist.github.com/davidbuo/5a42c55237031823c6a9d7713db7f7b0">here</a>.</p>
<p>There was a good discussion at the event around performance, and how often a visitor group should be tracked, and as always I believe that it's worth considering the use case for the tracked visitor group and design the tracking to conform to that. Also, it's a good idea to make sure the tracking isn't affecting your websites customer experience (performance) negatively.</p>
<p>Feel free to provide ideas or comments below, especially if you already have strategies around Visitor Group Tracking.</p>Episerver Insight UI Updated for Visitor Group Tracking/blogs/Chris-Sharp/Dates/2019/8/episerver-insight-ui-updated-for-visitor-group-tracking/2019-08-08T07:14:26.0000000Z<p><span style="font-style: inherit !important; font-weight: inherit !important;">If you’ve looked recently at the Episerver Insight UI, you’ll likely notice a new top-level filter for “Visitor Group”. While the Insight UI is updated automatically, the tracking of the visitor group is not automatic, and it is important to know that visitor group tracking is a developer task. To take advantage of this new filter, you will need to update your solution’s tracking events to send the user’s visitor group information, as the standard page view tracking does not add this type of tracking data by default.</span> </p>
<p>This new visitor group filter helps to address some highly requested use cases for Insight. As of right now, you can't create Insight segments based on events that are tracked on the user (note: it is on the roadmap). Segments are created based on information in the user's profile. More information on creating segments can be found here: <a href="/link/615051abe25b4f68a6961b97cfe696ef.aspx">https://world.episerver.com/documentation/developer-guides/profile-store/profile-store-api/segments/</a></p>
<p>For example, say I want to create a group of users who have visited the "Contact Us" in a specific geographic region. In Insight, this currently can't be done. BUT! It can be done using visitor groups. Furthermore, it's very possible that many of the actions/scenarios that users want can be satisfied using visitor groups. Now that we can now track visitor groups in Insight, if you wanted to see a report for those users who have done that action, just create a visitor group with the criteria, track the visitor groups, and create a segment of users in that visitor group.</p>
<p>The usage of this filter requires additional tracking into the Profile Store with the visitor group information. Visitor group tracking has been supported since the release of EPiServer.Profiles.Client 1.9.0 in <a href="/link/c868f2337db241e4ba2d1a7b5501e0a5.aspx">update 271</a>. Specifically, the visitor group tracking method is part of EPiServer.Tracking.Cms version 1.9.0. The documentation for visitor group tracking can be found here: <a href="/link/8dd21556dc2a48a383d948f5cf30ad70.aspx">https://world.episerver.com/documentation/developer-guides/tracking/visitor-group-tracking2/</a>.</p>
<p><img src="https://i.imgur.com/Xypc7bN.png" /></p>Episerver Advance content recommendations block/blogs/magnus-kjellander/dates/2019/1/episerver-advance-content-recommendations-block/2019-01-08T12:54:19.0000000Z<p>As you probably have heard we launched Episerver Advance earlier this year. Advance is the latest addition to our personalization suite and is a service for content personalization and enables you to recommend content to your visitors at any given time that vary based on their experience and needs.</p>
<h3>How it works</h3>
<p>The process can be described with the following steps:</p>
<ol>
<li>Track – every interaction with your site is tracked back to Episerver Advance.</li>
<li>Create – your editors create content, preferably lots of it and diverse.</li>
<li>Analyze – the machine learning algorithms analyze tracking behavior and content.</li>
<li>Visualize – the service sends recommendations back to the user based on the analysis.</li>
</ol>
<h3>Getting started</h3>
<p>As an example and help you get stared with Episerver Advance we have created a block available on Github, <span><a href="https://github.com/episerver/ContentRecommendationBlock">https://github.com/episerver/ContentRecommendationBlock</a>. </span><span>The block shows a number of recommended pages set by the editor to the visitor. No styling has been added to the block but what that’s not a priority here. </span></p>
<p>I have set the content recommendations block up on a clean Alloy site. The first thing that needs to be done is getting an Advance account. When ordering Advance, you will get configs for both tracking and getting recommendations that need to add to your web.config.</p>
<p>The next step is to install nuget-packages. The packages needed are EPiServer.Tracking.PageView and Episerver.Personalization.CMS. EPiServer.Tracking.PageView is for tracking and Episerver.Personalization.CMS is the one used for getting the recommendations. The packages need the configs for your Advance account and can now be set.</p>
<p>EPiServer.Tracking.PageView:</p>
<pre class="language-markup"><code><add key="episerver:profiles.TrackingApiBaseUrl" value="ChangeThis" />
<add key="episerver:profiles.TrackingApiSubscriptionKey" value="ChangeThis" />
<add key="episerver:profiles.ProfileStoreTrackingEnabled" value="false" />
</code></pre>
<p>Episerver.Personalization.CMS:</p>
<pre class="language-markup"><code><add key="episerver:RecommendationServiceKey" value="ChangeThis" />
<add key="episerver:RecommendationServiceSecret" value="ChangeThis" />
<add key="episerver:RecommendationServiceUri" value="ChangeThis" />
</code></pre>
<p>The tracking needed for Advance is, as you might have figured from the name of the package, pageviews. Using the package, we add [PageViewTracking] to the page controller methods we want to track, as below. Add tracking to all as many of your pages as possible, the more the better.</p>
<pre class="language-csharp"><code>public class DefaultPageController : PageControllerBase<SitePageData>
{
[PageViewTracking]
public ViewResult Index(SitePageData currentPage)
{
...
}
</code></pre>
<p>Next, I just added the project to my alloy site. The content recommendation block is using an API-call to get the recommendations, so I needed to add the following to the route config:</p>
<pre class="language-csharp"><code>System.Web.Http.GlobalConfiguration.Configure(config =>
{
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(name: “DefaultApi”, routeTemplate: “api/{controller}/{action}”, defaults: new { id = RouteParameter.Optional });
});
</code></pre>
<p>That’s it! When creating the block on the site there is only one property available for the editor.</p>
<p><img src="/link/6bbfef06f7a44ec2903738a25e8fbf27.aspx" /></p>
<p>And then on the site the block containing the links.</p>
<p><img src="/link/ac6a56b544a24cd1ae3b59c121309137.aspx" /></p>Episerver Advance launched!/blogs/joakim-platbarzdis/dates/2018/4/episerver-advance-launched/2018-04-09T09:08:56.0000000Z<!DOCTYPE html>
<html>
<head>
</head>
<body>
<p><span>It is with great joy I announce the general availability of our content personalization service Advance, enabling you to track visitor behavior across all your touchpoints, in order to use machine learning to determine the relationship between that behaviour and your content, showing the content that is most suitable for your visitors at any given time.</span><br /><span> </span></p>
<p><img src="/link/4a29776ae6554d028e0c3c141c9f474c.aspx" alt="Image Advance overview.gif" /></p>
<p><span>You are now able to order Advance via your sales representative. Demo accounts <em>are not available at this time</em> but we will post information here once that has resolved.</span><br /><span> </span><br /><span>Meanwhile you could have a look at the <a href="https://github.com/episerver/ContentRecommendationBlock">sample recommendations block that we have added to Github</a></span><span>, and the new nuget packages <a href="http://nuget.episerver.com/package-details/?packageId=EPiServer.Tracking.PageView">EPiServer.Tracking.PageView</a> </span><span>and <a href="http://nuget.episerver.com/package-details/?packageId=EPiServer.Personalization.CMS">EPiServer.Personalization.CMS</a></span><br /><span> </span><br /><span>Advance is featured in our roadmap updates, so stay tuned for upcoming functionality there!</span><br /><br /></p>
</body>
</html>Get started with Episerver Perform for personalized product recommendations/blogs/marcus-hoffmann/dates/2017/11/get-started-with-episerver-perform-for-personalized-product-recommendations/2017-11-08T12:12:02.0000000Z<!DOCTYPE html>
<html>
<head>
</head>
<body>
<p><span>This year, Episerver has released a new suite of personalization products </span><span>combining machine learning, artificial intelligence, and statistical analysis</span><span>. The suite includes Episerver Perform, Episerver Reach, Episerver Advance (beta out Q1 2018), Episerver Insight (beta out now) and Personalized Find. All of them are SaaS services. </span></p>
<p>Personalization has been around a long time in Episerver based on visitor groups. Now the personalization is brought to the individual level. As a visitor to an e-commerce site, you now get automatic product recommendations based on behaviour. This part of our new Personalization suite is called Episerver Perform and is covered in this blog post.</p>
<p>The product recommendations are based on machine learning and behavioural data. Reports today show that visitors want personalization as part of their shopping experience, and that this in turn increases the revenue of the site.</p>
<h2> </h2>
<h2>Create an account and get on-boarded</h2>
<p>First of all, as a partner you can email <a href="mailto:personalization@episerver.com">personalization@episerver.com</a> to get a free demo/test account. Pricing for Episerver Perform is based on traffic, just as our DXC Service, so you only pay for what you need. For a quote contact your partner or customer manager at Episerver.</p>
<p>There is an on-boarding process included before the implementation takes start where Episerver together with you review your site and set up strategies for the recommendations. Our team have deep knowledge of how to setup strategies based on your goals.</p>
<h2> </h2>
<h2>How does it work?</h2>
<p>The personalization process can be described in three parts:</p>
<p>1. Capture - data is submitted to Episerver Perform by sending product data as well as behaviour data such as clicks, carts, orders</p>
<p>2. Analyse - our algorithms analyse product data and customer profiles</p>
<p>3. Visualize - relevant recommendations are sent to the right visitors</p>
<h2> </h2>
<h2>Installation and setup</h2>
<p>There are different ways to integrate Episerver Perform on the site. If you are running Episerver Commerce v11.3 or later there is a native integration supported by adding a nuget package to the site. This gives many advantages and is fast to get started with as the basic job is already done.</p>
<p>If you use an older version of Episerver Commerce, there is a Javascript API and a server-based API to use, but requires more work than the native API. Below will focus on the native integration <em>(a</em><span style="font-style: italic;"> native version of the Javascript API will also be released).</span></p>
<p>Get the nuget packages from here:<br /><a href="http://nuget.episerver.com/en/?search=EPiServer.Personalization.Commerce"><span>http://nuget.episerver.com/en/?search=</span><span>EPiServer.Personalization.Commerce</span></a><span> </span></p>
<p><strong>Note:</strong> the package was earlier called "EPiServer.Recommendations.Commerce" in the beta version, supported from Commerce v10.4. If you already are using this version you need to update to the new version. See Gustavs blog post for more details regarding the new nuget packages and their updates. <br /><a href="/link/a074a9b3cccd4e3494ff44c86188aa6f.aspx">https://world.episerver.com/blogs/the-episerver-personalization-blog/dates/2017/11/new-nuget-packages-for-our-episerver-personalization-suite/</a> </p>
<p>The package will add a couple of appsettings, where you need to configure your account details such as site url and security token.<br /><a href="/link/86a5c5639e3f4892aed28c6766d5bc77.aspx#Installingandconfiguring">http://world.episerver.com/documentation/developer-guides/commerce/personalization/recommendations/#Installingandconfiguring</a></p>
<p>It also creates the scheduled job which will export the product data from Episerver Commerce to Episerver Perform. If you want to customize the export, this is also possible using the new nuget package.<br /><a href="/link/021481efb63f498bac622eb74ec70041.aspx">http://world.episerver.com/documentation/developer-guides/commerce/personalization/customizing-exported-product-information/</a></p>
<h2> </h2>
<h2>Start tracking</h2>
<p>Then you need to add the recommendations to your templates and start tracking visitor behaviour and actions such as pages visited, adding to cart, creating orders etc.</p>
<p>By default, Episerver Perform comes with tracking types and widgets for the Home, Product, Search, Category, and Basket pages. Tracking types describe the various actions that visitors can track (more tracking types are available and can be added to the account).</p>
<p>Widgets describe how recommendations should be displayed. For the various recommendations, the on-boarding process sets out the strategies that apply to each widget. Usually you are working with different strategies on the different pages. </p>
<p>Strategies can for example for the Home page (Start page) be targeted on abandoned or visited products or cross sells on earlier orders. On the Category pages recommendations could for example be items linked to browsing in category or emerging and bestseller products in category. All strategies are based on a set of different algorithms built in to Episerver Perform.</p>
<p>On the Product page, there are two widgets included in the standard package. Strategies for the Product page are often setup as matching or alternative products. For a fashion site, it could also be popular cross sells. On the Basket or Checkout page recommendations are often setup as items linked to basket items or items of lower value to push the customer over the limit for free shipping.</p>
<p>Based on the strategies given the recommendation engine will give relevant suggestions for all visitors based on their individual behaviour!</p>
<p>As described above, the exact strategies are defined per site as part of the on-boarding process. The strategies can then be changed or updated as time goes on.</p>
<p><img src="/link/3d08700d692944699294f4e252253435.aspx" width="800" alt="Image perform-recommendations.png" /></p>
<p><span>Tracking can be done both by adding a tracking attribute to the controller actions and by calling the tracking service directly. Tracking of specific actions needs to be done by calling the tracking service, for example adding to cart, or creating an order. Tracking of browsing a category or a product is easiest </span><span>achieved </span><span>by just adding the tracking attribute to the controller. </span></p>
<p>See examples for more details:<br /><a href="/link/86a5c5639e3f4892aed28c6766d5bc77.aspx#Trackingandrecommendations">http://world.episerver.com/documentation/developer-guides/commerce/personalization/recommendations/#Trackingandrecommendations</a></p>
<p>Our demo site Quicksilver found on Github has all this functionality already included to start from.<br /><a href="https://github.com/episerver/Quicksilver">https://github.com/episerver/Quicksilver</a></p>
<h2> </h2>
<h2>Reports and merchandizing capabilities</h2>
<p>From the Personalization Portal (menu integration in CMS to be released soon) you get various types of reports on orders, revenue, products sold and much more based on the recommendations given from Episerver Perform.</p>
<p><img src="/link/9db480c4221141abb12d43757d8de8df.aspx" width="800" alt="Image perform-dashboard.png" /></p>
<p>There are statistics based on page types (tracking types) and widgets. You can for example see which products are high converting vs low converting based on their traffic, and take different actions based on this. </p>
<p><img src="/link/13bc50b529da42a7b8d999e34ab2d301.aspx" width="800" alt="Image perform-stats-converts.png" /></p>
<p>In Episerver Perform there is also a merchandizing functionality where you can override the recommendations given. For the different widgets, you can create rules that push specific products or products with specific attributes on the different positions of the recommendation widgets.</p>
<p><span>This is really functionality where Episerver Performs stands out from its competitors! You can combine the </span><span>strength </span><span>of the AI with the flexibility to also do merchandizing together with the recommendations. </span></p>
<p><span><img src="/link/5fe65574d88a4361b12b33cdb0118c2f.aspx" width="800" alt="Image perform-merchandizing.png" /></span></p>
<p>Besides the Personalization Portal, as a Episerver Personalization customer, you will also get a monthly report with a summary of the result from your personalization. </p>
<p>Send an email to <a href="mailto:personalization@episerver.com">personalization@episerver.com</a> today to start testing Episerver Perform! Or <a href="http://www.episerver.com/contact/new/contact-us/">contact Episerver to find out more</a>.</p>
<p>This was an introduction to Episerver Perform. Episerver Reach will give you the same functionality to use in your email marketing. That will be covered in another blog post.</p>
</body>
</html>