Personalization module

Edition DX Core

License

MLA

This module includes GeoLite2 data created by MaxMind, available from www.maxmind.com.

Issues

MGNLPN

Maven site

Personalization

Latest

2.1.0

Magnolia 6.2 webapps are shipped with the 2.0.x module versions.

Personalization support for the Delivery API is only available in version 2.1.0 and higher.

Personalization

Personalization refers to adapting content to a particular user according to his or her personal preferences, needs and capabilities. In order to do so, you first select a set of traits of a visitor or a visit, then compose rules using these traits to define what content is presented to which visitors and when.

Modules

Magnolia’s Personalization feature consists of the following modules.

  • Blossom-compatibility: Provides personalization of Blossom components.

  • Compatibility: Provides the 5 UI framework modules.

  • Components: Support for creating component variants.

  • Core: Personalization core.

  • Integration: Personalization support for creating page variants and fields for selecting traits and audiences.

  • Pages: Personalization integration for the Pages app.

  • Personas app: App for creating hypothetical visitors who represent your target audience.

  • Preview app: App for testing content delivery by impersonating a visitor.

  • REST: Personalization support for the Delivery API.

  • Segmentation app: Provides the Segments ppp for grouping visitors into segments.

  • Traits: Example traits country, date, cookie and visitor.

  • Widgetset: Widgetset for client-side extensions needed for the variant-selectors.

<dependency>
  <groupId>info.magnolia.personalization</groupId>
  <artifactId>magnolia-personalization-compatibility</artifactId>
  <version>2.1.0</version>
</dependency>
<dependency>
  <groupId>info.magnolia.personalization</groupId>
  <artifactId>magnolia-personalization-components</artifactId>
  <version>2.1.0</version>
</dependency>
<dependency>
  <groupId>info.magnolia.personalization</groupId>
  <artifactId>magnolia-personalization-core</artifactId>
  <version>2.1.0</version>
</dependency>
<dependency>
  <groupId>info.magnolia.personalization</groupId>
  <artifactId>magnolia-personalization-integration</artifactId>
  <version>2.1.0</version>
</dependency>
<dependency>
  <groupId>info.magnolia.personalization</groupId>
  <artifactId>magnolia-personalization-pages</artifactId>
  <version>2.1.0</version>
</dependency>
<dependency>
  <groupId>info.magnolia.personalization</groupId>
  <artifactId>magnolia-personalization-personas-app</artifactId>
  <version>2.1.0</version>
</dependency>
<dependency>
  <groupId>info.magnolia.personalization</groupId>
  <artifactId>magnolia-personalization-preview-app</artifactId>
  <version>2.1.0</version>
</dependency>
<dependency>
  <groupId>info.magnolia.personalization</groupId>
  <artifactId>magnolia-personalization-rest</artifactId>
  <version>2.1.0</version>
</dependency>
<dependency>
  <groupId>info.magnolia.personalization</groupId>
  <artifactId>magnolia-personalization-segmentation-app</artifactId>
  <version>2.1.0</version>
</dependency>
<dependency>
  <groupId>info.magnolia.personalization</groupId>
  <artifactId>magnolia-personalization-traits</artifactId>
  <version>2.1.0</version>
</dependency>
<dependency>
  <groupId>info.magnolia.personalization</groupId>
  <artifactId>magnolia-personalization-widget</artifactId>
  <version>2.1.0</version>
</dependency>

Part of the module is also the magnolia-personalization-blossom-compatibility.

To be able to use personalization in the Delivery API, you should:

  1. Add the Blossom dependency (magnolia-personalization-blossom-compatibility) only if you are using the Blossom modules in your project:

    <dependency>
      <groupId>info.magnolia.personalization</groupId>
      <artifactId>magnolia-personalization-blossom-compatibility</artifactId>
      <version>2.1.0</version>
    </dependency>
  2. Make sure that in the content of your pom.xml for your webapp you include the following two dependencies if your project is generated from the Magnolia webapp archetype:

    ...
      <dependencies>
       ...
    
       <!-- include p13n for rest -->
        <dependency>
            <groupId>info.magnolia.personalization</groupId>
            <artifactId>magnolia-personalization-rest</artifactId>
            <version>2.1.0</version>
          </dependency>
    
      </dependencies>
    
      <dependencyManagement>
        <dependencies>
          <!-- include dependency management for p13n 2.1.0 -->
          <dependency>
            <groupId>info.magnolia.personalization</groupId>
            <artifactId>magnolia-personalization-parent</artifactId>
            <version>2.1.0</version>
            <type>pom</type>
            <scope>import</scope>
          </dependency>
        </dependencies>
      </dependencyManagement>
    ...

Configuration

Components submodule

Nested variants occur when a page variant contains component variants. Control the ability for editors to create nested variants using the allowNestedVariants property on the module level configuration.

Node name Value

personalization-components

     config

         allowNestedVariants

false

Property Description

allowNestedVariants

optional, default is false

Allows you to create component variants inside a page variant if set to true.

Traits submodule

The traits submodule provides four traits:

  • date

  • country

  • visitor

  • cookies.

Each trait has a configuration which can be adjusted. For configuration details, see the Registering a trait section on Creating custom traits page.

Feedback