Blog statistieken nl

Door xantus op dinsdag 19 januari 2010 00:08 - Reacties (6)
Categorie: PHP, Views: 13.978

Zoals mede bloggers wel weten zijn de statistieken die Tweakers over een weblog toont zeer summier te noemen. Verder dan het aantal views en reacties per post komen ze niet. Ik snap dat dit voor ver weg de meeste genoeg is, maar zelf houd ik van wat meer informatie. Niet direct omdat het nuttig is, maar vooral omdat het leuk is. Zo vind ik de locatie van lezers altijd zeer interessant.
Op mijn oude website draaide Google Analytics en iets in die trend wil ik toch ook wel weer hebben. De zoektocht is dus begonnen opzoek naar een mogelijkheid om in ieder geval de volgende statistieken te verzamelen:
  • Land van herkomst
  • Pageviews per dag
  • Unique views per dag (niet per se noodzakelijk omdat dit ook afgeleid kan worden uit correlatie tussen pageviews en totale views zoals Tweakers die weergeeft)
Mijn huidige statistieken
De huidige statistieken op mijn site uit Google Analytics geëxporteerd via de Google Chart API en mijn dokuwiki ganalytics plugin.
De unieke bezoekers
http://chart.apis.google.com/chart?cht=lc&chxt=x,x,y&chco=007B9F,55A7BF,AAD3DF&chs=540x200&chf=bg,s,FFFFFF&chd=s:Shu9kjjnYlg3grtedCAAAAAAAAAAAAA,tgrooiynx0qbZofqngbQYreZSTdfmuT,jrplorgbnvoqucfrwj7ibquyxptXXr&chxl=0:|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|1:|January|2:|0|5|10|15|20|25|30|35|40|45|50|55|60|65|70&chdl=January|December|November&chg=16.67,14.29,1,5,13.33&chm=R,FF0000,0,0.572222222222,0.575222222222

De pageviews
http://chart.apis.google.com/chart?cht=lc&chxt=x,x,y&chco=FFC004,FFD558,FFEAAC&chs=540x200&chf=bg,s,FFFFFF&chd=s:IdWjYaRXXZShcXTZOCAAAAAAAAAAAAA,bcVZXZslacVaNUSUURPGMSQMLLhTUkS,dabSSdPebWWUhOSjiSbNTXZYdSkON9&chxl=0:|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|1:|January|2:|0|50|100|150|200|250|300|350|400&chdl=January|December|November&chg=16.67,25,1,5,13.33&chm=R,FF0000,0,0.572222222222,0.575222222222

En natuurlijk de belangrijkste, de kaart :D
http://chart.apis.google.com/chart?cht=t&chtm=world&chs=440x220&chco=FFFFFF,FFFFFF,019E18&chf=bg,s,EAF7FE&chld=YTMZMQLYRWSRAOSDSNSMLBLIKHJEBWBTBSSVFOJMIMGTGUPYMEQAMUTNTJCMAZCRBODOECANUGMNPATTALMDBHDZCUJOMAPRMTISUZLKAMNPUYNGCYLUKWPEGEKZSAVEEEAELVCLBYBDCOEGIESIBANZILPKTWRSHKVNSGLTMYPHHRSKIRZAPTTHNODKMXJPATUAGRBGKRSEIDTRCHFIARBRESAURORUCZHUITCABECNINFRGBPLDENLUS&chd=s:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBCCCCCCCCCDDDDDDDDDDEEEFFFFFGGGHHIIIJKMOPPVYby9

Zoektocht naar iets beters
Na wat rond te googlen kwam ik Tweakblog.stats tegen. Deze service is schijnbaar gemaakt in de tijd dat Tweakers zelfs helemaal geen statistieken bijhield (alleen aantal views per post). Deze service houdt de volgende gegevens bij:
  1. Totaal aantal bezoekers
  2. Totaal aantal bezoekers per pagina
  3. Pagina’s per bezoeker (+ hits per pagina)
Eigen implementatie
Helaas komt deze service ook niet in de buurt van wat ik zoek.
Daarom is er nog maar een mogelijkheid over. Het zelf te maken zoals een echte tweaker betaamt :9 . Hierdoor werd het eisenpakket nog iets uitgebreid wegens andere toekomstige plannen, zoals het opzeggen van mijn huidige webhost. Het totale eisenpakket werd daarmee:
  1. Landkaart met land van herkomst
  2. Grafiek met pageviews per dag
  3. Zeer simpele database structuur
  4. Geschreven in PHP en MySQL
  5. Eenvoudig te porten naar WIZ200WEB in combinatie met een Vinculum als database.*
  6. Eenvoudig op een Tweakblog te plaatsen
