Page tree
Skip to end of metadata
Go to start of metadata

The Content Recommender module provides relevant content based on the user's journey in real time. It allows for assigning scores based on page visits or how the user interacts with your content, such as, clicking links or playing media.

Status INCUBATOR
TypeVisual App
SubJar
JIRARECOMMEND
Gitrecommender

Installation

Maven is the easiest way to install the modules. Add the following dependency to your bundle:

<dependency>
  <groupId>info.magnolia.recommendation</groupId>
  <artifactId>magnolia-recommender</artifactId>
  <version>${recommenderVersion}</version>
</dependency>

Versions

1.0.2Magnolia 5.6
1.0.1Magnolia 5.6

Usage

Scoring helps to identify interest in certain products, product groups, services, or topics. The identified interest scores help you to display personalized experiences.

Understanding score models

Score models identify a customer's interest when they browse your site. Their interest is captured in the form of interest points. For example, events like clicking links or page visits indicates interest on certain topics. Watching a video or interaction with the page may indicate even higher interest. These important events make up a dimension of the score model.

Not every interaction indicates the same amount of interest. Therefore you can adjust the number of value points to be assigned per specific event. Score assignment can be fine-tuned by first visit, recency, and frequency. For example, frequent and recent visits normally indicate a strong interest in a topic and should be weighted higher than points assigned for a first time visit.

Together these events, and their weights, along with frequencies make up the score model.

Score Models app

The Score Models app is where you create and manage models. It's a good idea to arrange your models into folders. Perhaps Products, Campaigns, and/or Special offers.

When creating models pick a non technical name that is understandable for your editors and marketeers. Additionally, you can give the model a description to explain what you intend to classify. The user journey score tab allows you to pre-configure your user score assignment. Therefore you don't have to configure the score on each and every content element where the model is applied.

The dependencies tab gives you an overview where your model is currently in use. This includes score models assigned for page views as well as component interactions.

Assigning score models

Score models can be assigned in a couple different ways. It can be applied directly in the Pages app or in your custom content apps.

  • Page view scoring is handled in the browser subapp. Click Edit Score Model, then assign points for visiting that page.
  • Interacting with components scoring is handled in the page editor. Use the Score model assignment tab in the component dialog.

Integrating score models in your content apps

You can integrate scoring models in any content app. This allows you to tag your centrally managed content like products or teases with scoring models. Each time a tagged content record is used the matching scoring tag is delivered as well. Therefore personalizing user journeys becomes very efficient.

To integrate the scoring model into your content app you can use a decoration to extend your apps:

/my-module/decorations/target-module/apps/app-name.yaml
subApps:
  detail:
    editor:
      form:
        tabs:
          - !include:/magnolia-recommender/dialogs/scoreModel.yaml

Integrating score models in your templates

The module provides requires some integration into you templating project.

JavaScript

The recommender.js script handles the persistence of the scoring on the browser side. Be sure to include this file provided by the content recommender module.

<script type="text/javascript" charset="utf-8" async="" src="/.resources/magnolia-recommender/webresources/js/recommender.js"></script>

Templating functions

The recommender.js script relies on HTML tags to understand which interactions should be tracked. The required tags can be generated with the help of the RecommenderTemplatingFunctions. They are available in the scorefn templating functions.

For example to enable page visit events, add the following to the HTML <head> section.

${scorefn.getPageVisitMetaTags(content)}

Scoring components

For specific components extend the component dialog. You can do so by including the scoreModel.yaml file. 

form: 
  tabs:
    - !include:/magnolia-recommender/dialogs/scoreModel.yaml
Next you need to generate the tags in your element by using the scorefn function.
<a class="yourButton" ${scorefn.getComponentScoreModelMetaTag(content)}>...
If you use content app data on your page then use the following code to generate the meta tags
<a class="yourButton" ${scorefn.getComponentScoreModelMetaTag("your node id", 'your node workspace')}}>...

Personalizing based on interest

To deliver personalized content create a component variant and assign a score model or a predefined segment containing score models.

If you assign a score model specify which interest threshold must be reached.

Using centralized analytics

The module is not collecting any analytics data. However, integration into your existing analytics solution is straight forward. Extend the recommender.js file and add custom tracking events in the MgnlScoreModel#trackEvent() method.

Here are some links that should help determine how to add the events.

Warnings

  • This module is at INCUBATOR level.

Changelog

  • Version 1.0.2
    • Centralized score model assignment .
  • Version 1.0.1 - Initial release of the extensions version of the module.

5 Comments

  1. Any recommendations on good ways to use or act on the score values?

  2. Where are the scores stored and the information used for frequency and recency?

  3. The score is stored on client side.

    If you think about the travel demo: Tag tours types, categories, countries to show relevant teasers and promotions.

    It you think about the eduardo demo: Tag products to show matching campaigns and product recommendations.

    In general: One has to identify the most relevant user segments and define a strategy for each segment to convert best. Then it is about identifying the segments based on user interactions via the scoring model. Then the right personalised content has to be delivered to each segment the reach the segment specific goal.

  4. Jan Schulte What would be differences between this module and Project Erlik?

    I can see quite a lot of similar things, perhaps we could merge things together (smile)

    1. Erlik is relying on user tacking data to be efficient. The scoring model is based on hand placed scoring models.

      Both approaches have their relevancy.

      Sites with massive traffic can benefit from the Erlik approach as they can better cope with cold start problems.

      Sites without that luxury are better off with the scoring model as is. So I see Erlik as a module that lives side by side with the scoring model recommender.