KOMPOOS.NL

alexa toolbar traffic - PHP

home » manuals » php » detect-alexa-toolbar.html

sitemap


GA NAAR:

DE ALEXA PAGINA OP DE KOMPOOS.NL

uitleg alexa toolbar procedure

Om er zeker van te zijn dat er geen enkele twijfel is dat de procedure op jouw website werkt, is exact dezelfde code gebruikt die op de kompoos.nl staat. Er mag aangenomen worden dat als je deze procedure gaat gebruiken je wel in staat bent om php op html-pagina's te parsen (en wat dies meer zij...). Dit is geen "beginners-klusje". Veel plezier met het implementeren.

De alexa-ranking is nou niet de 'allerbeste manier' om aan te tonen of jouw website veel of weinig bezoekers heeft. Een belangrijk element van de 'meetwijze' is de toolbar die 'over de schouder van de bezoekers mee kijkt' en (gelukkig volkomen anoniem) bijhoudt hoeveel verkeer een site (via de toolbar natuurlijk) 'binnen krijgt'. En daar zit nou net de zwakke plek bij Alexa... Websites zoals de kompoos.nl trekken veel bezoek van webmasters die vaak de alexa-bar geïnstalleerd hebben (check de alexa ranking maar van de kompoos: sky-high!). Als je dan even naar het echte aantal bezoekers kijkt, zie je dat dit niet terecht is. Aan de andere kant zijn er sites met een gigantische hoeveelheid verkeer, en een te verwaarlozen alexa-rank. Die hebben gewoon een onderwerp wat een andere doelgroep 'aantrekt'. En als die doelgroep (om een voorbeeld te geven) studenten zijn die op de universiteit pc's gebruiken waar geen alexa (sparky) op geïnstalleerd MAG worden, en de overige zaken regelen op hun iPhone/iPad hoef ik niets mee toe te lichten... Mocht je toch nog de behoefte voelen om te weten hoeveel bezoekers er met de toolbar jouw website bezocht hebben, moet je de onderstaande procedure(s) op jouw website 'inrichten'. De verzamel-module kan je het best in een php-file plaatsen en met een include op elke pagina laten werken. Als de php-file b.v. tel.php heet kan je <?php $xx=$_SERVER["DOCUMENT_ROOT"]."/jouw_domein.nl/een_subdirectory/tel.php";include($xx);?> op elke pagina 'includen'.

Als je heel erg weinig bezoekers op jouw website 'binnen-krijgt' raad ik jou aan om de procedure niet te gebruiken. Het is frustrerend als er altijd een NUL te zien is op de alexa-pagina...

voorbeeld van een verzamel-routine die je op elke pagina van jouw website "moet" includen.


<?php $u=strtolower($_SERVER['HTTP_USER_AGENT']);
$t=time();$m=date("H:i:s",$t);$a=htmlentities(strip_tags($_SERVER['PHP_SELF']));$i=str_pad($_SERVER['REMOTE_ADDR'],15,".");
// Als je jou-zelf niet wilt tellen, verander dan het ip-adres in jouw ip-adres 
// en vul, als de lengte minder is dan 15 dit aan met één of meer . (punten).
if($i<>"94.209.171.23.."){$r=$_SERVER['HTTP_REFERER'];
// verander op de regel hieronder : - "kompoos" - in jouw domein-naam en 
// verander de "17" in de substr in het aantal characters van jouw website naam.
if(substr($r,0,17)=="http://kompoos.nl"){
$f=date("Ymd_",$t);
$s="/HET_ABSOLUTE_PAD_NAAR/JOUW_DOMEIN.nl/tel/".$f.".txt";
$h=@fopen($s,'a+');
@fwrite($h,"$m $i $a<br /> \n");
@fclose($h);}else{
$f=date("Ymd",$t);
$s="/HET_ABSOLUTE_PAD_NAAR/JOUW_DOMEIN.nl/tel/".$f.".txt";
$h=@fopen($s,'a+');
@fwrite($h,"$m $i $a |^| $u |~| $r<br />  \n");
@fclose($h);}}?>

integraal de pagina met de alexa procedure daarop

