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:
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:
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:
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:
"@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:
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:
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.