Pfad: Startseite » Blog

Was ist Usability? – erklärt auf einer Slide

24 Okt 2013

In meiner Vorlesung Software-Ergonomie & Usability an der Fachhochschule Brandenburg standen heute Usability Tests auf dem Lehrplan. Dazu muss man natürlich vorerst klären was eigentlich Usability ist. Überraschender Weise habe ich es in diesem Jahr kurz und knapp auf einer Folie wie folgt zusammenfassen können:

  • Usability steht für:
    • Gebrauchstauglichkeit (physische Produkte)
    • Software-Ergonomie
  • Ergebnis der Software-Ergonomie ist die Gebrauchstauglichkeit, speziell die Benutzerfreundlichkeit von Software bzw. Systemen
  • Gebrauchstauglichkeit definiert sich durch:
    • Effizienz,
    • Effektivität und
    • Zufriedenheit
  • Benutzerfreundlichkeit = erlebte Nutzungsqualität bei Systemen (einfach + intuitiv)
  • Benutzerfreundlichkeit + emotionale Aspekte = User Experience
  • Barrierefreiheit = spezielle Sicht auf die Gebrauchstauglichkeit

Bisher keine Kommentare

Kundendaten (konvertieren und) in webEdition importieren

20 Jan 2013

Bei der Umsetzung von größeren Websites, Online-Shops, Portalen etc. gehört die Datenmigration von einem System (zu Beispiel das abzulösende Content Management System (Kurz: CMS)) zu einem anderen System (das neue bessere CMS, z.B. webEdition ) zu den eher unbeliebten Aufgaben. Oft bereiten die sehr stark unterschiedliche Datenstruktur, die Datenkodierung (Zeichensatz), die Datenmenge etc. große Probleme –  besonders wenn der Abgleich nicht nur einmal sondern regelmäßig stattfinden soll.

Daneben ist es schwierig dem Kunden, den durch die Datenmigration entstandenen Aufwand zu erklären. Oft höre ich Sätze wie: „Die Daten müssen doch nur von der einen Datenbank in die andere, dass kann doch nicht problematisch sein!“ Doch kann es schon!

An einem Beispiel möchte ich kurz erläutern, wie Kundendaten aus Typo3 exportiert und in die webEdition Kundenverwaltung importiert werden können. Und welche projektspezifischen Datenkonvertierungen den Aufwand beeinflussen.

1. Quelldaten (CSV-Export) aus Typo3 analysieren

Als erstes sollte man sich so früh wie möglich vom Kunden einen Datenexport liefern lassen. Dies hat den Vorteil, dass eventuell nicht berücksichtige Herausforderungen frühzeitig erkannt und noch Einfluss auf die neue Datenstruktur im Zielsystem Einfluss genommen werden kann.

Das nachfolgende Beispiel zeigt die Feldbezeichnungen aus dem Typo3 CSV-Export.

"uid";"pid";"tstamp";"username";"password";"usergroup";"disable";"starttime";"endtime";"name";"address";"telephone";"fax";"email";"crdate";"cruser_id";"lockToDomain";"deleted";"uc";"title";"zip";"city";"country";"www";"company";"image";"TSconfig";"module_sys_dmail_category";"module_sys_dmail_html";"fe_cruser_id";"lastlogin";"is_online";"tx_user_firstname"

Oben sehen Sie die erste Zeile aus einer CSV-Datei, welche die Datenstruktur der Daten widerspiegelt. Diese erscheint zunächst sehr unproblematisch und lässt sich problemlos mit der webEdition Kundenverwaltung abbilden. Analysieren wir nun die Feldinhalte genauer, stellen wir fest, dass in den Feldern „name“ (für Nachname) und „tx_user_firstname“ (für Vorname) nicht nur die jeweiligen Namen, sondern auch Titel (wie z.B. Dr., Prof. etc.) enthalten sind. Außerdem enthält das Feld „country“ die Angaben für die Länderinformationen in unterschiedlichen Formaten, z.B. für Deutschland gibt es die Angaben „Deutschland“, „deutschland“ und „D“.

2. Datenstruktur in der webEdition Kundenverwaltung (Zielsystem)

Die Quelldaten aus dem Typo3-System sollen in die webEdition Kundenverwaltung importiert werden. Hierbei ändert sich jedoch auch die Datenstruktur, weil zukünftig Rechnungs- und Lieferadresse getrennt erfasst werden. Dies gilt auch für Namenstitel, we z.B. Dr., Prof. und Prof. Dr. Die Datenstruktur könnte in der webEdition Kundenverwaltung wie folgt aussehen:

Feldgruppe: Allgemein (vom CMS webEdition vorgegeben)

  • Username
  • Password
  • Forename
  • Surname
  • LoginDenied (Zugang gesperrt)
  • MemberSince
  • LastLogin
  • LastAccess
  • AutoLoginDenied
  • AutoLogin (Auto-Login erwünscht)

Feldgruppe: Rechnung (individuell erstellt)

  • Titel
  • Vorname
  • Nachname
  • StrasseNr
  • PLZ
  • Ort
  • Land
  • etc.

Feldgruppe: Lieferung (individuell erstellt)

  • Titel
  • Vorname
  • Nachname
  • StrasseNr
  • PLZ
  • Ort
  • Land
  • etc.

3. Quelldaten für den Import (via CSV oder XML) in webEdition vorbereiten