Geef op de drie aangegeven plaatsen het absolute pad in naar jouw webserver. Dit moet exact hetzelfde adres zijn waar de gecollecteerde gegevens (met de verzamel-procedure) naar toe geschreven zijn. Je kan de pagina natuurlijk geheel aan jouw eigen wensen aanpassen.


<?php header("Cache-Control:public");header("Content-Type:text/html;charset=utf-8");ob_start("ob_gzhandler");?><!DOCTYPE html><html lang="nl"><head><meta http-equiv="content-type" content="text/html;charset=utf-8" /><title>count ALEXA toolbar visitors</title><meta name="keywords" content="alexa,toolbar,visitors" /><meta name="description" content="hoeveel visitors gebruiken de alexa toolbar als ze jouw website bezoeken. bereken het aantal toolbar-bezoekers wat 'SPARKY' gebruikt." /><meta name="author" content="Bobik" /><meta name="robots" content="noimageclick" /></head><body style="font-family:sans-serif"><h1>KOMPOOS.NL</h1><h2>hoeveelheid ALEXA toolbar bezoekers</h2><h3><a href="/">home</a> » <a href="/kompoos/">kompoos</a> » <a href="/kompoos/detect-alexa.html">detect-alexa.html</a></h3><p><strong><em><a href="/site-map.html">sitemap</a></em></strong></p><hr /><p><strong>Op deze pagina wordt berekend hoeveel "toolbar-bezoekers" van Alexa "langskomen".</strong></p><hr /><h3>exacte activiteit alexa archiver</h3><p style='font-size:small'><?php
$tijd=time()-(24*60*60);
$dag_sparky_check=date("Ymd",$tijd);
$einde_peil_datum=date("d-m",$tijd);
$tel_paginas_exact=0;
$archiver_actief=0;
$verzamelde_gegevens="/het_ABSOLUTE_PAD_naar/JOUW_DOMEIN.nl/tel/".$dag_sparky_check.".txt";
if(file_exists($verzamelde_gegevens)){
        $raw_data=(file($verzamelde_gegevens));
        $exact_aantal_paginas=count($raw_data);
        $tel_paginas_exact+=$exact_aantal_paginas;
        echo "activiteit ".$dag_sparky_check."-".$exact_aantal_paginas;
        $ia_archiver_bezoeken=0;
        rsort($raw_data);       
        for($i=0;$i<$exact_aantal_paginas;$i++){
                $check_voor_alexa=$raw_data[$i];
                $check_voor_alexa_archiver='ia_archiver';
                $pos=strpos($check_voor_alexa,$check_voor_alexa_archiver);
                if($pos !== false) {
                        $ia_archiver_bezoeken++;
}}      
echo " -- ia_archiver activiteit <strong>=".$ia_archiver_bezoeken."</strong> | ";}
$archiver_actief+=$ia_archiver_bezoeken;
$tijd=time()-(48*60*60);
$dag_sparky_check=date("Ymd",$tijd);
$verzamelde_gegevens="/het_ABSOLUTE_PAD_naar/JOUW_DOMEIN.nl/tel/".$dag_sparky_check.".txt";
if(file_exists($verzamelde_gegevens)){
        $raw_data=(file($verzamelde_gegevens));
        $exact_aantal_paginas=count($raw_data);
        $tel_paginas_exact+=$exact_aantal_paginas;
        echo "activiteit ".$dag_sparky_check."-".$exact_aantal_paginas;
        $ia_archiver_bezoeken=0;
        rsort($raw_data);       
        for($i=0;$i<$exact_aantal_paginas;$i++){
                $check_voor_alexa=$raw_data[$i];
                $check_voor_alexa_archiver='ia_archiver';
                $pos=strpos($check_voor_alexa,$check_voor_alexa_archiver);
                if($pos !== false) {
                        $ia_archiver_bezoeken++;
}}
echo " -- ia_archiver activiteit <strong>=".$ia_archiver_bezoeken."</strong> | ";}
$archiver_actief+=$ia_archiver_bezoeken;
$tijd=time()-(72*60*60);
$begin_peil_datum=date("d-m",$tijd);
$dag_sparky_check=date("Ymd",$tijd);
$verzamelde_gegevens="/het_ABSOLUTE_PAD_naar/JOUW_DOMEIN.nl/tel/".$dag_sparky_check.".txt";
if(file_exists($verzamelde_gegevens)){
        $raw_data=(file($verzamelde_gegevens));
        $exact_aantal_paginas=count($raw_data);
        $tel_paginas_exact+=$exact_aantal_paginas;
        echo "activiteit ".$dag_sparky_check."-".$exact_aantal_paginas;
        $ia_archiver_bezoeken=0;
        rsort($raw_data);       
        for($i=0;$i<$exact_aantal_paginas;$i++){
                $check_voor_alexa=$raw_data[$i];
                $check_voor_alexa_archiver='ia_archiver';
                $pos=strpos($check_voor_alexa,$check_voor_alexa_archiver);
                if($pos !== false) {
                        $ia_archiver_bezoeken++;
}}
$archiver_actief+=$ia_archiver_bezoeken;
if($archiver_actief>99) {$ia_factor=3.11;}
if($archiver_actief<100){$ia_factor=2.14;}
if($archiver_actief<50) {$ia_factor=1.15;}
if($archiver_actief<20) {$ia_factor=0.62;}
if($archiver_actief<3)  {$ia_factor=0.09;}
$sparky_formule=round($tel_paginas_exact*0.007973);
echo " -- ia_archiver activiteit <strong>=".$ia_archiver_bezoeken."</strong></p><h3>berekening alexa toolbar bezoekers</h3><p>";}
echo "Van ".$begin_peil_datum." t/m ".$einde_peil_datum." zijn  er <strong>". $tel_paginas_exact."</strong> unieke pagina's opgevraagd, waarbij <strong style='font-size:2em'>".round($ia_factor*$sparky_formule)."<sup> ** </sup></strong> bezoekers de alexa toolbar gebruikten."."</p>";?><strong style='font-size:2em'>**</strong> <em>als er een <strong>0 (nul)</strong> wordt weergegeven was er niet genoeg (alexa)data beschikbaar</em><hr /><h4>uitleg detect alexa toolbar procedure</h4><p>Houd even goed in de gaten dat de <?php echo round($ia_factor*$sparky_formule); ?> alexa bezoekers (met ingeschakelde toolbar) over <strong><em>3</em></strong> dagen zijn berekend. Per dag komt dat neer op een gemiddelde van (plus-minus) <strong><em><?php echo round(($ia_factor*$sparky_formule)*0.33); ?>  </em></strong>bezoekers per dag. De procedure maakt gebruik van het feit dat Alexa, als een webpagina door verschillende (ip-nummers) bezoekers, met ingeschakelde toolbar, bezocht is, de ia-archiver "langs-stuurt". Komt er geruime tijd geen alexa-bezoeker langs of als er steeds maar dezelfde bezoeker op dezelfde pagina blijft "hameren", dan blijft de ia_archiver "thuis". De maximale "vertraging" van de archiver is 72 uur, dus wordt het gemiddelde van 3 dagen berekend om een juist aantal te kunnen bepalen. De rest is een empirische berekening die verschillende factoren (zoals het exacte aantal opgevraagde pagina's, de ia_archiver intensiteit en nog een aantal andere factoren) bepaalt, en daar de uitkomst aan verbindt. Als je geïnteresseerd bent in de procedure kan je de broncode op de <a href="/manuals/php/detect-alexa-toolbar.html">alexa-pagina (php-afdeling van de kompoos.nl)</a> vinden.</p></body></html>

extra informatie alexa toolbar procedure

De code kan natuurlijk veel compacter geschreven worden. Als je begrijpt wat de code exact doet kan je natuurlijk de variabelen (b.v. $verzamelde_gegevens etc. etc.) centraliseren, en de drie codeblokken samenvatten in één functie die je met wat variabelen aanroept. Nog even een kleine "update":
In de verzamel-module vraag ik je om jouw domein-naam in te vullen en het aantal characters te plaatsen in de substr. Zorg er in ieder geval voor dat met een redirect(301) er óf een "www"-adres staat óf alleen een "http" staat. Op de kompoos staat de http://kompoos.nl geredirect naar http://kompoos.nl. Als je dit niet correct afhandelt worden onjuiste gegevens in de text-files geschreven. Lees: Al het locale verkeer vanaf jouw website wordt ook in de procedure "meegenomen" (wat niet de bedoeling is...).

Gebruik voor alle voorbeelden op de http://kompoos.nl een valide html5 pagina.