cobra707
I'm new here

Dynamischer Content abhängig von der Herkunft(Land) des Benutzers

Jump to solution

Hallo zusammen,

Folgende Problemstellung habe ich zurzeit:

Wir haben eine Seite auf zwei Sprachen Deutsch und Englisch und wollen den Content dynamisch anhand des Landes woher der User kommt ändern. z.B. Wenn der User aus Dubai kommt möchten wir keine Heizungen anbieten sondern Klimaanlagen...

Folgende Punkte gehen mir hierzu durch den Kopf:

  • Land des Benutzers kann anhand der IP ermittelt werden
  • Der ganze Prozess wird höchstwahrscheinlich Javascriptseitig ablaufen
  • FirstSpiritformulare für Sektionsblöcke mit einer Auswahl von Checkboxen mit Ländern, wo der Content für relevant ist
  • Javascript muss dann ein Redirect auf die entsprechende statische Seite machen mit dem relevanten Inhalt.#

ODER:

  • Für die entsprechenden Länder eigene Sprachen anlegen
  • Seiten werden dann ja für die jeweilige Sprache generiert
  • Formulare müssen dann für jedes Land für die Sichtbarkeit mit einer Checkbox markiert werden
  • Nachteil: Sehr aufwändige Pflege aller

Folgende Bedenken habe ich:

  • Da FirstSpirit zur Laufzeit des Kunden bereits generiertes HTML ist, haben wir an der Stelle schon verloren und müssen höchstwahrscheinlich alle möglichen abhängigen Länder als eigenes HTML generieren und das Javascriptseitig auf diese weiterleiten.

Folgende Frage habe ich:

  • Ist es möglich anhand der gewählten Checkboxen in den Formularen, jeweils eine eigene Seite daraus zu generieren?
  • Gibt es irgendwelche Plugins von FirstSpirit die eventuell diese Arbeit mir abnehmen?
  • Gibt es für die Alternativ-Idee("ODER") eine Möglichkeit die Formularinhalte z.B. aus Englisch zu übernehmen und nur die Sichtbarkeit zu ändern
  • Gibt es noch andere Alternativen dies besser zu lösen mit FirstSpirit?

Zusammengefasst: Die Idee dahinter ist einfach dem Redakteur die Möglichkeit zu bieten für bestimmte Länder Inhalte abzuändern vom Inhalt bzw. auch der Sectionstemplates her ohne mehrere Länder gleichzeitig pflegen zu müssen...

Viele Grüße

Peter

1 Solution

Accepted Solutions
bIT_sosswald
Returning Responder

Hallo Peter,

schau dir mal die beiden folgenden Module an:

RealtimeTargeting

DynamicPersonalization

Für eine Eigenentwicklung würde ich auf den Content as a Service (CaaS) zurückgreifen.

Der Content kann darin plattformneutral als JSON abgelegt und mit weiteren Metadaten angereichert werden. (Z.B. mit der Information für welches Land der Content relevant ist.)

Anschließend kannst du den Content gezielt über eine API abfragen z.B. "Gebe mir alle Produkte die für Dubai relevant sind". Du bekommst dann entsprechende JSON Objekte zurück und kannst den Content nach belieben darstellen.

Für die Ermittlung der Herkunft des Users sowie der Abfrage uns das Rendern des relevanten Contents hätte ich auf ein serverseitiges Rendering über z.B: Thymeleaf gesetzt. (Wenn dies über JavaScript auf dem Client gemacht wirst hast du zusätzliche Requests und Daten die übertragen werden. Dadurch erhöhst du die Ladezeit der Seite. Ein User der kein JS aktiviert hat, kommt dann auch gar nicht in den Genuss von dynamischem Content. Außerdem kannst du bei einem serverseitigem Rendering Cachen und Fehlertoleranzen einbauen, etc.)

Zukünftig kann dieser UseCase meines Wissens nach auch über die Intelligent Content Engine (ICE) abgedeckt werden.

PS: Du kannst den CaaS auch relativ einfach durch eine Suchengine, wie z.B. die Elasticsearch ersetzen. Smiley Wink Je nachdem wie umfangreich dein UseCase ist macht das evtl. Sinn doer eben auch nicht.

Ich hoffe ich konnte dir ein paar Denkanstöße geben.
Bei Fragen einfach melden...

Grüße

Sandro

View solution in original post

8 Replies
bIT_sosswald
Returning Responder

Hallo Peter,

schau dir mal die beiden folgenden Module an:

RealtimeTargeting

DynamicPersonalization

Für eine Eigenentwicklung würde ich auf den Content as a Service (CaaS) zurückgreifen.

Der Content kann darin plattformneutral als JSON abgelegt und mit weiteren Metadaten angereichert werden. (Z.B. mit der Information für welches Land der Content relevant ist.)

Anschließend kannst du den Content gezielt über eine API abfragen z.B. "Gebe mir alle Produkte die für Dubai relevant sind". Du bekommst dann entsprechende JSON Objekte zurück und kannst den Content nach belieben darstellen.

Für die Ermittlung der Herkunft des Users sowie der Abfrage uns das Rendern des relevanten Contents hätte ich auf ein serverseitiges Rendering über z.B: Thymeleaf gesetzt. (Wenn dies über JavaScript auf dem Client gemacht wirst hast du zusätzliche Requests und Daten die übertragen werden. Dadurch erhöhst du die Ladezeit der Seite. Ein User der kein JS aktiviert hat, kommt dann auch gar nicht in den Genuss von dynamischem Content. Außerdem kannst du bei einem serverseitigem Rendering Cachen und Fehlertoleranzen einbauen, etc.)

Zukünftig kann dieser UseCase meines Wissens nach auch über die Intelligent Content Engine (ICE) abgedeckt werden.

PS: Du kannst den CaaS auch relativ einfach durch eine Suchengine, wie z.B. die Elasticsearch ersetzen. Smiley Wink Je nachdem wie umfangreich dein UseCase ist macht das evtl. Sinn doer eben auch nicht.

Ich hoffe ich konnte dir ein paar Denkanstöße geben.
Bei Fragen einfach melden...

Grüße

Sandro

Hallo bIT.sosswald,

Vielen Dank erstmal für die super hilfreichen Vorschläge!!

Zu RealtimeTargeting:

Sowie ich das verstehe, ist es eher ein Analysetool, wo der Besucher anhand seiner Aktivität auf der Webseite beim nächsten Besuch gezielter Kontent bereitgestellt bekommt. Generell sehe ich dort noch kein Spielraum für das Zusammenspiel zwischen Standort und Inhaltsplatzierung.

Zu DynamicPersonalization:

Wenn ich das richtig verstehe würde DynamicPersonalization direkt auf mein Problem zutreffen:

Laut Beschreibung: Bestimmte Informationen dürfen nur für ausgewählte Personen oder Gruppen zugänglich sein oder sind nur für Mitarbeiter eines bestimmten Standortes relevant.

Mich irritiert allerdings etwas der Begriff "Profilverwaltung". Kann ich als Profil z.B. ein "Benutzer" anlegen der dann nur für Dubai relevant ist? Dieser angelegte Benutzer hat aber nichts mit einem Loginverfahren auf der Seite selbst zutun oder?  Das heißt beim Besuch wird dann die Herkunft ermittelt, der Besucher bekommt einen Benutzer zugeordnet und anhand dieses Benutzers findet ein Abgleich der Metainformationen statt, worauf dahin dann die Seite für diesen Besucher zusammengestellt wird? (Hoffe das war nicht zu verwirrend geschrieben..)

Versuche zu verstehen wie die Besucher der Webseite mit dem späteren Livesystem zusammenarbeiten.

Zu CaaS:

Wird die eigentliche Generierung der Webseite mit CaaS ausgehebelt und es werden stattdessen JSON-Objekte abgelegt? Das heißt für die Zusammenstellung der Seite muss ich mich dann an der Stelle mit einem anderen Framework kümmern?

Ansich finde ich die Idee mit CaaS super, da ich viel Spielraum dann später bei der Generierung der Seite selber habe und mir da im Moment am ehesten zu Vorstellen könnte wie das späte alles funktioniert...

Danke schon einmal für die Antwort Smiley Happy

Viele Grüße

Peter

0 Kudos

Hallo Peter,

zu den Details der beiden Module kann ich dir leider auch nicht viel sagen, da ich sie selbst noch nicht aktiv benutzt habe.

Zum CaaS:

Nein, der CaaS hebelt die normale Generierung nicht aus, sondern läuft in einem eigenen Generierungsauftrag oder -task. Die generierten JSON DOkumente werden dann über einen Bus in den CaaS gespielt, aus dem sie wieder abgefragt werden können.