Nachdem nun die Analyse der Quelldaten und die Strukturierung des Zielsystems abgeschlossen sind, können wir die Daten für den Import vorbereiten. Dabei kann für den Import in webEdition das Dateiformat eine CSV- oder eine XML-Datei sein. Im vorliegenden Beispiel haben wir uns für die „schlankere“ CSV-Variante entschieden. Beim Import der Quelldaten müssen wir (für unser Beispiel) folgende Punkte beachten:

  1. Namenstitel werden nun in einem separaten Feld erfasst
  2. Länderinformationen werden in webEdition als ISO-Codes (z.B. DE für Deutschland) gespeichert
  3. Die zukünftige Webseite wird mehrsprachig sein, so dass jedem Kundendatensatz eine Sprache zugewiesen werden muss, um nach dem Login die richtige Sprache anzuzeigen

Die Datenaufbereitung geschieht automatisiert anhand eines Skriptes, welches wir als webEdition Template direkt im CMS webEdition anlegen. Dabei lesen wir zunächst die Quelldaten aus der CSV-Datei in ein PHP-Array ($sourceArray) ein und konvertieren die Daten für Punkt 1. und 2. (siehe nachfolgendes Codebeispiel):

$row = (int) 0;
$listOfCountryCodes = Zend_Locale::getTranslationList('territory', 'de'); //Liste aller Laender und den dazugehoerigen ISO-Codes
$sourceArray = array();
$handle = fopen ("csvTypo3SourceCustomerExport.txt","r"); // Quelldatei zum Lesen oeffnen
while ( ($data = fgetcsv ($handle, 2000, ";")) !== FALSE ) { // Daten werden aus der Datei
    $sourceArray[$row]["memberSince"] .= (string) $data[14];
    $sourceArray[$row]["lastLogin"] .= (string) $data[30];
    $sourceArray[$row]["loginDenied"] .= (string) $data[16];
    $sourceArray[$row]["username"] .= (string) $data[3];
    $sourceArray[$row]["password"] .= (string) $data[4];
    $sourceArray[$row]["salutation"] .= (string) $data[53];
    //ist im Feld Vorname ($data[32]) oder Nachname ($data[9]) ein "." enthalten, gehen wir von einem Namenstitel aus, der in ein separates Feld ("title") extrahiert wird
    if(strpos($data[9], ".")!==FALSE){
        $sourceArray[$row]["title"] .= (string) trim(substr($data[9],0,(strpos($data[9],".")+1)));
        $sourceArray[$row]["forename"] .= (string) $data[32];
        $sourceArray[$row]["surname"] .= (string) trim(substr($data[9],(strpos($data[9],".")+1), strlen($data[9])));
    }elseif(strpos($data[32], ".")!==FALSE){
        $sourceArray[$row]["title"] .= (string) trim(substr($data[32],0,(strpos($data[32],".")+1)));
        $sourceArray[$row]["forename"] .= (string)trim(substr($data[32],(strpos($data[32],".")+1), strlen($data[32])));
        $sourceArray[$row]["surname"] .= (string) $data[9];
    }else{
        $sourceArray[$row]["title"] .= "";
        $sourceArray[$row]["forename"] .= (string) $data[32];
        $sourceArray[$row]["surname"] .= (string) $data[9];
    }
    $sourceArray[$row]["street"] .= (string) $data[10];
    $sourceArray[$row]["zip"] .= (string) $data[20];
    $sourceArray[$row]["city"] .= (string) $data[21];
    //Länderinformationen aus dem Quelldaten in ISO-Codes konvertieren
    $sourceArray[$row]["country"] .= (string) array_search($data[22],$listOfCountryCodes);
    $sourceArray[$row]["telephone"] .= (string) $data[11];
    $sourceArray[$row]["email"] .= (string) $data[13];
    $sourceArray[$row]["company"] .= (string) $data[24];
       $row ++;
}
fclose ($handle)

Ein Vorteil von webEdition, den wir uns an dieser Stelle zu Nutze machen, ist das integrierte Zend Framework. Dadurch können wir die in den Quelldaten enthalten deutschsprachig ausgeschriebenen Länderinformationen ganz einfach in ISO-Codes konvertieren.
Als nächstes erzeugen wir dann die später zu importierende CSV-Datei anhand des folgenden Codebeispiels:

$handle = fopen ("weImportTargetCustomer.csv","w+");

//Feldstruktur des CSV-Datei in die erste Zeile schreiben
fputs($handle,'"Username";"Password";"Forename";"Surname";"LoginDenied";"MemberSince";"LastLogin";"LastAccess";"AutoLoginDenied";"AutoLogin";"Gruppe";"Sprache";"Rechnung_Anrede";"Rechnung_Titel";"Rechnung_Vorname";"Rechnung_Nachname";"Rechnung_StrasseNr";"Rechnung_PLZ";"Rechnung_Ort";"Rechnung_Land";"Rechnung_EMail";"Rechnung_Telefon";"Rechnung_Firma";'."\n");

foreach($sourceArray as $keyP => $valueC){
    fputs($handle,'"'.$valueC['username'].'";"'.$valueC['password'].'";"'.$valueC['forename'].'";"'.$valueC['surname'].'";"'.$valueC['loginDenied'].'";"'.$valueC['memberSince'].'";"'.$valueC['lastLogin'].'";"0";"0";"0";"Kunde";"de";"'.$valueC['salutation'].'";"'.$valueC['title'].'";"'.$valueC['forename'].'";"'.$valueC['surname'].'";"'.$valueC['street'].'";"'.$valueC['zip'].'";"'.$valueC['city'].'";"'.$valueC['country'].'";"'.$valueC['email'].'";"'.$valueC['telephone'].'";"'.$valueC['company'].'";'."\n");
}  
fclose ($handle);

Jetzt setzen wir noch für jeden Kundendatensatz als Sprache Deutsch („de“), da die bisherigen Webseite nur auf Deutsch angeboten wurde und weise als Kundengruppe „Kunde“ zu, da bisher nicht mit Kundengruppen gearbeitet wurde.