* Dit zal een simpele http server draaien voor statische pagina’s met een nog simpelere interpreter voor dynamische pagina’s. Op de Vinculum zal een zeer uitgeklede database manager draaien die de data in flatfile formaat opslaat en beheerd.

Punt 1-2
Dit brengt ons gelijk bij punt 1-/2. Hoe het eenvoudig (zie punt 5) maken van een dynamisch plaatje? GD, Imagemagick en dergelijke zijn dus allemaal uitgesloten. Gelukkig heeft Google een bijna oneindige verzameling aan API’s voor van alles en nog wat, zo ook de Google Chart API. Hiermee kan je door een simpele URL te maken een grote verscheidenheid aan grafieken creëren. Bijvoorbeeld

code:
1
http://chart.apis.google.com/chart?cht=lc&chd=s:cEAELFJHHHKUju9uuXUc&chco=76A4FB&chls=2.0,0.0,0.0&chs=200x125&chg=20,50,3,3,10,20&chxt=x,y&chxl=0:|0|1|2|3|4|5|1:|0|50|100

geeft
http://chart.apis.google.com/chart?cht=lc&chd=s:cEAELFJHHHKUju9uuXUc&chco=76A4FB&chls=2.0,0.0,0.0&chs=200x125&chg=20,50,3,3,10,20&chxt=x,y&chxl=0:|0|1|2|3|4|5|1:|0|50|100
Perfect dus. De benodigde URL wordt eerste in PHP samengesteld en vervolgens word de grafiek via een header redirect getoond.

Punt 3
Omdat de database later als flat files opgeslagen worden moeten deze simpel van opzet zijn. De gekozen opzet bevat de volgende twee tabellen:

Ip2country
+--------------+------------+--------------+
| Longip_start | longip_end | country_code |
+--------------+------------+--------------+
| 3221234342   | 3321234566 | NL           |
| 3321234566   | 3321234567 | BE           |
+--------------+------------+--------------+

Deze tabel bevat een standaart ip naar land LUT. Doordat de longip’s op volgorde gesorteerd zijn kan in maximaal 16~17 stappen het land bepaald worden (ookal bevat deze database 110000 entry’s).

Views
+------+---------+-------+----------+
| post | country | views | date     |
+------+---------+-------+----------+
| foo  | NL      | 10    | 10-01-18 |
| foo  | BE      | 1     | 10-01-18 |
+------+---------+-------+----------+

Hierin worden per post het land, het aantal bezoekers en de dag dat ze kwamen opgeslagen.

Punt 3
Spreekt voor zichzelf. Mijn huidige host ondersteund alleen PHP en MySQL.

Punt 5
Punt 5 is vooral gericht op de toekomst, maar is wel belangrijk. Het moet dus geen complex geheel worden, maar een simpel scriptje zoals ik (iedereen?) schreef toen ik net PHP had geleerd. Geen functies classes en dat soort ongein dus.

Punt 6
Dan punt 6. In een blog post kan je alleen de standaard Tweakers RML codes gebruiken, dus js, flash of weet ik veel wat is niet mogelijk om de benodigde informatie van de gebruiker te weten te komen. Gelukkig kunnen we altijd nog een dynamisch plaatje op de pagina embedden.

Configuratie
Om het een beetje eenvoudig configureerbaar te houden zijn ook een paar parameters toegevoegd. Hiermee kunnen de volgende dingen ingesteld worden:
  • Width, breedte van de grafiek of kaart (hoogte wordt hiernaar geschaald)
  • Continent [africa|asia|europe|middle_east|south_america|usa|world], spreekt voor zich
  • Only this blog, grafiek of kaart toont alleen de data van de huidige post
  • Map, laat een landkaart zien
  • Line, laat een lijngrafiek zien
  • Timeback -DD[|-DD], specificeert hoever de data terug gaat / eventueel tussen twee intervallen
  • Dates YYYY-MM-DD[|YYYY-MM-DD], laat de data tussen nu en een vaste datum zien of tussen twee data
  • Selected blogs [blog1[|blog2[|blog3[|...]]]], laat de data van een geselecteerd aantal posts zien
  • Hidden, laat een 1px plaatje zien in plaats van een grafiek
  • Don't count, telt de pageview niet mee. Handig als er meerdere grafieken op 1 pagina getoond worden.

Resultaat

Het resultaat is hieronder te zien :> .

Locatie van alle pageviews vanaf 18 januari 2010:
http://www.greenbird.info/img.php?m&d=2010-01-18&s

Pageviews van de gehele blog, per dag tot 7 dagen terug:
http://www.greenbird.info/img.php?l&t=-7|1&s

