Essence of Analytics

Intercettare(capire, prevedere) i problemi di coloro che stanno cercando una risposta ai loro quesiti attraverso i motori di ricerca.

  • il sito sta svolgendo il compito per cui è stato commissionato? We need very clear, measurable objective and to mesure progress
  • quali obiettivi ha il business dietro al sito?
  • possiamo servire meglio gli obiettivi degli utenti?

dev_method

Reports

A report needs to convince somebody to do something, and it needs to tell them how to actually get it done. In my eyes, when you send a report through that is 50 pages or 100 pages, you are very often confusing the two. So, really, to convince somebody to make change happen, you only need one page or maybe you need a phone call or maybe you need a meeting. Let's say it is a whole bunch of on-page changes and you say I'm going to need a huge amount of developer time to get all these changes done. You go to the marketing director or the marketing boss or whoever it is that you report to, and you go, "I need to get this stuff done." And they go, "Why?" So, you need to answer that question. But you don't need 100-page report to answer that question. So, make sure that you convince whoever the stakeholder is, independently of the report, that this change needs to happen, and then as a secondary function, you need to actually make that change happen. But that change is often, like, go work with the developer team or go and have lunch with the guy who runs the developer team or actually go in and do the change yourself on the site.

Google Analytics

embed dev guide embed API

v=1             // Version.
&tid=UA-XXXX-Y  // Tracking ID / Property ID.
&cid=555        // Anonymous Client ID.

&t=pageview     // Pageview hit type.
&dh=mydemo.com  // Document hostname.
&dp=/home       // Page.
&dt=homepage    // Title.

Server Software

Visitors

lightweight alterntive to awstats

del virtualhost in oggetto impostare un log file specifico:

 
    <VirtualHost *:80>
      ServerName www.foo.com
      DocumentRoot /var/www/www.foo.com/htdocs
 
      CustomLog /var/log/apache2/www.foo.com-access.log combined
      ErrorLog /var/log/apache2/www.foo.com-error.log
    </VirtualHost>
# human readable output in text only
visitors access.log | less
 
# cron
/usr/bin/visitors -A -o text /var/log/apache2/access.log>/tmp/visitors.txt;cat /tmp/visitors.txt | /usr/bin/mail -s "visitors anme-svr" test@gmail.com
 
# html and more data
visitors -A access.log -o html > report.html
 
# to have usage patterns for your site you must provide the url prefix of your web site and specify the --trails option
visitors -A access.log -o html --trails --prefix http://www.hping.org > report.html
 
# multiple file names
visitors /var/log/apache/access.log.*
zcat access.log.*.gz | visitors -
zcat /var/log/apache2/access.log.*.gz | visitors -A - > report.html

crontab ogni mese invio report:

# apache visitors montly
1 1 1 * * root /root/sendreport

inviare un report per i domini:

#!/usr/bin/php
<?php
function send_log($to$log_file){
    
$html = `visitors -A /var/log/apache2/$log_file`;
    
$headers  'MIME-Version: 1.0' "\r\n";
    
$headers .= 'Content-type: text/html; charset=iso-8859-1' "\r\n";
    
mail($to$subject='visitors '.$log_file$html$headers);
}
$a_domains = array(
    
'www.foo.com.log',
    
'other_vhosts_access.log',
    
'access.log'
);
foreach(
$a_domains as $log_file ){
    
send_log($to='test@gmail.com'$log_file);
}

goaccess

simile a visitors

goaccess -/var/log/apache2/access.log -report.html

asql

use sql like syntax for querying the logfile

asql v0.6 - type 'help' for help.
asql> load /var/logs/access.log

altri software