Kleiner Tipp: die Feldbezeichnung in der CSV-Datei sollte genauso, wie in der webEdition Kundenverwaltung heißen. Dadurch erfolgt eine automatische Feldzuordnung beim Importvorgang (siehe Abbildung 1)

4. Kundendaten in die webEdition Kundenverwaltung importieren

Als letztes importieren wir die Kundendaten in die webEdition Kundenverwaltung. Nach dem Login in das CMS, öffnen wir die Kundenverwaltung und rufen das Menü Kunden > Import auf. Der Wizard leitet uns durch den Import-Vorgang, bei dem wir zunächst zwischen dem CSV- oder XML-Import wählen und anschließen die Quelldaten (z.B. weImportTargetCustomer.csv) vom Server oder der lokalen Festplatte laden.

Anschließend weißen wir noch das Dateiformat, und den Textbegrenzer zu und erhalten folgende Auflistung:

Kundendaten in die webEdition Kundenverwaltung importieren

Abbildung 1: Kundendaten in die webEdition Kundenverwaltung importieren

Abhängig von der Größe der Quelldaten, kann der Importvorgang einige Zeit in Anspruch nehmen. Es kann eventuell sinnvoll sein, sehr umfangreiche Daten in mehreren Schritten zu importieren. Beim Import legen wir zudem fest, wie mit identischen Datensätzen verfahren werden soll. Beim Erstimport empfiehlt sich hier Umbenennen. Beim wiederholten Import kann die Einstellung Überschreiben oder Überspringen sinnvoll sein.

Bisher keine Kommentare

Zeitschrift „der webdesigner“ Ausgabe 06/2012 erschienen

26 Okt 2012

Vor einigen Tagen ist die aktuelle Ausgabe 06/2012 des Magazins „der webdesigner“ erschienen. Diesmal gibt es zwar keinen webEdition-Artikel von mir, aber zwei Artikel, die sich mit den semantischen Möglichkeiten in HTML5 und mit Performance-Optimierung durch CSS3 befassen.

Im HTML5-Artikel beschreibe ich neue HTML5-Tags, wie z.B. <nav>, <header>, <section> etc. und die korrekte Anwendung dieser Tags. Hierbei gibt es oft Unklarheiten, weil einige Tags (z.B. <section> und <article>) lt. Spezifikation ähnliche oder gleiche Bedeutungen besitzen.

Der CSS3-Artikel befasst sich mit dem Status Quo der CSS3-Unterstützung und verschiedenen Möglichkeiten die durch s.g. Polyfills nachzurüsten. Außerdem gibt es noch Hinweise und Erläuterungen zur Erweiterung des Box-Models, zum Spaltensatz, Hintergrundgrafiken, etc.

Daneben enthält die Ausgabe Artikel zu den Themen User Experience, Usability (Gestaltung von Fehlerseiten), PHP-Frameworks und sogar iBook Author. Weitere Themen dieser Ausgaben finden sich in der Inhaltsübersicht (PDF).

Bisher keine Kommentare

Weiterer Vorgeschmack aufs webEdition Buch: Thema Shop-Modul

23 Aug 2012

Vor 3 Tagen ist die neue Ausgabe 05/2012 der Zeitschrift „der webdesigner“ erschienen. Neben einem ersten Artikel zum CMS webEdition in der Ausgabe 04/2012 gibt es nun einen Folgeartikel mit dem Titel Online-Shops mit webEdition – Symbiose zwischen CMS und Shop-System, der sich mit dem grundlegenden Einsatz des Content Management System und dem Shop-Modul befasst und einen weiteren Einblick in das bald erscheinende webEdition Buch bietet.

Daneben gibt es in dieser Ausgabe einen weiteren Artikel von mir mit dem Titel: Videos auf der eigenen Website – Welche Möglichkeiten stehen zur Verfügung?. Im Beitrag stelle ich einige Möglichkeiten mit Vor- und Nachteilen vor, um Videos auf der eigenen Website zu integrieren und gebe Tipps, was beim Videomarketing zu beachten ist.

Eine Inhaltsübersicht mit den weiteren Themen der aktuellen Ausgabe ist hier zu finden.

Bisher keine Kommentare

Wann ein webEdition Update aufwendig (teuer) wird

14 Aug 2012

Mit dem im CMS webEdition integrierten Live-Update ist ein Update (eigentlich) eine sehr einfache und schnelle Angelegenheit. Über Hilfe > Update wird der Update-Prozess gestartet, indem auf dem Update-Server nach aktuellen Versionen gesucht wird. Für die verfügbaren Versionen gibt es zudem wichtige Update-Hinweise, wie z.B. benötigte Basistechnologien (PHP- und MySQL-Versionen). Erfolgt eine Update über mehrere Major-Releases (z.B. von webEdition 6.1 auf webEdition 6.3) werden auch hierfür spezielle Update-Hinweise gegeben. So kann es sinnvoll sein, erst auf webEdition 6.2 und dann auf webEdition 6.3 upzudaten.

Sofern sich das Update nur über wenige Releases erstreckt, tauchen (wenn überhaupt) nur wenige Probleme auf. Dabei arbeite ich immer mit Entwicklungs- und Livesystemen, um die neue Version und den Update-Prozess zu testen. Ganz anders sieht es aus, wenn eine webEdition Installation von z.B. Version 3.5 oder 4.1 auf die aktuelle Version gebracht werden soll.

So kommt man von webEdition 4 nach webEdition 6.3