Pageviews van alle 3 de posts (die tot zover gemaakt zijn), per dag tot 7 dagen terug:
http://www.greenbird.info/img.php?l&t=-7|1&b=ganalytics-dokuwiki-plugin|blog-statistieken|Greenbird&s
De links naar de de betreffende posts:
Greenbird
Blog statistieken
GAnalytics dokuwiki plugin

http://www.greenbird.info/img.php?h&b=blog-statistieken&f

Volgende: GAnalytics dokuwiki plugin 01-'10 GAnalytics dokuwiki plugin
Volgende: Greenbird 01-'10 Greenbird

Reacties


Door Tweakers user Ma.rkus.nl, dinsdag 19 januari 2010 00:52

Yay, ik heb Duitsland net rood gekleurd :p

edit: het lijkt me voor de betrouwbaarheid van de stats misschien goed om enigszins te filteren op tijd; met enkele keer F5'en is Duitsland nu al groen geworden.

[Reactie gewijzigd op dinsdag 19 januari 2010 00:54]


Door Tweakers user i-chat, dinsdag 19 januari 2010 08:41

eerlijk gezegd snap ik die keuze voor dat embedded ding niet...
als je nu iets nam als OpenWRT op de een of andere router, dan praat je tenminste over megabytes aan ram in plaats van kilobytes... (de asus wl500g bijv, vind je hier op tnet al een 25 euries, en uitgerust met een usb-stickje bied dat een prima webserver,

Door Tweakers user CodeCaster, dinsdag 19 januari 2010 09:25

De link naar je docuwiki-blog werkt niet :P

Door Tweakers user xantus, dinsdag 19 januari 2010 12:08

Yay, ik heb Duitsland net rood gekleurd :p

edit: het lijkt me voor de betrouwbaarheid van de stats misschien goed om enigszins te filteren op tijd; met enkele keer F5'en is Duitsland nu al groen geworden.
IP's zelf worden niet gelogd. Er kan op dit moment dus geen onderscheid gemaakt worden tussen 2 verschillende bezoekers uit het zelfde land die vlak na elkaar dezelfde pagina laden en dezelfde bezoeker die 2 keer de pagina laad. De toekomst moet uitwijzen of dit goed genoeg is, of dat er daadwerkelijk een te vertekend beeld ontstaat, omdat mensen moedwillig een pagina extra vaak gaan refreshen.
eerlijk gezegd snap ik die keuze voor dat embedded ding niet...
als je nu iets nam als OpenWRT op de een of andere router, dan praat je tenminste over megabytes aan ram in plaats van kilobytes... (de asus wl500g bijv, vind je hier op tnet al een 25 euries, en uitgerust met een usb-stickje bied dat een prima webserver,
Ik heb hier al een ARM9 die linux draait met 64Mb flash, 256 Mb RAM, LAN, USB host en de hele mikmak. Het mooie van deze embedded oplossing is dat het echt een custom oplossing wordt, inplaats van een linux installatie waar wat programmatjes op draaien.
De link naar je docuwiki-blog werkt niet :P
Post is al wel geschreven maar staat nog op onzichtbaar.

Edit
Kaart aangepast zodat de hele wereld nu getoond wordt.

[Reactie gewijzigd op donderdag 21 januari 2010 15:23]


Door Lucia, maandag 19 augustus 2013 04:54

Valahogy "igaznak" e9rződik a sze1madat (?) mert olvasom: " A vile1g műanyagtermele9se - az előző e9vhez vosnizyedtva - 2009-ben (!) 8%-kal - 176 millif3 tonne1ra esett vissza. "- ill. ce9lozgatnak, hogy majd "jf6n a kile1bale1s..." e9s nf6vekedni fog a termele9s. (stb.)Nekem (valahogy) ele9g volt a pe1r perces (tegnapi) tv.hedradf3... mely szerint : (rf6videdtve) " A szelektedv hullade9kgyűjte9s nem e9ri el a ce9lje1t"... (lesznek ve1ltoztate1sok...) ill. a terme9kdedjjal kapcsolatosan (!) - is megint akarne1nak ve1ltoztatni ! A te9me1hoz ( esetleg) - he1t... ve1rom a tippet, hogy akkor mibe legyen "csomagolva" sok minden ! Papedrba (?) - vagy mibe ?- dcvegbe ?- konzervdobozba ? (fe9m) e9s ne soroljam ! (Be1rmelyik ujjadat harapod meg,- az fe1j ! )

Door life insurance quotes, donderdag 29 augustus 2013 02:43

Articles like this really grease the shafts of knowledge.

Reageren is niet meer mogelijk