Archiv für Juli 2010

Twitter & Co. verdrängt organische Suchergebnisse bei Google

Mittwoch, 14. Juli 2010

Das Chamäleon Google verblüfft mich immer wieder. Um den Büroalltag bei Temperaturen von über 35 Grad etwas angenehmer zu gestalten, entschied ich mich vor wenigen Tagen, eine modische kurze Hose im Internet zu erstehen. Daraufhin fütterte ich Google mit den doch sehr generischen Begriffen „kurze hose“, in der Hoffnung, passende Modelle geliefert zu bekommen.

Zu meiner Überraschung erhielt ich neben den allseits bekannten Ads von Otto und bonprix im organischen Bereich 3-4 Ergebnisse, die in einer Liste scrollbar waren. Auffällig war hierbei auch der Button „Anhalten“ (siehe Scrennshot).

Continue reading “Twitter & Co. verdrängt organische Suchergebnisse bei Google” »

Google bringt großes Update der Report-API

Dienstag, 13. Juli 2010

Wer bisher die AdWords-API eingesetzt hat, um Reports automatisiert zu erstellen, auf den kommen in v201003 der API eine Reihe von Neuerungen zu, wie der Blogeintrag auf dem offiziellen AdWords API Blog erklärt, unter anderem:

  • Der ReportJobStatus wurde abgeschafft, es ist kein Polling mehr nötig, man erhält stattdessen einen direkten HTTP-Downloadlink auf den Report.
  • Die Reporterstellung soll schneller geworden sein.
  • Reports können in verschiedenen Formaten, darunter auch CSV und gezipptes CSV – heruntergeladen werden. Das bringt enorme Vorteile in der Verarbeitungsgeschwindigkeit und dem Platzbedarf gegenüber dem ineffizienten XML-Format.
  • Klare getrennt sind nun Reportdefinition und die konkrete Reporterstellung: Definitionen werden einmalig angelegt und dann beliebig oft zur Reporterstellung verwendet.

Seit einigen Tagen wird auch bei uns die neue API eingeführt, die neue API bringt auf Reportseite Vereinfachungen und sinnvolle Verbesserungen mit. Ich begrüße insbesondere die Einführung des CSV-Formates und der direkten Downloadlinks. Die neue API befindet sich jedoch noch im Beta-Stadium, es sind also noch Änderungen bis zur finalen Freigabe möglich.

Google und eCommerce: Was treibt Google an?

Dienstag, 13. Juli 2010

Es fällt langsam schwer, den Überblick über alle kostenlosen Services und Beta-Tests von Google im Online-Marketing und eCommerce zu behalten. Was ist Googles Motivation, die Conversion Rate der Shops mit den zahlreichen, teilweise kostenlosen Services wie Analytics, Conversion Optimizer, Google Checkout oder Commerce Search zu verbessern? Continue reading “Google und eCommerce: Was treibt Google an?” »

Google Commerce Search 2.0

Dienstag, 13. Juli 2010

Heute bietet jeder Online-Shop eine Suchfunktionalität an, leider ist die Suche oft nicht ausgereift und macht es schwierig, das gewünschte Produkt zu finden. Die Suche “Asics Laufschuhe” kann in 0 Treffern enden, wenn der Shopbetreiber in der Produktbeschreibung durchgehend “Asics Running Shoe” schreibt. Continue reading “Google Commerce Search 2.0” »

5 Reasons for Keeping Your Git Commits as Small as You Can

Freitag, 09. Juli 2010

Keeping your commits small brings you several benefits when using Git as source code management tool and is generally good advice:

You should try to split your changes into small logical steps, and commit each of them.They should be consistent, working independently of any later commits, pass the test suite, etc.

So what exactly do you gain from following this advice?

Makes your commit messages more accurate

Writing commit messages that describe the content of your patch can be difficult. Especially when you cram many changes into a single commit. Try to follow the ‘One Single Change Per Commit’ rule and prefer two commits like

Fix logging bug in Logger.warn()

Organize imports.

over a one long commit like

Fix logging bug in Logger.warn() and organize imports.

It is not always this easy but often possible, just try it.

Makes continuous integration easier

The whole idea behind continuous integration (or CI) is to integrate your own code with the main repository as often as you can. If you make small changes and put them into single commits you may integrate them often (and probably should). Doing so minimizes merge conflicts with your team members. You can read more about CI in a Git context in Martin Fowler’s excellent FeatureBranch article.

Makes git-revert more useful

git-revert allows you to apply a single commit negatively and thereby roll it back and make it undone. This comes in handy on several occassions: When taking back a change which was inadvertently pushed too early or when taking out code once again which turns out to contain bugs. When keeping your commits small chances are you just can revert this single commit as a whole. No need for cherry picking single lines of code.

Makes git-bisect more useful (my favorite)

git-bisect is a fine bug hunting tool whenever you encounter strange behaviour which you know was not there before in an older version of your code. It deserves an article on its own.

But the basic idea is to switch back to any older version of your code which did not contain the bug, tag this version as good and then let git-bisect do its magic (it’s basically just a binary search through your commit history, which is kind of magic anyway). When git-bisect finishes its search it outputs the single commit which introduced the bug.

