Big Data: Mit Google in die Zukunft blicken.

Sichtbarkeit in Suchmaschinen dürfte für die meisten Unternehmen weltweit kritisch für den Geschäftserfolg sein. Noch spannender wird es, wenn Unternehmen aktiv Daten aus Suchmaschinen anzapfen und diese für eigene Geschäftsentscheidungen nutzen können. Dass mit Hilfe von Suchanfragen Prognosen ansatzweise möglich sind, ist spätestens seit der Einfühung von Google Trends bekannt.

Allerdings handelt es sich hierbei gemeinhin um „Prognosen der Gegenwart“ (und weniger der Zukunft), da diese Previews vor allem dazu genutzt werden können, gegenwärtige oder sehr nah in der Zukunft liegende Phänomene zu erklären. Bekanntheit in der Öffentlichkeit erlangten insbesondere die Aussagen zur Verbreitung von Grippeviren auf Basis thematischer Suchanfragen (Vergleiche Ginsberg et al, Detecting Influenza Epidemics using Search Engine Query Data, 2009), welchen Google eine eigene Microsite gewidmet hat, die laufend Grippewahrscheinlichkeiten aktualisiert.

Schwieriger wird es, wenn das Erklärungsmodell komplexer wird (sei es, weil beeinflussende Determinanten zunehmen, oder sei es, dass die Prognose einen ferner in der Zukunft liegenden Punkt beschreiben soll).

Ein Beispiel:

Die Suchanfrage nach einer PKW- „Standheizung“ verläuft saisonal; Google kann also via Google Trends ein relativ „simples“ Modell generieren, welches diesen saisonalen Verlauf rückwirkend erklärt, diesen hinsichtlich von Wahrscheinlichkeiten verbreitert und für kommende „Saisons“ beschreibt. In Summe sieht das dann in etwa so aus:

Man kann davon ausgehen, dass mehr Nutzer den Kauf einer Standheizung in Betracht ziehen, je kälter und langwieriger die Wintermonate sind. Für ein besseres Wahrscheinlichkeitsmodell müssten also neben dem wiederkehrenden saisonalen Verlauf auch spezifische, nicht- saisonale Wettertrends abgefragt werden, welche wiederum in sich selbst durch bestimmte Suchanfragen erklärt werden müssten.

(Fiktives) Beispiel (eines Nicht-Metereologen):

Ein Wettertief in Neufundland führt zu einem Hoch in Deutschland. Werden in Neufundland verstärkt Regenschirme via Google nachgefragt, könnte dies ein Indikator dafür sein, dass in wenigen Tagen/Wochen die Temperaturen in Deutschland steigen und weniger Standheizungen verkauft werden. Unternehmen, die diese Daten sammeln können, könnten dann entsprechend reagieren und beispielsweise Marketingaktivitäten verstärken.

Die Probleme in den Prognosedaten der Suchmaschinen hierbei waren bislang:

  • Die Simplizität der Modelle verhindert aus Unsicherheit businesskritische Entscheidungen
  • Daten aus anderen Quellen waren weitaus verlässlicher
  • Die Verlässlichkeit der Daten war zu nah am Zeitpunkt des Phänomens, um überhaupt noch aktiv werden zu können
  • Nur Themen, die in Suchmaschinen diskutiert werden, können vorhergesagt werden