Aktuell muss ich ein webEdition 4.1.2.6 auf webEdition 6.3.3 updaten. Im Vorfeld wollte der Kunde natürlich ein Angebot erhalten. Da es sich hierbei um ein Projekt, dass ich vor 5 Jahren selbst entwickelt habe, konnte ich auch den Template-Code gut einschätzen. Dennoch ist das Update alles andere als schnell gemacht und nicht ganz einfach abzuschätzen. Hierbei darf nicht vergessen werden, dass zwischen den beiden Versionen 5 Jahre Entwicklungszeit liegen. Zudem haben sich auch die Basistechnologien (PHP und MySQL) geändert. Zudem ist ein Update über das integrierte Live-Update nicht möglich.

Bei einem Update, der sich über so viele Releases erstreckt, ist es zudem sinnvoll den Template-Code zu optimieren und an die Möglichkeiten der aktuellen webEdition Version anzupassen, um auch bei zukünftigen Versionen updatefähig zu sein.

1. Datensicherung von webEdition 4.1.2.6

Wichtig ist zunächst ein Backup der aktuellen webEdition Installation zu erstellen. Dazu gehört ein Datenbankdump und die komplette Sicherung des „site“ Verzeichnisses im Verzeichnis „webEdition“. Neben dem Komplettdatenbankdump habe ich ein weiteren Dump mit der Option „Drop Table“ und ohne die Tabelle „tblUser“ erstellt. In dieser Tabelle sind alle Backend-User enthalten.

2. Manuelle Installation von webEdition 5.1.2.5

Über den Online-Installer ist derzeit nur die Installation von webEdition 6 oder höher möglich, daher muss auf die manuelle Installation des letzten webEdition 5 zurückgegriffen werden, um von hier aus dann schrittweise über das Live-Update zur Version 6.3.3 zu gelangen. Nach der Installation wird dann der zuvor gesicherte „site“ Ordner via FTP in das frisch installierte webEdition übertragen. Dann wird der DB-Dump (ohne „tblUser“) direkt in die DB eingespielt. Ich habe die „tblUser“ weggelassen, da ich mich mit dem via DB-Dump eingespielten User nicht einloggen konnte … warum auch immer. Anschließend ein Rebuild durchführen und schauen was passiert …

Bei mir trat das Problem auf, dass alle webEdition Dokumente, die auf Vorlagen basieren, zwar korrekt rebuilded und im Frontend angezeigt wurden, jedoch im Backend die Fehlermeldung Das Dokument bzw. Verzeichnis existiert nicht! ausgaben. Dieser Fehler lässt sich mit einer manuellen Bereinigung der tblTemporaryDoc beseitigen. Nach einem Rebuild ließen sich dann auch Dokumente bearbeiten. Seltsamer Weise funktionierte keine der <we:listview>’s … es gab einfach keine Ausgabe. Dennoch erstmal ein Backup machen.

3. Update auf webEdition 6.0.0.6

Das Update auf webEdition 6 ist jetzt wieder über das Live-Update möglich. Auch wenn bereits jetzt ein Update auf 6.3.3 möglich wäre, sollten die folgenden Versionen schrittweise installiert werden. Nach dem Update sollte auf jeden Fall das Updatelog überprüft werden, um Probleme zu erkennen. Nach einem Rebuild war an dieser Stelle das Problem mit den <we:listview>’s beseitigt *freu*

4. Update auf webEdition 6.1.0.2

Nach dem Update auf webEdition 6.1.0.2 prüfen wir wieder das Updatelog. In meinem Fall gab es Probleme mit der tblPrefs, bei der mehrfach identische Einträge angelegt wurden, die manuell zu bereinigen sind. Anschließend wieder einen Rebuild durchführen und testen, ob die Website weiterhin funktioniert. Jetzt wäre auch die passende Gelegenheit ein Backup zu erstellen :)

5. Update auf webEdition 6.2.0

Wir führen wieder ein Update durch und prüfen anschließend das Updatelog. Ab Version 6.2 ist auch ein Errorlog über Hilfe > Fehlerlog integriert, dass zunächst über die Einstellungen aktiviert werden sollte. Anschließend wieder ein Rebuild durchführen und das Errorlog aufrufen. Hier können erste Fehler in der Template-Programmierung erkannt werden.

6. Update auf webEdition 6.3.3

Im vorletzten Schritt führen wir ein Update auf die Zielversion durch. Anschließend wieder das Updatelog prüfen, einen Rebuild durchführen und das Errorlog einsehen. Durch die umfangreichen Änderungen am Tag-Parser werden hier Syntax-Fehler bei webEdition-Tags sichtbar, die nun korrigiert werden können. Das kann je nach Projektumfang und Qualität der Programmierung unterschiedlich lange dauern …

7. Template-Optimierungen durchführen

Nachdem ein aktuelles Entwicklungssystem zur Verfügung steht, sollte der Template-Code optimiert werden. Bei webEdition 4 Projekten musste ich immer noch sehr viel PHP-Code nutzen, weil z.B. Tags wie z.B. <we:ifIsDomain> etc. nicht existierten.

Abhängig vom Projektumfang können die notwendigen Syntaxbereinigungen im Schritt 6 und die anfallenden Code-Optimierungen im Schritt 7 unterschiedlich aufwendig sein. Wie sich bereits an den einzelnen Update-Schritten sehen kann, ist bereits das „reine“ Systemupdate durch mögliche „händische“ Datenbankbereinigungen nicht einfach und schnell möglich. Dadurch wird das gesamte Update-Prozedere zeitintensiv!

Sofern alle Entwicklungsarbeiten abgeschlossen sind, muss dann auf dem Livesystem noch webEdition 6.3.3 installiert werden. Zum Schluss wird dann ein webEdition Backup des Entwicklungssystem erstellt und ins neu installierte Livesystem eingespielt … fertig!

7 Kommentare