And that is why it’s especially useful to keep your commits small when you want to git-bisect often: When git-bisect tells you the buggy commit and it is small enough you can often enough spot the buggy line(s) immediately.

You can combine multiple commits into one large commit after all

If for some reason you believe you created too many commits when a single should have been sufficient then you can squash several commits into one with git rebase. git ready explains how squashing commits with rebase works. Beware that this only works as long as you have not already shared your local changes with anyone else.

apples soon to be tarted… image published by jek in the box {is traveling}
under a Creative Commons License.

Trademarks in Anzeigen erlaubt

Freitag, 09. Juli 2010

Der Europäische Gerichtshof bestätigt ein früheres Urteil, das erlaubt, Namen von Konkurrenten als Keywords in Anzeigen zu verwenden. Das berichtet das Wallstreet Journal auf seiner Website.

GWT 2.1 M2 released

Donnerstag, 08. Juli 2010

The second milestone of GWT 2.1 was released last friday. The integration with Spring Roo, a tool which incorporates a code generator as well as compile-time weaving capabilities has been pushed forward. I also had a look at the Ray Ryan’s new video Architecting GWT apps, which builds on his presentation from last year, Best Practices for Architecting GWT App. It looks like the Roo integration will save you a lot of typing plus it uses the current best practices for architecting GWT apps. The MVP (Model-View-Presenter) pattern which Ray introduced last year is superseded by Activities (a concept taken from Android) which in turn are managed by an Activity Manager. This combination should make the tedious issue of history management history ;)

I hope to get to test the GWT + Roo combination soon, I will post back my results then.

Google Broad Match Modifier auch über API verfügbar

Mittwoch, 07. Juli 2010

Wie schon seit längerem bekannt, wurde im Mai in Kanada und UK der Broad Match Modifier eingeführt. Hierbei handelt es sich um eine Ergänzung des normalen Broad Matches, die sicherstellt, dass man die Beschreibung weitgehend passend wieder Continue reading “Google Broad Match Modifier auch über API verfügbar” »

Bid Management: Schlechte Klicks schneller erkennen

Mittwoch, 07. Juli 2010

Bleibt das noch länger so? (Image published by Hospi-Table under a Creatice Commons License.)

Analysiert man SEM-Kampagnen, so fällt auf, dass oft für einen Großteil der Keywords noch nie eine Conversion angefallen ist.
Wenn man eine Conversion Rate von 3% annimmt, könnte man jetzt über die Poisson-Verteilung* ausrechnen, mit welcher Wahrscheinlichkeit bei bspw. 50 Klicks schon eine Conversion hätte eintreten müssen (das geht übrigens auch für die Fußball-WM 2010):

P(“Noch kein Kauf”) = 1 / exp(0.03 * 50) = 22.3%

Mit einer Sicherheit von 78% hätte also schon ein Kauf erfolgen sollen. Mit Vorgaben für ein Sicherheitsniveau kann man dann auch errechnen, wie lange man noch warten (und Geld ausgeben) will.

Viel praktischer und billiger wäre es jedoch, aus den schon erfolgten (nicht konvertierten) Klicks, Daten zu gewinnen, um die Conversion-Wahrscheinlichkeit schneller korrekt einschätzen zu können. Es stellt sich also die Frage, ob sich anhand des Benutzerverhaltens auf der Website schon nach wenigen Klicks erkennen lässt, ob man es mit potenziellen Käufern oder eher mit Nicht-Käufern zu tun hat. Gibt es gar explizite Verhaltensmuster von Nicht-Käufern?

Das Verhalten auf der Webseite kann mittels Web Analyse Tools gemessen werden, die auf Logdateien operieren oder über speziell dazu in die Shops eingebaute Tracking-Pixel. Die Herausforderung ist dabei die Menge des auftretenden Datenvolumens. Der Aufruf einer einzigen Seite kann pro Besucher hunderte Zeilen Einträge in der Logdatei generieren (wegen der Bilder und Videos in der Seite), deshalb bindet Software zur effizienten Auslieferung von Webseiten die Analysefunktion oft direkt in die Backend-Architektur ein. Tracking-Pixel werden meist von einem externen Server abgerufen, der so dimensioniert sein muss, dass auch in Stoßzeiten keine Engpässe entstehen. Ein bilden von Webseiten-Kategorien kann helfen, das anfallende Datenvolumen über Verdichtung zu minimieren.

Mit Machine-Learning Techniken können aus den so gewonnenen Daten nun Vorhersagemodelle erstellt werden. Der Merkmalsraum, auf dem sie operieren, ist unten skizziert. Das Problem an sich muss nicht einmal vom Gesichtspunkt einer Regression her gesehen werden, sonder ist prinzipiell eine binäre Klassifikation: Kauft ein solcher Kunde, oder kauft er nicht? Hier bieten sich Support Vector Maschinen (SVMs) förmlich an, die  Continue reading “Bid Management: Schlechte Klicks schneller erkennen” »