Archive for the ‘Werkzeuge’ Category

24
Feb

Bye-bye MyBlogLog

   Posted by: SEO-Xplorer

Mit einer lapidaren eMail-Meldung hat Yahoo! das Ende von MyBlogLog in genau 3 Monaten angekündigt:

Dear MyBlogLog Customer,

You have been identified as a customer of Yahoo! MyBlogLog. We will officially discontinue Yahoo! MyBlogLog effective May 24, 2011. Your agreement with Yahoo!, to the extent that it applies to the Yahoo! MyBlogLog, will terminate on May 24, 2011.

After May 24, 2011 your credit card will no longer be charged for premium services on MyBlogLog. We will refund you the unused portion of your subscription, if any. The refund will appear as a credit via the billing method we have on file for you. To make sure that your billing information is correct and up to date, visit https://billing.yahoo.com.

Questions?
If you have questions about these changes, please visit the Yahoo! MyBlogLog help pages.

We thank you for being a customer on Yahoo! MyBlogLog.

Sincerely,

The Yahoo! My BlogLog Team

Ähem, nicht, dass ich jemals was bezahlt hätte… wahrscheinlich hat’s niemand, und deshalb ist’s jetzt Geschichte…

23
Nov

Neues Adsense Backend

   Posted by: SEO-Xplorer

Gerade eben ins Adsense Backend eingeloggt, und was finde ich da? Einen fetten roten Link oben rechts „Try New AdSense beta„… Neugierig ‚draufgeklickt, und in einem schicken Interface gelandet (zugegeben, das alte Interface war wirklich schon recht angestaubt 🙂 ).

Das neue Interface sieht jetzt schon viel mehr wie das Adwords-Backend Interface aus. Mit Verlaufskurven, einfacheren und erweiterten Auswertungfunktionen usw.