Warum jeder Website (Re)Launch mit Content(-Strategy) beginnen sollte

31 Jul 2012

In den letzten Jahren habe ich viele Website-Projekte begleitet, bei denen eine Website neu erstellt oder überarbeitet wurde. Positiv hervorzuheben ist, dass sich Kunden und Dienstleister bereits zu Projektbeginn Zeit nehmen, um Ziele und mögliche Zielerreichungsstrategien gemeinsam zu erarbeiten. Obwohl dabei Themen wie:

  • Navigationskonzepte
  • Suchmechanismen
  • Layout- und Design-Konzepte
  • teilweise auch User Stories

besprochen und später von den Agenturen entwickelt werden, fehlt oft die wichtige Auseinandersetzung mit dem Content! Denn ohne die Inhalte auf der Website kann auch keine Kundenansprache und somit keine Zielerreichung erfolgen.

Content mit Strategie

Unter dem relativ neuen Begriff Content Strategy wird das Bewusstsein für die konkrete Auseinandersetzung mit dem Website-Content zwar nicht neu erfunden, jedoch positiv verstärkt. Dabei setzten wir uns mit Fragen wie:

  • Wofür bzw. wozu wird der Content erstellt (Ziele)?
  • Für wen wird der Content erstellt (Zielgruppe)?
  • Welche Arten von Content (Texte, Bilder, Audio, Video, Applikationen etc.) stehen zur Verfügung (zielgruppengerecht)?
  • Wie muss der Content für die Zielgruppe aufbereitet werden (zielgruppengerecht)?
  • Wo wird die Zielgruppe erreicht (Kommunikationskanäle)?
  • Wie sieht der Contenterstellungsprozess aus (werden externe Contentquellen genutzt)?

auseinander, was dazu führt, dass sich Website-Betreiber und Agenturen stärker mit dem operativen Betrieb der Website als mit der technischen und visuellen Implementierung beschäftigen.

Bisher wird oft vernachlässigt, dass eine Website eine Software (mit allen Vor- und Nachteilen) ist, die für einen Kunden (oft) mit einem Framework (Content Management System) von einer Agentur erstellt, aber im laufenden Betrieb vom Betreiber gepflegt und gewartet werden muss. Die Website ist somit ein Softwarewerkzeug (neben vielen anderen), das am Wertschöpfungsprozess des Unternehmens beteiligt ist und von den Mitarbeitern des Unternehmens eingesetzt werden muss.

Somit trägt die Erarbeitung einer Contentstrategie (automatisch) zur Evaluierung des passenden Frameworks (CMS) auf funktionaler und prozessorientierter Ebene bei. Gleichzeitig können weiteren Anforderungen an Schnittstellen (Anbindung externer (Content-)Quellen), Rechte- und Workflowkonzepte (Redaktionsprozesse), Internationalisierungsstrategien etc. frühzeitig berücksichtigt werden.

Content Marketing als Teil der Strategie

Der bekannte Leitspruch Content is King hat an seiner Aussagekraft trotz der technischen Entwicklungen im Internet nichts einbüßen müssen. Vielmehr wird an Entwicklungen wie Content Strategy, verschiedenen Veranstaltungen (z.B. Content Strategy Forum oder Content Marketing Conference) und den Bemühungen von Suchmaschinenbetreibern deutlich, dass nur mit sehr guten Inhalten eine Abgrenzung zum Informationsüberangebot (und somit den Wettbewerbern) im Internet möglich ist.

Mit Content Marketing ist eine neue Marketing-Technik entstanden, die sich mit den Anforderungen der Content-Erstellung und vor allem der zielgruppengerechten Verbreitung auseinandersetzt, indem die Inhalte so aufbereitet werden, dass sie:

  • einen hohen Informationsgehalt
  • einen beratenden Charakter
  • und Unterhaltung

bieten. Dadurch grenzt sich das Content Marketing von den bisher üblich positiven, werbenden Informationen anderer Marketing-Techniken ab. Gleichzeitig beinhaltet eine Content (Marketing) Strategy die optimale Verbreitung des Contents in die verschiedenen Kommunikationskanäle (Unternehmenswebsite, Blogs, Social Networks etc.) und erhöht somit zum einen die Sichtbarkeit des Unternehmens und zum anderen die Wahrnehmung des Unternehmens bzw. seine Mitarbeiter als Experten für bestimmte Themengebiete.

Auf dem Weg zum Customer Experience Management

Das Customer Experience Management beschreibt einen neuen Managementansatz, der auf die sich ändernden Anforderungen von Kunden eingeht, indem der Kunde und nicht das Produkt in den Mittelpunkt rückt. Dies geschieht durch die Schaffung unternehmensweiter Erlebnis-Strategien im gesamten Kundenlebenszyklus – kurzum: aus Kunden sollen begeisterte Kunden werden.

Um die Ziele und Anforderungen des Customer Experience Management web-basiert umzusetzen (Web Experience Management) werden neue Kommunikationsformen (z.B. Social Media Marketing) mit dem (klassischen) Content Management kombiniert. Gleichzeitig werden die Mitarbeiter des Unternehmens – speziell Produktmanager, Marketing- und Kommunikationsverantwortliche – als entscheidende Erfolgsfaktoren betrachtet, da sie das Bild und das Nutzererlebnis, das ein Unternehmen bei Kunden hinterlässt, maßgeblich beeinflussen.

Dies spiegelt sich auch im Content Marketing wieder, bei dem informative und unterhaltsame (erlebnisorientierte) Informationen erstellt werden, um die Inhaltsproduzenten (Mitarbeiter des Unternehmens) als Experten und Entertainer zu profilieren. Es werden nicht mehr Produkte versprochen, sondern Know How, Expertise und Erlebnisse demonstriert.