In diesen Tagen überrascht Google selbst mit einer Studie zum Thema, welches das letzte der vier Probleme umgeht, indem mit der Erklärung des Erfolgs von Kinofilmen ein Thema diskutiert wird, welches von den Konsumenten intensiv im Web recherchiert wird- ein Prozess, der erstaunlicherweise immer noch intensiver wird (Anstieg der Suchanfragen zu Kinofilmen im mittleren zweistelligen Prozentbereich im Vgl. zum Vorjahr angestiegen).
Zwar wird hier auch nur die nahe Zukunft vorhergesagt (< 4 Wochen), dennoch kommt das Whitepaper „Quantifying Movie Magic with Google Search“ zu erstaunlichen Ergebnissen.
Die Studie untersucht die Erklärbarkeit des Erfolgs von Kinofilmen durch Suchanfragen in der Google Websuche und kommt zu folgenden, wenig überraschenden Kernaussagen:
  • Das Suchvolumen in der organischen und bezahlten Suche erklärt den Kinoerfolg am besonders bedeutsamen ersten Wochenende mit einer Verlässlichkeit von 92%.
  • Der in weiteren Wochen nachfolgende Kinoerfolg wird nahezu identisch verlässlich vorhergesagt, sprich: die Prognosequalität nimmt in der Zukunft nicht derart ab, dass unzuverlässige Daten entstehen.
  • Das Nutzerverhalten gestaltet sich so, wie man es auch erwarten würde: potentielle Kinobesucher informieren sich zuerst unspezifisch über mehrere Filme und treffen (zumindest knapp jeder zweite) am Tag des Kinobesuchs die finale Entscheidung, welcher Film angesehen wird. Filmverleiher sollten also ihre werbliche Aufmerksamkeit so lange wie möglich aufrecht erhalten (wen wundert’s bei dem Auftraggeber der Studie?)
  • Zentral für den Erfolg von Kinofilmen ist das „Engagement“ der Nutzer in Bezug auf die Filmtrailer.
  • Die Studie ermittelte eine Verlaufsbetrachtung bei Kinofilmen für das Jahr 2012:
Auch dieses Ergebnis ist wenig überraschend: es gibt einen leicht ansteigenden Verlauf vor dem Kinostart (t-5 bis t-1), welcher dann sprunghaft ansteigt (t-1 bis release week) und halbwegs symmetrisch abflacht (ab release week).
  • Nach dem Modell führt ein Mehr an 10.000 bezahlten Klicks gegenüber einem kompetetiven Film zu einem besseren Ergebnis in Höhe von 1,9 bis 3,5 Millionen Dollar. Eine Verdopplung der Klicks führt nicht ganz zu einer Verdreifachung des Umsatzes („bis zu 7.5 Millionen Dollar“, was viel Spielraum überlässt)
Alles wenig überraschend. Betrachten wir die oben genannten Probleme mit solchen Daten:
  • Das Modell ist relativ simpel, was vermutlich nur wenige Filmverleiher zu einem Umdenken bewegen wird.
  • Daten aus anderen Quellen (wie zum Beispiel Marktforschung) sind hier vermutlich nicht besser. Die Prognosequalität ist sehr hoch. Zwischen den Zeilen kann man lesen, dass Google derzeit ebenfalls noch „Probleme“ mit der Datenqualität bei längerfristigen Prognosen hat- zwar nimmt die Qualität der Daten kaum ab, allerdings wird hier nur ein Zeitraum innerhalb eines Monats vorhergesagt, obwohl die Filme weit länger im Voraus kommuniziert werden.
  • Der Zeitraum, in dem Marketingaktvitäten noch platziert werden können, ist zwar kurz (< 4 Wochen), aber dennoch möglich. Für die Filmverleiher könnte die Spontanität des Einflusses zu einer Verschlankung der Marketingstruktur/- des Marketingsprozesses führen.
  • Filme werden online diskutiert. Der Einwand gegen diese Daten fällt weg.
Was bleibt?
Das monetäre Potenzial von Big Data-Analysen ist riesig und sollte von jedem ausgeschöpft werden, um effektiv im Markt agieren zu können (wer hier Hilfe braucht, wendet sich natürlich an Namics). Das war aber auch vor der Studie klar. Die Google-Studie zeigt auf Basis reiner Suchmaschinendaten, dass längerfristige Prognosen komplex sind und ggfs. die Aussagekraft massiv abnimmt; die Studie  kann im Gegenzug erneut beweisen, dass kurzfristige Vorhersagen eine enorm hohe Trefferwahrscheinlichkeit besitzen. Idealerweise kombinieren Unternehmen kurzfristige, mittelfristige und langfristige Indikatoren und generieren damit eigene Prediktoren. Die Zukunft kommt.

 

 

 

Die erste Bestellung: nettoSHOP.ch greift an