Die Übersichtsseite beinhaltet jetzt mehrere „Content-Boxes“ (die aber im Moment noch nicht verschiebar oder sonstwie veränderbar sind):

  • Oben Links „Alerts“ – nix spannendes drin – hatte ich aber auch noch nie, von daher für mich uninteressant. 🙁
  • Oben Rechts eine „Earning estimates“ Box, die 3 Werte beinhaltet:
    • Today’s estimated earnings
    • Estimated Earnings since last payment
    • Die Summe der Letzten Auszahlung und wann sie erfolgt ist.
  • Eine Verlaufsgrafik über den ausgewählten Zeitraum. Default beim ersten Login waren die letzten 7 Tage. Weitere Auswahlmöglichkeiten hier auf der Startseite: Heute, Gestern, die letzten 30 Tage, Dieser Monat, Letzter Monat.
  • Darunter eine Auflistung nach sehr verschiedenen Kriterien – leider ohne Summenzeile – (Custom Channels, URL-Channels, Products, Sites (sehr interessant, da IMHO diese Auflistung im Alten Backend nicht zur Verfügung stand, es sei denn man hatte für jede Site/Domain einen URL-Channel angelegt), Zeiträume (Tage, Wochen, Monate), und Ad-Types, Ad-Sizes, Bid-Types, Targeting-Types, Ad-Units. Auch hier lässt uns Google nun doch an etlichen Erkenntnissen teilhaben, die wir vorher nur vermuten konnten und/oder durch eigene Channel-Konfigurationen mühsam versucht haben herauszubekommen.

Und noch ein paar Bemerkungen zu den „Estimates“ in der Box oben rechts: hiermit ist keinesfalls eine Prognose drunter zu verstehen, sondern vielmehr eine Absicherung seitens Google, dass es sich hier um vorläufige Zahlen handelt, die noch u.U. korrigiert werden (z.B. ungültige Clicks etc.) Weiterhin ist IMHO der Wert „…since last Payment“ ziemlich unbrauchbar. Denn er zeigt mir was seit der letzten Zahlung aufgelaufen ist, aber nicht was man vermuten könnte was noch offen ist. Beispiel: Letzte Zahlung: 27. Oktober, die betrifft ja die Earnings vom September. Jetzt zeigt mir Google hier an, was ich seit dem 27.Oktober „vermutlich“ verdient habe. Was mit den „Verdiensten“ vom 1.Oktober bis zum 27.Oktober ist steht nirgendwo. Für mich persönlich wären hier letzer Monat und bisher dieser Monat eigentlich hilfreicher/interessanter.

Über die anderen Änderungen werde ich in den nächsten Tagen weiter berichten. Nur soviel sei schon gesagt auch da hat sich zum Teil erstaunliches getan…

Jetzt aber erstmal zum OM-Stammtisch in Berlin, der heute zur SES-Berlin zusammen mit dem SEO-Stammtisch stattfindet.

Angeregt durch den Artikel von Uwe Tippmann „IP to Location“ habe ich mir mal Gedanken gemacht wie viel denn die GEO-IP-Location Information tatsächlich wert ist.

Hier sind meine 7 Hauptpunkte warum die GEO-IP-Location Informationen überbewertet sind:

  1. Ungenauigkeit, durch DSL-Provider: durch Loadbalancing werden die IP-Adressen aus verschiedenen Pools vergeben, die unterschiedlichen Standorten zugeordnet werden.
  2. Relativ hohe Volatilität der Daten. Ständig werden Netzwerke und Accesspoints restrukturiert und IP-Adressen werden für neue andere Regionen verwendet.
  3. Firmen-VPNs mit vielen Standorten aber nur wenigen (einem) Internet-Breakout, die logischerweise immer nur einem Standort zugeordnet werden können, ob der dann aber wenigsten für einen realen Standort stimmt ist ebenfalls nicht gewährleistet. – Was dazu führen kann, dass Unternehmen ihre eigenen lokal ausgerichteten Google-Adwords-Kampagnen aus dem eigenen Netzwerk nicht kontrollieren können / nicht angezeigt bekommen. 🙂
  4. Mobile-Access, hier gibt die IP-Adresse bestenfalls den jetzigen Standort wieder. Mehr nicht!
  5. Der derzeitige Standort des Visitors ist noch lange nicht der „Ort des Interesses“ – d.h. der Visitor sucht u.U. vom Arbeitsplatz, plant aber für Dienstreisen oder gar Freizeit (Wohnort, Ausflugsort, Urlaub, …)
  6. Das Vertrauen in eine exakte Zuordnung (z.B. Einfügen des – meist doch nicht 100%ig korrekten – Ortes in den Content) führt eher zu einer negativen Einschätzung des Visitors in die Qualität des angebotenen Services. (Man kann nicht auf 1/100 Sekunden genau die Zeit stoppen, wenn die Stoppuhr eine Fehlertoleranz von 2/10 Sekunden hat! 😉 )
  7. Nur wenn der Webseitenbetreiber (möglichst) flächendeckend seine Dienstleistungen/Produkte jeweils lokal anbietet, haben die GEO-IP-Location Informationen einen tatsächlich nutzbaren Wert für ihn.

Spannend ist sicherlich auch der rein analytische Ansatz nach GEO-IP-Locations seine Web-Analytics zu segmentieren. Wobei hier die Frage erlaubt ist, ob denn da überhaupt eine Location Zuordnung der IP-Adressen notwendig ist, oder ob man hier nicht besser erstmal nur IP-Adressräume auf Ähnlichkeitsmuster analysiert… sicherlich aus GEO-IP-Location Sicht auch alles andere als genau, aber erst über die GEO-IP-Location zu filtern erhöht die Genauigkeit auch nicht (s.o.)

Insgesamt ist die GEO-IP-Location sicherlich ein hilfreiches Mittel – man muss sich allerdings der Grenzen und Ungenauigkeit sehr bewußt sein. Ansonsten läuft man Gefahr zuviel in die Daten hinein zu interpretieren.

1
Jun

Bing in Google Analytics

   Posted by: SEO-Xplorer Tags: , , ,

Nachdem ja schon einige über Bing im Preview berichtet haben: Stefan, JoJo, Sistrix ist Bing ja heute am Pfingstmontag Live-gegangen

Bing (www.bing.com) ist (natürlich) bei Google Analytics (noch) keine Standard-Suchmaschine, das bedeutet, dass alle Besucher, die über Bing kommen, bei Google Analytics als Besucher über „verweisende Websites“ und nicht als Besucher über Suchmaschinen ausgewiesen werden, was natürlich nicht richtig ist.

Was tun?

Zum einen könnte man warten, ob Google nicht selbst bald den eigenen Code entsprechend erweitert… oder aber man legt selbst Hand an:

Auf allen eigenen Webseiten einfach nur unter der Zeile:

var pageTracker = _gat._getTracker(„UA-xxxxxx-y“);

die Zeile:

pageTracker._addOrganic(„bing.com“, „q“);

hinzufügen…

…und fertig! – Schön wär’s! Leider hat sich Bing bzw. Microsoft was ganz tolles ausgedacht: es gibt noch einen weiteren alternativen Parameter im Refererstring, der den Suchbegriff enthält: MT= – statt des q= über die Unterschiede kann ich aufgrund der eigenen Logfiles, und noch ohne weiterere Recherche, leider noch nichts aussagen. Es bleibt jetzt zu testen, ob man Google Analytics auch eine zweite Zeile mit der gleichen Domain „unterschieben“ kann, was ich allerdings bezweifle :-(, wenn ja würde diese Zeile folgendermassen aussehen:

pageTracker._addOrganic(„bing.com“, „MT“);

Weitere Parameter im Referer-String, die ich bisher identifizieren konnte:

  • mkt= (Market) wird in der Form sprachkürzel-landeskürzel (z.B. für englischspachig Kanada: en-ca)
  • setLang= (Sprache) ebenfalls in der From sprachkürzel-LANDESKÜRZEL (z.B. für englischsprachig Kananda: en-CA
  • src= (Source) bisherig nur der Wert „IE-SearchBox“
  • filt= (Filter) wenn, dann mit dem Wert „all“
  • form= (Formular) (auch als FORM=) bisherige Werte (nicht vollständig): CBPW, QBLH, QBRE, R5FD, SOLTLB, R5FD4, IE7RE, TOOLBR, MSNH11, …
  • first= numerischer Wert
  • srch= (Search? bisher nur in Verbindung mit MT aufgetreten) Numerischer Wert
  • prov= (bisher nur in Verbindung mit MT aufgetreten) leer, bzw. 1x mit dem Wert gogl
  • utf8= (bisher nur in Verbindung mit MT aufgetreten) bisher immer ohne Wert

stay tuned…

27
Mai

Google Suggest Logfile Analyse

   Posted by: SEO-Xplorer Tags: , , ,

Jan Kutschera hat auf seinem SEO Punk Blog eine sehr leicht nachvollziehbare Anleitung veröffentlicht, wie man mit Google Analytics „sehen“ kann, was die Suchenden bei Google tatsächlich eingegeben haben und zu was sie sich dann von Google Suggest haben überreden lassen tatsächlich zu suchen…

Da dies aber über Google-Analytics Filter läuft, und also nur ab dem Moment der Erstellung dieser Filterfunktion erfasst wird, dauert es – je nach Suchvolumen das eine Site abbekommt – u.U. relativ lange, bis man ein statistisch relevantes Datenvolumen gesammelt hat.

Das, und dass, wahrscheinlich ja nicht jeder überhaupt Google Analytics einsetzt, hat mich dazu bewegt, doch mal zu sehen, ob man nicht doch noch eine ex-post Auswertung über die Server-Logfiles hinbekommt, und bin zu folgendem Ergebnis gelangt:

Annahmen:
das Webserver Logfile heisst: access_log (default bei apache)
und hat das LogFormat combined: („%h %l %u %t „%r“ %>s %b „%{Referer}i“ „%{User-Agent}i““ – ist i.d.R. auch so defaultmäßig eingestellt)

Als erstes extrahieren wir mit egrep alle Logeinträge, die als Referrer eine Google Suche haben:

egrep ‚“http://([^./]+.)*google.‘ access_log > google-search

im nächsten Schritt dampfen wir die Informationen so ein, dass wir nur noch die Landingpage und den Referrer (ohne das http://) getrennt durch ein Leerzeichen in jeder Zeile stehen haben.

sed ’s/^[^“]*“GET ([^ ]*) [^“]*“[^“]“http://([^“]*)“.*$/1 2′ <google-search >google-search-stripped

so, und hierüber lassen wir nun ein kleines php-script laufen, das uns die Informationen in zwei MySQL-Tabellen einträgt :

<?php
$conf[‚dbserver‘] = ‚localhost‘;
$conf[‚database‘] = ; // Datenbank-Name
$conf[‚dbuser‘] = ; // Datenbank-UserID
$conf[‚password‘] = ; // Datenbank-Passwort
$conf[‚tableprefix‘] = ‚gsx_‘;
$conf[‚filename‘] = ‚google-search-stripped‘;
 
$IN = fopen($conf[‚filename‘],‚r‘);
 
$dbconn = mysql_connect($conf[‚dbserver‘], $conf[‚dbuser‘], $conf[‚password‘]) OR die(mysql_error());
 
mysql_select_db($conf[‚database‘]) OR die(mysql_error());
 
$sql = sprintf(‚DROP TABLE IF EXISTS %squeries, %sparms‘,$conf[‚tableprefix‘],$conf[‚tableprefix‘]);
mysql_query($sql) OR die(mysql_error());
$sql = sprintf(‚CREATE TABLE %squeries (id bigint AUTO_INCREMENT PRIMARY KEY, landingpage text, googledomain varchar(25), querystring text, q text, hl varchar(3) DEFAULT NULL, aq varchar(3) DEFAULT NULL, oq text DEFAULT NULL, cd varchar(3) DEFAULT NULL, start varchar(4) DEFAULT NULL, aqi varchar(3) DEFAULT NULL)‘,$conf[‚tableprefix‘]);
mysql_query($sql) OR die(mysql_error());
$sql = sprintf(‚CREATE TABLE %sparms (id bigint, parm varchar(15) NOT NULL, val varchar(255))‘,$conf[‚tableprefix‘]);
mysql_query($sql) OR die(mysql_error());
 
while (!feof($IN)) {
   $line = fgets($IN, 4096);
   list($landingpage, $referrer) = split(‚ ‚,$line);
   list($googledom, $querystring) = split(?,$referrer);
 
   $sql = sprintf(‚INSERT INTO %squeries (landingpage, googledomain, querystring) VALUES ("%s", "%s", "%s")‘,$conf[‚tableprefix‘],$landingpage,$googledom,$querystring);
   mysql_query($sql) OR die(mysql_error());
   $id = mysql_insert_id();
 
   $parmpairs = split(‚&‘,$querystring);
   foreach ($parmpairs as $parmpair) {
      list($parm,$value) = split(‚=‘,$parmpair);
      $parms[$parm] = $value;
 
      $sql = sprintf(‚INSERT INTO %sparms (id, parm, val) VALUES (%d, "%s", "%s")‘,$conf[‚tableprefix‘],$id, $parm,$value);
      mysql_query($sql) OR die(mysql_error());
      switch($parm) {
         case ‚q‘:
         case ‚hl‘:
         case ‚aq‘:
         case ‚oq‘:
         case ‚cd‘:
         case ’start‘:
         case ‚aqi‘:
            $sql = sprintf(‚UPDATE %squeries SET %s = "%s" WHERE id=%d‘,$conf[‚tableprefix‘],$parm,$value,$id);
            mysql_query($sql) OR die(mysql_error());
            break;
         default:
            break;
      }
 
      $parmcount[$parm]++;
   }
}
fclose($IN);
mysql_close($dbconn);
asort($parmcount);
var_dump(array_reverse($parmcount));
?>

Jetzt haben wir alle Daten in den Tabellen. Die für die Google-Suggest Betrachtung interessantesten Google-Parameter
(q = (Query) der Suchstring nachdem tatsächlich gesucht wurde,
hl = Sprache in der gesucht wurde,
oq = (Original Query) das was der User eingegeben hat, bevor er einen Suchvorschlag ausgewählt hat,
aq = (Assited Query) Position des Suchvorschlags in der Suchvorschlagsliste – beginnend mit 0 – und ggf. mit zusätzlichen Infos erweitert,
cd = Ranking Position der eigenen Landingpage in den Suchergebnissen,
start = „Ergebnis-Seiteninformation“,
aqi = ? (vielleicht Assisted Query Index?) – hier stehen so werte wie ‚g2‘, ‚g10‘ drin – meine sehr unsichere Vermutung: Anzahl der Suchvorschläge in der Suchvorschlagsliste)
haben wir auch direkt in der Haupt-Tabelle, so dass die ersten einfachen SQL-Queries sich nur auf diese Tabelle beschränken können:

Bspl: Liste der Landingpages, Queries, Position des Suchvorschlags in der Suchvorschlagsliste, die Original Suche, und die Häufigkeit für alle Assisted Queries, d.h. die Suchen bei denen Google Suggest verwendet wurde:

SELECT landingpage, q, aq, oq, count(*) as anzahl FROM gsx_queries WHERE aq IS NOT NULL AND aq != ‚f‘ AND aq != ‚t‘ GROUP BY landingpage, q, aq, oq ORDER BY anzahl DESC, aq ASC, oq ASC

Natürlich gibts das Ganze auch zum Download.

(Für Linux-Kisten dürften alle Tools (grep, sed, php, mysql) bereits vorhanden sein. Für die Auswertung empfiehlt es sich z.B. phpMyAdmin installiert zu haben 🙂 .

Wenns denn mit Windows sein muss (Scripte nicht getestet!): hier findet man die entsprechenden Tools: grep, sed, php, MySQL)

Noch ein Wort zum Abschluß: Im Vergleich zur Analyse mit einem Web-Analyse-Tool ist dies in vielen Aspekten unterlegen, aber für eine erste Analyse was man eigentlich wirklich messen kann und möchte ist mir eine solche Script-Lösung immer recht hilfreich, da man mit so etwas sehr flexibel – wenn auch nicht besonders komfortabel – in den Daten stöbern kann…

…und wie immer: Kommentare und Verbesserungsvorschläge jederzeit willkommen 🙂

Weitere Artikel zum Thema Google Suggest: FridayNite, Sistrix, Jojo, Bastian, …