Der Rest ergibt sich (automatisch)

Unabhängig vom gewählten Managementansatz ist der Erfolg im Internet von der Wahrnehmung und Aufmerksamkeit der (potenziellen) Kunden abhängig. Um diese zu erhalten, sind je nach Geschäftsmodell Contentstrategien entscheidend und bieten gleichzeitig Wettbewerbsvorteile!

Die Vermarktung von Content sollte, in welcher Form auch immer, fester Bestandteil einer Contentstratgie sein. Dadurch werden Erstellungsprozesse und Distributionsformen frühzeitig miteinander in Verbindung gesetzt.

Von der Content Strategie lassen sich dann weitere Aspekte, wie:

  • Navigationskonzepte
  • Design
  • Frameworks (Content Management Systeme)

(fast) automatisch ableiten. Hierbei sollte besonders berücksichtigt werden, dass das Framework die Contentstrategie (und somit den Contenterstellungsprozess) bestmöglich unterstützen muss.

1 Kommentar

Vorgeschmack aufs webEdition Buch in „der webdesigner“

27 Jun 2012

In der aktuellen Ausgabe 04/2012 der Zeitschrift „der webdesginer“ gibt es einen kleinen Artikel über das CMS webEdition und somit ein Vorgeschmack auf das bald erscheinende webEdition Buch.

Der Artikel mit dem Titel „Content-Strategien mit dem CMS webEdition – Die Zentrale für Ihre Webseite“ Gibt einen thematischen Überblick über die Einsatzmöglichkeiten von webEdition in den Bereichen Content Management, eCommerce und Online-Marketing und zeigt dabei auf, wie die Realisierung von s.g. Content Strategy durch webEdition unterstützen lassen.

Leider haben sich in dem Artikel zwei Abschnitte („Webhosting für alle: Shared Hosting“ und „Ohne Verwaltungshürden: Managed Server„) eines fremden Artikels eingeschlichen …

Weitere Themen dieser Ausgabe sind unter anderem:

  • #Fail! – Fehlermeldungen in Formularen – Formulare verlustfrei und verständlich gestalten
  • Mit WordPress-Taxonomien arbeiten – Kategorien in WordPress selbst gestalten
  • WordPress 3.4 – Mehr Komfort beim Anpassen und Erstellen von Themes
  • u.v.m

Bisher keine Kommentare

webEdition Shop-Modul – Teil 5 Rabatte umsetzen

04 Apr 2012

Obwohl das webEdition Shop-Modul über kein Promotional Pricing (Rabatt-System) verfügt, lassen sich mit dem flexiblen Shop-System verschiedene Rabatt-Strategien umsetzen. Neben Kundengruppen- und Artikel-spezifischen Rabatten bzw. Sonderpreisen lassen sich Rabatte auch auf den gesamten Warenkorb beispielsweise für die Nutzung bestimmten Zahlverfahren (z.B. 3% Rabatt bei Zahlung per Vorkasse) anwenden.

webEdtion Besonderheiten berücksichtigen

Um dynamische Rabatte, die sich auf die Gesamtsumme des Warenkorbs beziehen, umzusetzen, Bedarf es dem Verständnis über das grundsätzliche Funktionsprinzip des webEdition Shop-Moduls.

Artikel bzw. Produkte werden in webEdition wahlweise über Objekte oder Dokumente abgebildet. Dabei sollte jedes Produkt mind. ein Name, eine Beschreibung und ein Preis besitzen. Wählt ein Kunde im Shop die gewünschten Produkte und deren Menge aus, wird die Bestellung im Backend des Shops nicht mit einer Gesamtsumme, sondern mit den Informationen des Produktes zzgl. der ausgewählten Menge gespeichert. Die Gesamtsumme, eventuell anfallende Versandkosten und MwSt. werden auch im Backend bei jedem Aufruf der Bestellung neu berechnet. Dieses System-Design hat einige Vorteile, jedoch aktuell in Bezug auf Warenkorb-Rabatte auch Nachteile. Rabatte ließen sich zwar über s.g. CustomField (<we:shopField>) für jede Bestellung speichern, würden jedoch nicht bei der Kalkulation im Backend berücksichtigt werden. Somit sollten Rabatte als Shop-Artikel mit zur Bestellung hinzugefügt werden. Arbeit der Online-Shop mit fixen Rabatten wie z.B. 50 EUR für die Bezahlung per Vorkasse, müsste nur ein entsprechender Artikel mit dem Warenwert 50 EUR angelegt und bei der Kundenbestellung bei der jeweiligen Zahlweise hinzugefügt werden. Dieses Vorgehen ist für dynamische Rabatte nicht praxistauglich, da die Höhe des Rabatts erst beim Abschließen der Bestellung ermittelt werden kann.

Rabatte mit webEdition Custom Tags

Für das Frontend bietet das webEdition Shop-Modul zwar eine Unterstützung durch den Tag <we:addPercent> jedoch gibt es für das Backend keine vorgefertigte Lösung. Hier können s.g. Custom Tags hilfreich sein, mit denen sich automatisch der Rabatt errechnen und als Pseudo-Produkt beim Abschließen der Bestellung hinzufügen lässt. Dadurch wird die Bestellung korrekt gespeichert, im Backend des webEdition Shops angezeigt und an Payment-Provider wie Paypal weitergeleitet. Ein solcher Custom Tag könnte z.B. <we:discountForShop shopname=““ /> sein und sollte das Attribut shopname besitzen.

Bisher keine Kommentare

SEO war vorgestern

12 Jan 2012