D.h. du kannst deine Seite ganz normal generieren wie bisher und dann den zu dynamisierenden Content extra in den CaaS generieren. Du müsstest dann also eigentlich nur die Stellen die dynamisiert werden sollen ändern und dort aus den JSON Objekten wieder COntent bauen. (Oder du packst in das JSON Objekt direkt gerenderten HTML-Content als Payload und musst diesen dann nur noch aus dem JSON Objekt auslesen und in deinen DOM einbauen.

Beste Grüße

Sandro

0 Kudos

Hallo Peter,

zum RealtimeTargeting Modul kann ich sagen, dass hier auch eine Personalisierung des Inhalts nach der Herkunft möglich ist.

Den CaaS hat Sandro schon sehr gut zusammengefasst. Smiley Happy

Grüße

Jan

0 Kudos

Hallo zusammen,

kohlbrecher​:

Wie darf ich mir die Personalisierung des Inhalts mit diesem Plugin vorstellen? Ist es ebenfalls eine Serverseitige Generierung? Oder werden einfach mehrere Templates abgelegt und auf diese werden dann zur Laufzeit zugegriffen? Aus der Beschreibung des Marketplace gehen die technischen Hintergründe nicht so hervor..

bIT.sosswald​:

Also wenn ich das richtig verstehe, werden mehrere JSON-Objekte mit selbst definierten Inhalten in FirstSpirit über den BUS an den CaaS gesendet. Heißt das ich dann auf der Serverseite mir die Herkunft des Clients hole und dann z.B. per Thymeleaf die benötigen Content-Informationen aus dem JSON-Objekt herausziehe und diese dann in das HTML einpflege?

Das heißt die Seite wird normal von FirstSpirit generiert und ich müsste dann per Thymeleaf die dynamischen Content-Elemente zusätzlich verknüpfen?

Im Moment klingt CaaS für mich am besten für die Umsetzung meiner Problematik...

Vielen Dank schoneinmal für eure Hilfe!

Viele Grüße

Peter

0 Kudos

Hallo Peter,

du siehst das genau richtig! Smiley Happy

Du generierst über einen eigenen Ausgabekanal JSON-Objekte z.B. für jede Seite deiner Struktur, oder aber auch nur für einzelne Fragmente, z.B. über eine ContentProjektion von Produkten. (Spoiler: Dafür wird es zukünftig einen speziellen "Client" geben, den "FragmentCreator".)

Diese werden dann an den CaaS gesendet und dort abgelegt. (Technisch liegt hier, soweit ich mich erinnere, eine MongoDB darunter, die mittels der RESTHeart API abgefragt werden kann.)

Was du dann mit den so generierten Daten machst bleibt vollständig dir überlassen! Aber ja, du könntest dann z.B. über Thymeleaf / Spring / etc. beim Rendern der Seite aus dem Request bestimmen woher der User kommt, mit dieser Information den CaaS anfragen und die Ergebnisse dann in deine Seite einbauen bevor du sie dem User wieder auslieferst.

Wir machen das z.B. für TagResult-Pages und fragen dann am CaaS alle Einträge an die einen bestimmten Tag haben ab und Rendern dann aus den zurückgelieferten JSON Objekten die entsprechenden Teaser zur Anzeige auf der Tagresult-Page.

Auch haben wir über diesen Mechanismus z.B. einen automatischen Redirect umgesetzt. Über die IP des Request und einen GeoIP Service wird ermittelt aus welchem Land der User kommt. Dann wird im CaaS (der z.B. auch Konfigurationswerte enthalten kann) geprüft ob es für das Land des Users eine Website gibt und der User dann entsprechend umgeleitet.

Unendliche Freiheiten... :smileylaugh:

Grüße

Sandro

0 Kudos
mikula
Crownpeak employee

Hallo Peter,

wenn wir über hier schon über Personalisierung reden... vielleicht ist ja auch FirstSpirit I.C.E. etwas für euch...

https://www.e-spirit.com/de/produkt/arbeiten-mit-firstspirit/intelligent-content-engine/

Viele Grüße

Martin

0 Kudos
pavone
I'm new here

Hallo Peter,

benötigst Du noch weitere Hilfe oder haben Dir die Antworten bereits geholfen? In diesem Fall wäre es super, wenn Du die "richtige Antwort" entsprechend markierst, damit auch andere Community-Teilnehmer diese auf den ersten Blick finden. Solltest Du zwischenzeitlich eine eigene Lösung gefunden haben, wäre es nett, wenn Du diese hier bereitstellst.

Viele Grüße

Tim

0 Kudos