Am Samstag ist er live gegangen, der neue nettoSHOP.ch. Ich hab mir mal wieder erlaubt, die erste Bestellung auszulösen — ein Design-Milchschäumer. Der Schaum ist hervorragend:

Mit dem neuen Shop greift nettoSHOP die Konkurrenz an. Die guten Preise insbesondere für Weisswaren (Waschmaschine, Tumbler und Co.) werden mit einem Unterhaltungselektronik-Sortiment (Fernseher, Audio & Hifi, …) ergänzt, das sich ebenso gewaschen hat.

Wahrscheinlich ist’s der Shop mit den meisten Zahlungsarten der Schweiz, inklusive Omnichannel-Commerce-Funktionalität mit Abholung und Zahlung vor Ort.

Alle Informationen zu Namics‘ neuem Shop gibt’s auf namics.com.

B2B & B2C eCommerce – Ähnlich und doch so verschieden?

B2B vs B2C

Befasst man sich mit der Thematik eCommerce (oder Commerce im Allgemeinen) so stösst man früher oder später auf die Trennung zwischen B2C und B2B. Diese Unterscheidung im Rahmen von eCommerce ist zwar nicht neu, jedoch hat sie in den letzten … Weiterlesen

CAS Digital Typography

ZHdK - 02

Schriftgestaltung und Typografie, Hauptdisziplinen der Visuellen Kommunikation, gehören seit Jahrzehnten zu den Kernkompetenzen des Departements Design an der Zürcher Hochschule der Künste. 60–80% der Gestaltungsarbeit im Bereich der visuellen Kommunikation sind typographische Problemstellungen, analog und digital. Deshalb bietet die ZHdK gemeinsam … Weiterlesen

Veröffentlicht unter Design

Frühlingskur für unsere Kreativitätszellen

Kreativität

Anfang Mai haben wir die Schulbank gedrückt. Das Thema: Kreativ-Sein kann man lernen! 20 Consultants, Projektleiter und Kreative verbrachten deshalb zwei Tage mit dem Innovations- und Kreativitätsforscher Mario Pricken. Who the f*** is Mario? In der Kreativitätsszene ist der Österreicher fast … Weiterlesen

Der neue Frühling der guten alten Telefonnummer

google-hangout

Kommunikation braucht Absender, Empfänger und typischerweise auch deren Adresse (ausser sie treffen sich per Zufall auf der Strasse). Bei einem Telefongespräch beispielsweise die gute alte Telefonnummer. Anbieter von Online-Anwendungen haben Identifikation meist mit Usernamen oder Mail mit E-Mail-Adressen ‚gelöst’. Dies … Weiterlesen

Core Data Multithreading mit MagicalRecord

Nach einigen Abstürzen aufgrund von Zugriffen auf einen NSManagedObjectContext (Kontext) durch mehrere Threads haben wir nach einer Lösung gesucht, die unseren Code robuster macht. Das durch nutzlose Fehlermeldungen mühsame und zeitaufwändige Debugging solcher Fehler wollten wir unbedingt vermeiden.

Die Grundregeln bei dem Umgang mit Core Data Multithreading lesen sich einfach:

  • Jeder Kontext darf nur von dem Thread aus verwendet werden, auf dem er erstellt wurde.
  • NSManagedObjects (Objekte) sind fest an ihren Kontext gebunden. Nur ihre IDs dürfen Kontext- und damit Threadgrenzen passieren.

Unser Projekt enthält zahlreiche NSOperations (Operationen), die vom System auf einem Hintergrund-Thread ausgeführt werden.  Zur Einhaltung der oben genannten Regeln wird am Anfang jeder Operation ein neuer Kontext erstellt. Dieser Kontext wird nun über mehrere Hierarchien an Hilfsobjekte weitergereicht, um beispielsweise Objekte über NSFetchRequests zu holen.

