Einführung der Personalisierung ohne Kopf
Nov. 2, 2021
--
Headless Personalisation 1200x628

Einführung der Personalisierung ohne Kopf

In einem kürzlich erschienenen Blog-Beitrag in seiner Serie "Headless Magnolia" hat mein Kollege Bartosz erklärt, wie man Inhalte von unserer Delivery API konfiguriert und abruft, wenn man Magnolia als Headless CMS verwendet.

Doch während Headless-Architekturen immer beliebter werden, kann die Integration von Personalisierung in einen Headless-Stack eine Herausforderung sein. In Anbetracht der Vorteile der Personalisierung, wie z. B. bessere Kundenerfahrungen, stärkere Einbindung der Besucher und höhere Konversionsraten, wollten wir die Headless-Personalisierung einfacher machen.

In diesem Blogbeitrag erkläre ich, wie wir unsere REST-API erweitert haben, um Inhalte auf der Grundlage von Zielgruppenmerkmalen bereitzustellen und so personalisierte Erlebnisse in Headless-Projekten mit sehr geringem Aufwand zu ermöglichen.

Aktivieren der Personalisierung in der Delivery API

Um die Personalisierung für einen Zustellungsendpunkt zu aktivieren, fügen Sie die personalisierte Eigenschaft in die YAML-Definition des Endpunkts ein:

Java
  Klasse: info.magnolia.rest.delivery.jcr.v2.JcrDeliveryEndpointDefinition Arbeitsbereich: website personalisiert: true  

Definition neuer Merkmale

Um personalisierte Inhalte über den Endpunkt anzufordern, haben wir 3 neue Merkmalstypen eingeführt, die Entwickler angeben können:

  • cookieTrait

  • requestParameterTrait

  • headerTrait

Jeder Trait wird in einer YAML-Datei im Ordner traits eines Magnolia Light Moduls definiert:

Java
  my-light-module/ └── traits └── my-trait.yaml  

Sobald eine Eigenschaft definiert ist, kann sie von Autoren von Inhalten verwendet werden, um Varianten von personalisierten Erlebnissen in der Pages App zu erstellen und um eine Vorschau von Erlebnissen zu sehen, wie sie ein Benutzer mit bestimmten Eigenschaften sehen würde.

Headless Magnolia: The Delivery Endpoint API

The Headless Magnolia series explains features that allow you to use Magnolia as a headless CMS. Read our blog post for an introduction to the Delivery endpoint API.

Abrufen von personalisierten Inhalten

Anhand eines Beispiels aus unserem Demoprojekt möchte ich zeigen, wie man Inhalte von einem Bereitstellungsendpunkt auf der Grundlage von zwei Anforderungsparametern anfordert:

Java
  curl --location --request GET 'http://localhost:8080/magnoliaPublic/.rest/delivery/pages/v1/shoes?gender=men&favorite-color=white'  

Die Antwort des Endpunkts ist personalisiert, aber Knotenname und Knotenpfad sind maskiert, um wie ein Originalknoten auszusehen:

Java
  "@name": "schuhe", "@pfad": "/Schuhe", "@id": "ff1e3449-7c62-4952-baaf-5b798ca7f8d4", "@nodeType": "mgnl:page", "hideInNav": "false", "navigationTitle": "Schuhe", "title": "Tommy Hilfiger | Schuhe", "noCache": "false", "main": { "@name": "main", "@path": "/Schuhe/Haupt", "@id": "963d48ec-f4cb-4b06-82a4-f80dd18dfbc4", "@nodeType": "mgnl:area", "0": { "@name": "0", "@path": "/Schuhe/Haupt/0", "@id": "217032aa-6282-466e-a14f-44aeaf204058", "@nodeType": "mgnl:component", "@variantNodeName": "variant-0", "@variantPath": "/Schuhe/Haupt/0/Varianten/Variante-0"  

Wenn Sie sich die obige JSON-Antwort genau ansehen, werden Sie zwei neue Eigenschaften bemerken:

  • variantNodeName

  • variantPath

Es ist möglich, mehrere Traits und Trait-Typen in der Anfrage zu spezifizieren, indem Cookie-, Header- und Request-Parameter-Traits kombiniert werden:

Java
  curl --location --request GET 'http://localhost:8080/magnoliaPublic/.rest/delivery/pages/v1/shoes?gender=men&favorite-color=white' \ --header 'my-header-trait: my-header-trait-value'  

Abruf aller Varianten

Die Delivery-API kann auch alle Seiten- und Komponentenvarianten mit dem Abfrageparameter variants=all zurückgeben:

Java
  curl --location --request GET 'http://localhost:8080/magnoliaPublic/.rest/delivery/pages/v1/shoes?variants=all'  

Leichtere Personalisierung in Headless-Projekten

Unsere YAML-Konfiguration mit geringem Codeaufwand erleichtert Entwicklern die Erstellung von Besuchermerkmalen, die Autoren von Inhalten zur Personalisierung von Erlebnissen mit ihrem visuellen Editor verwenden können. Unsere Implementierung der Headless-Personalisierung über die Delivery-API ermöglicht es Entwicklern dann, saubere, personalisierte Inhalte zu konsumieren.

In diesem Artikel habe ich mich auf die Änderungen am Bereitstellungsendpunkt konzentriert. Basierend auf dieser Grundlage haben wir auch unserem Headless Visual SPA Editor volle Unterstützung für die Personalisierung hinzugefügt. Sie können mehr darüber in der SPA-Dokumentation erfahren.

Wenn Sie mehr über die Headless-Personalisierung mit Magnolia erfahren möchten, sehen Sie sich unser Demoprojekt in unserem Git-Repository und die Dokumentation an oder fragen Sie unser Team nach einer Demo.

Personalization in Headless Projects
Über den autor

Jaroslav Simak

Software Developer, Magnolia

With a background in backend development, Jaroslav now works on delivering Magnolia’s headless functionality.