Oder anders gesagt: Was Suchmaschinenbetreiber richtig (Webseiten aus Sicht des Menschen beurteilen) und Webseitenbetreiber falsch (Webseiten aus Sicht einer Suchmaschine erstellen) machen.

Von den Suchmaschinenbetreibern lernen und sie nicht verurteilen

Obwohl die Suchmaschinenbetreiber, allen voran Google, stetig bestrebt sind die Suchalgorithmen so zu verbessern, um dem Suchenden den für ihn passenden Content mit dem optimalsten Nutzererlebnis (User Experience) anbieten zu können, geht das Bestreben der Webseiten-Betreiber eher dahin ihre Webseiten so optimal wie möglich für die Suchmaschinen aufzubereiten. Angesichts des „Kampfes“ um die wenigen sichtbaren Plätze der Suchergebnisseite auch verständlich, jedoch sollte eventuell ein anderer Ansatz gewählt werden!

Mit dem Erscheinen des Google Panda-Updates Mitte August gab es (wieder einmal) einen Aufschrei in der SEO-Welt. Schnell wurde von Gewinnern, Verlierern und Betroffenen, sowie von Sünden, die es zu meiden gilt, gesprochen. Doch wer sind eigentlich die Betroffenen? Sind es diejenigen Webseiten, die nicht mehr unter den Top Ten Suchergebnissen zu finden sind oder sind die Betroffenen nicht eigentlich die Besucher von (sündigen) Webseiten, die nicht das Halten, was sie versprechen? … ich tendiere eher zum Letzteren.

Google als dominierender Suchmaschinenbetreiber möchte Webseiten so bewerten, wie es der Mensch tut. Denn Google möchte, dass die Nutzer seiner Software zufrieden mit der Suchmaschine sind. Daher passt der Suchmaschinenbetreiber unter anderem stetig seine Algorithmen zur Bewertung der Webseiten an. Andererseits muss Google seine Algorithmen ebenfalls anpassen, um Manipulationen entgegenzuwirken. Manipulationen entstehen z.B. dann, wenn Betreiber einer Webseite versuchen die Inhalte abweichend von den veröffentlichten Handlungsempfehlungen der Suchmaschinenbetreiber, durch Reverse-Engineering erworbenes Wissen, zu „optimieren“. Dieses Vorgehen lässt sich mit dem Benutzen Nicht-dokumentierter Funktionen einer API  vergleichen. Solange die internen (Nicht-dokumentierten) Funktionenaufrufe der API nicht verändert werden, funktioniert alles wunderbar – bei Änderungen kann es sein, dass die bis Dato funktionierende Implementierung gar nicht mehr nutzbar ist.

Für mich ist SEO, wie sie derzeit oft (aber nicht überall) zur Anwendung kommt, vergleichbar mit der Nutzung Nicht-dokumentierter (Google)-Bewertungs-Algorithmen zur (manipulativen) Beeinflussung des Ergebnis-Rankings. Dadurch lassen sich gewiss Wettbewerbsvorteile erzielen, jedoch muss mit entsprechenden Konsequenzen (siehe Google Panda-Update) gerechnet werden.

User eXperience Optimization (UXO) statt SEO

Was Google mit dem Panda-Update deutlich gemacht hat, wünschen sich die Besucher von Webseiten schon lange – gute qualitative Inhalte (Content).

Content  definiert sich nicht mehr allein durch Text und Bilder. Daneben haben Videos und Podcasts (Audio) an Bedeutung gewonnen – mittlerweile gibt es für alles ein Video. Diese verschiedenen Content-Elemente müssen zielgruppengerecht und optimiert für das jeweilige Ausgabemedium (Papier, Webbrowser, Mobil) zur Verfügung gestellt werden. Die gelungene Verknüpfung von Erwartungen des Nutzers und der Darbietung (inkl. Nutzung) von qualitativ guten Inhalten unter Berücksichtigung technischer Möglichkeiten schafft ein optimales Nutzererlebnis – der s.g. User Experience – und wird nicht nur vom Besucher sondern zukünftig auch von Suchmaschinen (noch stärker) positiv bewertet.

Ähnliches gilt auch für die Verbreitung (Vermarktung) des Content. Wie bei jedem anderen Produkt auch, zählt es nicht alleine ein gutes Produkt zu haben, es muss auch konsumiert/nachgefragt werden. Um eine möglichst große Verbreitung zu erreichen, ist es bspw. hilfreich eine Hohe Sichtbarkeit in Suchmaschinen zu erzielen. War dies von einiger Zeit noch das A und O so verändert sich die Bedeutung der Suchmaschinen beim Konsum erheblich. Laut einer aktuellen Bitkom-Studie (PDF) zur Nutzung digitaler Netzwerke nutzen ca. 76% der Befragten soziale Netzwerke wie Facebook und Twitter mehrere Stunden täglich. Dabei steht nicht nur der Kontakt zu „Bekannten“, sondern auch das Konsumieren, Erstellen und Teilen von Informationen (Content) im Fokus der Nutzer.

Anders als von einigen SEO-Experten propagiert, führt das Google-Panda-Update (meines Erachtens) nicht dazu, dass man jetzt noch mehr mögliche KPIs und deren Bedeutung beim Ranking analysieren und berücksichtigen muss, sondern dazu, dass sich jeder Betreiber einer Webseite allumfassend und strategisch mit (s)einer Content-Strategie beschäftigen muss. D.h. welchen eigenen Content kann ich anbieten, wie kann ich diesen eventuell sinnvoll mit weiteren (externen) Content-Quellen (Stichwort: Content Aggregation) ergänzen, um einen Mehrwert zu schaffen und wie begeistere ich meine Leser/Zuschauer (Stichwort: User Experience)? Einen ersten sehr guten Einblick gibt der Autor Nicolai Schwarz in seinem Artikel „Conent is King“ (Schwarz, Nicolai: Content is King – Geld mit Inhalten verdienen, Ausgabe 11, Webstandards Magazin, 2011. ).