Folgende Probleme ergeben sich dadurch:

  1. Die Signaturen vieler Methoden werden durch einen Kontext-Parameter aufgebläht.
  2. Eine Hilfsmethode, die intern den Standard-Kontext verwendet, wird von einem zweiten Entwickler in gutem Glauben aus einer Operation heraus aufgerufen.
  3. Die Übergabe von nil als Kontext an Hilfsmethoden ist zum Synonym für den Main-Thread-Kontext (Standard-Kontext) geworden. Dieser Automatismus kann aber für Fehler sorgen, wenn man vergisst den korrekten Kontext mitzugeben.

 

Magical Record

Offensichtlich gibt es einen engen Zusammenhang zwischen Kontext und Thread. Also warum wird der Kontext nicht einfach an den Thread gebunden und passend zum aktuellen Thread automatisch gewählt. Mit diesem Gedanken stößt man bei der Recherche auf Github schnell auf MagicalRecord.

Inspiriert von der Active Record Implementierung in Ruby on Rails bietet MagicalRecord zum einen Methoden zum Importieren von Daten und zum anderen die kompakte Erstellung von Fetch-Requests wie im folgenden Beispiel:

[User findFirstByAttribute:@“phone“ withValue:@“012“]

Ohne MagicalRecord wäre die Erstellung des gleichen Fetch-Requests mindestens fünf Zeilen lang.

Unterliegend verwendet MagicalRecord sogenannte Nested-Contexts, die Apple mit iOS 5 eingeführt hat. Dabei hat ein Kontext keinen NSPersistentStore zum Speichern, sondern einen Eltern-Kontext. Beim Aufruf von „save:“ werden die Änderungen in den Eltern-Kontext und nicht direkt in den NSPersistentStore geschrieben.

Das Einbinden von MagicalRecord gestaltete sich in unserem Fall unter iOS 6 erstaunlich einfach. Nach der Initialisierung des defaultContext mit Hilfe des eigenen NSPersistentStoreCoordinators, erstellt MagicalRecord alle weiteren Kontexte automatisch.

Diese bekommt man sehr einfach mit der statischen Methode contextForCurrentThread der NSManagedObjectContext-Klasse geliefert. Gibt es für den aktuellen Thread keinen Kontext, wird einer erstellt.

In unserem Projekt haben wir nun alle Zugriffe auf den Standard-Kontext durch den aktuellen Thread-Kontext ersetzt. Beim Zugriff vom Main-Thread entspricht dies dem defaultContext.

Der erstellte Thread-Kontext hat automatisch den defaultContext als Eltern-Kontext. Dies entspricht in etwa dem häufigen Fall (ohne Nested-Contexts), dass der Standard-Kontext den Thread-Kontext observiert und alle Änderungen abspeichert.

Es hat sich bewährt, am Anfang und am Ende jeder Operation den contextForCurrentThread mit reset zurück zu setzen, damit nicht versehentlich alte Änderungen im Kontext verbleiben, denn der contextForCurrentThread wird wiederverwendet, solange der Thread nicht vom System abgeräumt wurde.

Zum Speichern bietet MagicalRecord verschiedene Methoden an. Bei Umstellung von einem bestehenden Projekt ohne Nested-Contexts sollte man alle Kontext save: Methoden durch saveToPersistentStoreAndWait ersetzen, da bei beiden Methoden alle späteren Aufrufe davon ausgehen können, dass alle Daten in den NSPersistentStore gespeichert wurden.

Will man den aktuellen Thread nicht blockieren, so kann man auch asynchron mit saveToPersistentStoreWithCompletion: speichern. Aufwändiger wird es, wenn man bisher den Erfolg der save: Methode ausgewertet hat. In diesem Fall muss man alles was nach dem Speichern passieren soll manuell in den completionBlock von saveToPersistentStoreWithCompletion: verlegen.


[context saveToPersistentStoreWithCompletion:^(BOOL success, NSError *error) {
      if (success) ...
}];

 

Ergebnis iOS 6

Ein Abgleich des contextForCurrentThread mit unseren manuell durchgereichten Kontexten hat einige Fehler in unserem alten Code aufgespürt. Alle drei am Anfang aufgezählten Probleme sind aufgetreten und durch threadgebundene Kontexte gelöst worden.

Man muss natürlich weiterhin selbst darauf achten, dass man NSManagedObjects nicht über Threadgrenzen hinweg verwendet.

