Personalization module
Personalization Bundled: DX Core
| Edition | DX Core | 
|---|---|
License  | 
This module includes GeoLite2 data created by MaxMind, available from www.maxmind.com.  | 
Issues  | 
|
Maven site  | 
|
Latest  | 
2.1.20  | 
Yes  | 
  | 
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.
Since version 2.0, this submodule has been deprecated and its functions relocated to the Compatibility submodule.
 - 
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.
 - 
Segmentation app: Provides the Segments app 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.20</version> (1)
</dependency>
| 1 | Should you need to specify the module version, do it using <version>. | 
<dependency>
  <groupId>info.magnolia.personalization</groupId>
  <artifactId>magnolia-personalization-components</artifactId>
  <version>2.1.20</version> (1)
</dependency>
| 1 | Should you need to specify the module version, do it using <version>. | 
<dependency>
  <groupId>info.magnolia.personalization</groupId>
  <artifactId>magnolia-personalization-core</artifactId>
  <version>2.1.20</version> (1)
</dependency>
| 1 | Should you need to specify the module version, do it using <version>. | 
<dependency>
  <groupId>info.magnolia.personalization</groupId>
  <artifactId>magnolia-personalization-integration</artifactId>
  <version>2.1.20</version> (1)
</dependency>
| 1 | Should you need to specify the module version, do it using <version>. | 
<dependency>
  <groupId>info.magnolia.personalization</groupId>
  <artifactId>magnolia-personalization-pages</artifactId>
  <version>2.1.20</version> (1)
</dependency>
| 1 | Should you need to specify the module version, do it using <version>. | 
<dependency>
  <groupId>info.magnolia.personalization</groupId>
  <artifactId>magnolia-personalization-personas-app</artifactId>
  <version>2.1.20</version> (1)
</dependency>
| 1 | Should you need to specify the module version, do it using <version>. | 
<dependency>
  <groupId>info.magnolia.personalization</groupId>
  <artifactId>magnolia-personalization-preview-app</artifactId>
  <version>2.1.20</version> (1)
</dependency>
| 1 | Should you need to specify the module version, do it using <version>. | 
<dependency>
  <groupId>info.magnolia.personalization</groupId>
  <artifactId>magnolia-personalization-rest</artifactId>
  <version>2.1.20</version> (1)
</dependency>
| 1 | Should you need to specify the module version, do it using <version>. | 
<dependency>
  <groupId>info.magnolia.personalization</groupId>
  <artifactId>magnolia-personalization-segmentation-app</artifactId>
  <version>2.1.20</version> (1)
</dependency>
| 1 | Should you need to specify the module version, do it using <version>. | 
<dependency>
  <groupId>info.magnolia.personalization</groupId>
  <artifactId>magnolia-personalization-traits</artifactId>
  <version>2.1.20</version> (1)
</dependency>
| 1 | Should you need to specify the module version, do it using <version>. | 
<dependency>
  <groupId>info.magnolia.personalization</groupId>
  <artifactId>magnolia-personalization-widget</artifactId>
  <version>2.1.20</version> (1)
</dependency>
| 1 | Should you need to specify the module version, do it using <version>. | 
Part of the module is also the magnolia-personalization-blossom-compatibility.
| 
 To be able to use personalization in the Delivery API, you should:  | 
- 
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.20</version> (1) </dependency>1 Should you need to specify the module version, do it using <version>. - 
Make sure that in the content of your
pom.xmlfor 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.1</version> </dependency> </dependencies> ...If you use personalization version 2.1.0, you also need to add the following dependencyManagement into your webapp’s
pom.xmlfile.... <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
Variant rendering restrictions on public instances
In Personalization module 2.1.17 (Magnolia 6.2.58) and later, a default rendering filter at /server/filters/cms/rendering blocks direct URL access to mgnl:variant nodes on public instances for security purposes, and returns a 404 not found response.
This means you can’t test variants using direct URLs.
To test, use the Preview app or enable traits as URL parameters .
For more information, see Restricting node type rendering.
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 | 
|---|---|
  | 
optional, default is  Allows you to create component variants inside a page variant if set to
  | 
Custom traits
Each trait has a configuration which can be adjusted. For configuration details, see the Registering a trait section on Creating custom traits page.