Individualisierte Seiten durch Gewichtung von Listeninhalten

Nutzbar ab: Version

Neben der Sortierung und der Filterung gibt es ab der Version 11 eine weitere Möglichkeit zur bedingten Ausgabe von Inhalten. Über Sortierfaktoren können Inhalte entsprechend ihrer kontext- bzw. benutzerbezogenen Relevanz angezeigt werden. Mit dieser Technik sind Anforderungen des 1:1 Marketing auf einfache Art umsetzbar.

Sortierfaktoren stellen eine Ergänzung zu den bisherigen Individualisierungsmöglichkeiten dar. So lassen sich diese entweder unabhängig oder in Kombination nutzen, wodurch sich eine Vielzahl fein abgestimmter Varianten ergibt. Eingebunden werden Sortierfaktoren, falls diese nicht schon in den Standardfiltern verfügbar sind, über Filter, die vor der Listengenerierung auszuführen sind (PHP Callback Funktion PRE).

Schauen wir uns dazu ein paar Beispiele an:

Ähnliche Beiträge zum aktuellen Artikel einblenden

Das als Klassiker zu bezeichnende Einbinden ähnlicher Artikeln auf Basis von Schlüsselwörtern, wurde bisher ausschließlich über Filter umgesetzt. Dabei wurden einfach andere Artikel aufgelistet, welche mindestens ein übereinstimmendes Schlüsselwort enthielten.

Ergänzt man diese Funktion nun zusätzlich um Sortierfaktoren, ergibt sich der Vorteil, dass Artikel, die mehrere übereinstimmenden Schlüsselwörter enthalten mit einer höheren Wahrscheinlichkeit angezeigt werden.

Verfügt die Webseite über einen geringen Datenbestand, ist auch denkbar, die Filterung komplett weg zu lassen und stattdessen die Sortierfaktoren in Kombination mit einem Limit zu nutzen. So stellt man sicher, dass immer eine gewisse Anzahl an Einträgen erscheint und die relevanteren Einträge dennoch an oberster Stelle erscheinen.

Beispiel zur Gewichtung von Listeneinträgen mit den gleichen Schlüsselwörtern wie der aktuelle Artikel.

public static function myListFunctionPreSimilar($query){

$keywords = preg_split('/\s*,\s*/', wDocumentData::getData(wPageCur::getPath(), "/wd:document/wd:extension/wd:meta/wd:keywords/text()"));

if(!
is_array($query['orderFactors'])){
$query['orderFactors'] = array();
}

foreach(
$keywords as $keyword){
$query['orderFactors'][] = array('wPath' => '/wd:extension/wd:meta/wd:keywords/text()', 'operator' => 'pregiMatch', 'condition' => $keyword);
}
return
$query;
}

Nach Region personalisieren

In den meisten Fällen, lässt sich zumindest der grobe Standort des Benutzers über eine GEO-IP Datenbank ermitteln, welcher dann dazu genutzt werden kann, Inhalte abhängig vom Benutzerstandort zu gewichten.

Da hier nicht gefiltert, sondern gewichtet wird, sind falsche oder ungenaue GEO-Daten, wie sie z.B. beim Einsatz von TOR-Browsern entstehen, unkritisch. 

Im Folgenden Beispiel wird gezeigt, wie man bei Besuchern aus der Schweiz bevorzugt einen Reisebanner für Italien anzeigt.

Individualisierung eines Banners auf Basis des Besucherstandortes

public static function myListFunctionPreDestinations($query){

if(
$_SESSION['isFromSwitzerland']){
$preferedDestination = 'italy';

if(!
is_array($query['orderFactors'])){
$query['orderFactors'] = array();
}

$query['orderFactors'][] = array('wPath' => '/wd:extension/wd:meta/wd:keywords/text()', 'operator' => 'containsi', 'condition' => $preferedDestination);
}

return
$query;
}

Nach Benutzerverhalten individualisieren

Gewichtungsfaktoren können sich auch auf Benutzerdaten beziehen. Sobald Benutzer personalisierte Informationen hinterlassen, sei es durch Login oder durch gespeichertes Benutzerverhalten, lassen sich vielfältige projektspezifische Faktoren einsetzen. 

Ist ein Benutzer nicht angemeldet, bleibt nur, das Verhalten auf Basis vorhandener Sessiondaten zu individualisieren. In vielen Fällen führen Sicherheitseinstellungen dazu, dass nur Daten des aktuellen Besuchs zur Verfügung stehen.

Im folgenden Beispiel wird der Banner mit einem Blumenmotiv als erstes angezeigt, sofern der Benutzer zuvor eine Blumengalerie angeschaut hat.

Individualisierung des Banners auf Basis bereits besuchter Seiten

public static function myListFunctionPreBanner($query){

if(
$_SESSION['hasVisitedFlowerGallery']){
$preferedBannerType = 'flowers';

if(!
is_array($query['orderFactors'])){
$query['orderFactors'] = array();
}

$query['orderFactors'][] = array('wPath' => '/wd:extension/wd:meta/wd:keywords/text()', 'operator' => 'containsi', 'condition' => $preferedType);
}

return
$query;
}

Allgemeines

Die Individualisierung lässt sich mit der beschriebenen Technik beliebig verfeinern, wodurch letztlich jeder Besucher eine individuelle, für ihn zugeschnittene Kombination an Informationen sieht. 

Bereits die Kombination weniger Sortierfaktoren führt praktisch zu einem Individualisierungsgrad nach dem One-to-One Prinzip, wobei die Qualität und folglich der Nutzen nicht in dem Maße steigen wird, wie die Individualisierung zunimmt. Hier gilt es individuell abzuwägen, inwieweit eine auf den Besucher individualisierte Seite, welche nie vollständig gecacht werden kann, von Vorteil ist.