Will man explizit einen anderen Kontext verwenden, so kann man eine Version des persistierten Objekts durch die Methode inContext: im gewünschten Kontext bekommen.

[[Customer findFirst] inContext:differentContext]

 

Desaster auf iOS 5

Nach den Umstellungen lief die App unter iOS 6 problemlos. Ein Test auf iOS 5 war dagegen ein Desaster. Die App ist nicht einmal mehr gestartet.

Innerhalb von performFetch: eines NSFetchedResultsControllers ist es reproduzierbar zu Deadlocks gekommen. Sinnvolle Fehlermeldungen gab es nicht. Aber das war nicht das einzige Problem: Nested-Contexts auf iOS 5 führen zu Deadlocks, fehlerhaften Suchergebnissen, falschen Sortierungen und Abstürzen.

Eines wird daraus klar: Nested-Contexts wurden zwar unter iOS 5 eingeführt, aber sind so fehleranfällig, dass man sie erst ab iOS 6 in einer produktiven Umgebung einsetzen sollte. Apple hat an dieser Stelle leider geschlafen.

Dieser Blog liefert eine Beschreibung der oben genannten Probleme.

 

Magical Record ohne Nested-Contexts

Da wir MagicalRecords Fetching, Logging, ErrorHandling, etc. weiter verwenden wollten, haben wir alle Abhängigkeiten zu Nested-Contexts aus dem Framework entfernt und lassen den defaultContext andere Kontexte observieren.

Das Erstellen von Kontexten, Speichern und alle blockbasierten Methoden mussten dazu angepasst oder entfernt werden.

 

Automatische Tests

Beim automatischen Testen eines Projekts ersetzen wir vor jedem Test MagicalRecords defaultContext durch einen neuen Kontext der einen NSInMemoryStore verwendet. Da alle anderen Kontexte vom defaultContext abgeleitet werden und daher den selben NSPersistentStore verwenden, muss man ansonsten nichts weiter beachten.

 

Fazit

Trotz der wichtigen Lehre, dass Nested-Contexts unter iOS 5 unbrauchbar sind und des damit verbundenen zusätzlichen Aufwands hat sich die Arbeit gelohnt. Dank MagicalRecord und etwas Handarbeit ist der Code jetzt zentralisierter, kürzer und robuster geworden. Kontexte werden passend zum Thread automatisch gewählt, Fehler werden vermieden, Abstürze wurden beseitigt und als Entwickler kann man wieder ruhig schlafen.

Neuromarketing Kongress 2013 – Antworten des Marketings auf die Zukunftstrends

Neuromarketing Kongress 2013 - Antworten des Marketings auf die Zukunftstrends

Am 26. April fand in der BMW World in München der nun schon sechste Neuromarketing Kongress des Haufe-Verlags und Gruppe Nymphenburg statt. Thematisiert wurden in diesem Jahr die aktuellen Marketing-Trends Age-, Gender, Trust- und Global-Marketing in Anlehnung an das Neuromarketing. … Weiterlesen

Recommendersysteme (Teil 2) – Erwartungen, Potenzial, Schwächen, Stärken.

Wie bereits in Teil 1 beschrieben, sollen Recommendersysteme dem Anwender helfen, aus einer grossen Menge an Informationen oder Produkten das herauszufiltern, was für ihn individuell von Nutzen ist. Genau dieser individuelle Nutzen ist jedoch nur schwer zu messen und nicht immer im gewünschten Ausmass zu erreichen.

(mehr …)

B2B Content Marketing: Ein Beispiel aus der Schweiz

Ein Mitarbeiterblog wie derjenige von Zühlke demonstriert die Expertise des Unternehmens mit hochwertigem Content.

Wir lieben Content Marketing und sind davon überzeugt, dass Content Marketing und B2B besonders gut zusammenpassen. Es freut uns deshalb, wenn wir auf neue Beispiele stossen, die dies vor Augen führen. Noch mehr freuen wir uns, wenn wir unsere Kunden … Weiterlesen

Seite 20 von 205« Erste...10...1819202122...304050...Letzte »