Fazit

Unter Berücksichtigung der zurückliegenden und zukünftigen Entwicklungen sollten sich Webseiten-Betreiber die Frage stellen, ob vergangene Optimierungsstrategien auch zukünftig Erfolg haben werden. Zwar wird SEO auch zukünftig von Bedeutung sein, jedoch in einer anderen als der jetzigen Form. Denn wie bei der Nutzung jeder anderen Software, benötigt man für die optimale Nutzung von Suchmaschinen einen Experten der sich damit auskennt. Bei der Nutzung sollte man sich jedoch auf die, vom Hersteller der Software, zur Verfügung gestellte Dokumentation beschränken. Somit ändern sich auch die Anforderungen, die an die SEO-Experten gestellt werden. Hier könnte die Entwicklung vom SEO-Experten zum SE-Manager gehen.

Wer zukünftig nicht den Suchmaschinen-Betreibern „hinterher rennen“ möchte, sollte sich mit User Experience Optimization (UXO)  und einer nachhaltigen Content Strategie befassen – denn Content is King, Marketing is Queen und User Experience is our Princess!

Bisher keine Kommentare

Twitter- und Facebook-Buttons W3C-konform und IE-kompatibel mit webEdition

01 Dez 2011

Nachdem ich bereits erläutert habe, wie sich Web Analytics Code optimal mit webEdition integrieren lässt, möchte ich heute auf die immer beliebter werdenden Social Media-Buttons von bspw. Twitter und Facebook eingehen. Bei der Lösung, die ich vorstellen werde, ist zunächst NICHT die Datenschutz-konforme Lösung von heise berücksichtigt.

Social Media Buttons und W3C-Konformität

Facebook und Twitter bieten für die Integration ihrer Like- und Tweet-Buttons folgende Code-Bausteine an:

<a href="https://twitter.com/share" class="twitter-share-button" data-count="vertical" data-via="twitterAccount" data-lang="de">Twittern</a><script type="text/javascript" src="//platform.twitter.com/widgets.js"></script>

<div class="fb-like" data-href="www.example.com" data-send="false" data-width="450" data-show-faces="false"></div>

Versucht man nun diese Code-Bausteine mit dem W3C-Validator zu validieren, wird das nicht von Erfolg gekrönt sein, da Attribute wie „data-href“, „data-count“ etc. nicht zur offiziellen Spezifikation. Um diese Problem zu umgehen, gibt es so genannte iFrame-Alternativen:

<iframe src="http://platform.twitter.com/widgets/tweet_button.html?text=TweetText&amp;lang=de&amp;count=none" style="width:67px; height:20px;padding-top:2px;" frameborder="0" scrolling="no" allowtransparency="true"></iframe>

<iframe src="//www.facebook.com/plugins/like.php?locale=de_DE&amp;href=www.example.com&amp;send=false&amp;layout=standard&amp;width=450&amp;show_faces=false&amp;action=like&amp;colorscheme=light&amp;font&amp;height=35" allowtransparency="true" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:35px;"></iframe>

Bei dieser Lösung steht nur noch das proprietären IE-Tag ALLOWTRANSPARENCY=”true” einer Validierung entgegen. Dieses könnte man in den aktuellen Browser auch getrost entfernen. Leider führt das Fehlen von ALLOWTRANSPARENCY=”true” dazu, dass in einigen IE-Versionen ein weißer Hintergrund zu sehen ist.

Weiße Darstellung bei der iFrame-Lösung von Twitter und Facebook im Internet Explorer

Weiße Darstellung bei der iFrame-Lösung von Twitter und Facebook im Internet Explorer

Die Lösung in webEdition

In webEdition lässt sich eine W3C-konforme und IE-kompatible Lösung mit dem automatischen Setzen aller Parameter wie folgt lösen:

<we:ifNotWebEdition>
  <iframe src="http://platform.twitter.com/widgets/tweet_button.html?text=<we:var name="Title" />&amp;lang=<we:pageLanguage type="language" case="lowercase" doc="top" />&amp;count=none" style="width:67px; height:20px;padding-top:2px;background-color:transparent;" frameborder="0" scrolling="no" <we:ifClient browser="ie">allowtransparency="true"</we:ifClient>></iframe>

  <iframe src="//www.facebook.com/plugins/like.php?locale=<we:pageLanguage type="complete" case="unchanged" />&amp;href=<?php echo urlencode("http://www.example.com"); ?>&amp;send=false&amp;layout=standard&amp;width=450&amp;show_faces=false&amp;action=like&amp;colorscheme=light&amp;font&amp;height=35" <we:ifClient browser="ie">allowtransparency="true"</we:ifClient> scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:35px;"></iframe>
</we:ifNotWebEdition>

Zunächst sorgt der <we:ifNotwebEdition> Tag dafür, dass die Social Media Buttons nicht im Backend geladen werden. Der <we:var name=“Title“/> gibt den Titel des aktuellen Dokumentes aus. <we:pageLanguage type=“language“ case=“lowercase“ doc=“top“ /> sorgt für die kleingeschriebene Sprachauszeichnung des aktuellen Dokumentes, z.B. de und <we:pageLanguage type=“complete“ case=“unchanged“ /> gibt das vollständige Locale des aktuellen webEdition Dokumentes, z.B. de_DE aus. Zum Schluss nutzen wir noch das <we:ifClient browser=“ie“> Tag, um ALLOWTRANSPARENCY=”true” nur im Internet Explorer auszugeben.

1 Kommentar