Webbstatistik på skrivbordet med Piwik & Geektools

Piwik har jag skrivit lite om förut. Det är ett opensource web analys script (php/mysql) som man kan köra på sin egen webbserver.

Piwik har ett eget API som man kan få fram olika data från. Jag gjorde ett enkelt script som frågar efter besökare, unika besökare och actions. Actions är en sammanslagning av nedladdningar, sidvisningar och utgående länkar. Typ hur många saker en besökare klickar på. Jag visar denna info på skrivbordet med Geektools. Är du inte en Mac användare så finns det säkert någon annan lösning. På min Mac är också PHP version 5.3.4 installerat, php version 5.2 eller högre behövs för jag använder json_decode i mitt script. Nedan visas hur scriptet ser ut på skrivbordet.

Så här ser scriptet ut för att fråga Piwiks API om dessa uppgifter.

$myworld_json = file_get_contents('URL_TO_YOUR_PIWIK_INSTALLATION/index.php?module=API&method=VisitsSummary.get&idSite=3&period=day&date=today&format=JSON&token_auth=YOUR_API_TOKEN');

$myworld_obj = json_decode($myworld_json);

$myworld_action_json = file_get_contents('URL_TO_YOUR_PIWIK_INSTALLATION/index.php?module=API&method=VisitsSummary.getActions&idSite=3&period=day&date=today&format=JSON&token_auth=YOUR_API_TOKEN');

$myworld_action_obj = json_decode($myworld_action_json);

print "myWorld.se - Visits: " . $myworld_obj->{'nb_visits'} . ", Unique: " . $myworld_obj->{'nb_uniq_visitors'} . ", Actions: " . $myworld_action_obj->{'value'};

Svaren får man i JSON och beroende på vad man skickar med i urlen så kan man få daglig, veckovis, månadsvis statistik. I exemplet ovan så frågar jag bara efter daglig statistik.

&method=VisitsSummary.get&idSite=3&period=day&date=today
&method=VisitsSummary.get&idSite=3&period=week&date=today


Ersätter man &period=day med &period=week i exemplet ovan får man veckovis rapportering. &method anger vilken statistik man frågar efter, VisitsSummary.get är olika besöksstatistik. &idSite=3 är vilken webbsida man vill ha statistik för. Jag har Piwik installerat på 5-6 olika webbar och myWorld.se har id 3. &date=today är vilken dag man frågar efter. today, yesterday eller YYYY-MM-DD är tillåtna.

Geektools sätter man upp som vanligt. Command pekar på scriptet, börja med php så scriptet körs med php. Sen kan det vara bra att sätta en längre refresh så man inte frågar var 3’e sekund. 1200 sekunder är 20 minuter. Timeout satte jag på 8 sekunder så det avbryts rätt snabbt om jag tex inte har någon internet förbindelse.

Fyra år med myWorld

Via WordPress pluginet Useless Stats fick jag reda på att min blogg fyller 4 år i morgon.

Useless Stats for myWorld

Generated 22.08.2007 by Useless Stats v1.21

  • First post was made on 23.08.2003.
  • This blog is 3 years, 364 days old.
  • Average of 0.14 posts per day in the past week.
  • Average of 0.03 posts per day in the past month.
  • Average of 0.40 posts per day since the start of the blog.
  • Average of 0.00 comments per post in the past week.
  • Average of 0.00 comments per post in the past month.
  • Average of 0.58 comments per post since the start of the blog.