Flux RSS et réseaux sociaux dans AwStats

Flux RSS et réseaux sociaux dans AwStats

AwStats est l’un des outils de statis­tiques web les plus anciens encore en acti­vité.

Il se base sur de l’analyse de logs aussi bien que sur l’em­ploi d’un Javas­cript pour affi­cher des données sur les visites d’un site web.

C’est un logi­ciel libre, il est écrit en PERL, il n’est certes, pas très sexy, passé de mode aussi mais il fait très bien son travail et pour des stats courants, s’il a à envier aux Google Analy­tics ou Piwik, il a aussi ses avan­tages.

Il est en outre, exten­sible très faci­le­ment par l’in­ter­mé­diaire d’un write my college essays fichier de confi­gu­ra­tion.

Je vais vous présen­ter deux astuces, la première vise à amélio­rer l’exemple four­nis avec AwStats concer­nant le rapport sur les flux RSS.

La deuxième, est l’adap­ta­tion d’un article de

Flux de syndi­ca­tion

Le problème avec les flux de syndi­ca­tion c’est qu’il y en a plusieurs type :

  • RSS
  • XML
  • Atom
  • RDF

Et que chaque CMS à sa propre façon de les propo­ser (URL diffé­rente). Je me suis donc atta­ché à trou­ver la formule la plus exhaus­tive possible en évitant tous faux posi­tifs.

Pour assu­rer l’ex­haus­ti­vité, j’ai effec­tué un test sur les 251 flux RSS auxquels je suis abonné et pour éviter les faux posi­tifs, j’ai véri­fier sur l’en­semble des sites que je moni­toire à l’aide d’AwS­tats, soit 12.

Voici le code

00. # Tracking RSS request
01. ExtraSectionName7="Flux RSS"
02. ExtraSectionCodeFilter7="200 304"
03. ExtraSectionCondition7="URL,(\/|\.|-|_|=)(rss2?|rdf|atom(\/|\.|-|_|=|&|^)+|feeds?|rssout)|\?.*page=backend|(billets_general|news|recentchanges)\.xml"
04. ExtraSectionFirstColumnTitle7="URL"
05. ExtraSectionFirstColumnValues7="URL,(.*)"
06. ExtraSectionFirstColumnFormat7="%s"
07. ExtraSectionStatTypes7=UVPHBEXC
08. ExtraSectionAddAverageRow7=0
09. ExtraSectionAddSumRow7=1
10. MaxNbOfExtra7=10
11. MinHitExtra7=1

 Quelques expli­ca­tions

Le « 7 » qui termine chaque attri­but doit être remplacé pour corres­pondre à la section qui va bien chez vous (il ne peut y avoir 2 sections 7, et le chiffre indique l’ordre d’ap­pa­ri­tion des sections dans le rapport).

Ligne :

  1. Titre du tableau ;
  2. Code HTTP concer­nés 200 et 304 corres­pondent à des pages qui sont affi­chées (pas des redi­rec­tions, pas des erreurs) ;
  3. Critères de sélec­tion des lignes prises en comptes, un filtre appliqué aux logs, j’y revien­drais par après ;
  4. Titre de la colonne ;
  5. Données à affi­cher, URL est le champ à affi­cher et « .* » signi­fie « tout » (car on pour­rait se limi­ter à une partie seule­ment du champ sélec­tionné) ;
  6. Format de la colonne %s signi­fie « texte » ;
  7. Valeurs à affi­cher : j’ai mis la total, sans réflé­chir, mais tout n’est pas utile dans notre cas de figure. Ce n’est pas grave, les colonnes inutiles ne sont simple­ment pas affi­chées ;
  8. Pas de ligne « moyenne » en effet ça n’au­rait pas de sens ;
  9. Affi­cher la somme de toutes les visites de tous les flux de syndi­ca­tion ;
  10. Affi­cher 10 lignes dans le rapport.

L’ex­pres­sion régu­lière

C’est la partie cruciale du code, celle qui déter­mine si les bonnes données seront affi­chées et si les calculs seront juste.

Petit lexique :

  • | signi­fie « ou »
  • ? signi­fie 0 ou 1 carac­tère ou du bloc précé­dent
  • + signi­fie « obli­ga­toi­re­ment le carac­tère ou le bloc précé­dent »
  • * signi­fie 0, 1 ou plusieurs carac­tère ou du bloc précé­dent
  • ( et ) déli­mitent les bloc
  • . (point) signi­fie n’im­porte quel carac­tère, lettre, chiffre ou autre
  • ^ signi­fie « fin de ligne »
  • enfin \ doit placer devant les carac­tères spéciaux comme le . ou le ? pour dire (ce n’est pas un carac­tère spécial mais bien ce carac­tère là dont je veux parler)
(\/|\.|-|_|=)(rss2?|rdf|atom(\/|\.|-|_|=|&|^)+|feeds?|rssout)|\?.*page=backend|(billets_general|news|recentchanges)\.xml

Décom­po­sons, nous avons tout d’abord 3 parties :

  1. (\/|\.|-|_|=)(rss2?|rdf|atom(\/|\.|-|_|=|&|^)+|feeds?|rssout)
  2. \?.*page=backend
  3. (billets_gene­ral|news|recent­changes)\.xml

Expli­ca­tion :

  1. Se décom­pose en :
    1. Obli­ga­toi­re­ment l’un des carac­tère suivant : /, ., -, _ ou =
    2. Direc­te­ment suivi de rss, rss2, rdf, atom, feed, feeds ou rssout
  2. URL content page=backend après un « ? », il peut y avoir (ou pas) plusieurs carac­tères entre les 2 c’est ce que signi­fie .*
  3. URL contenr­nant billets_gene­ral.xml, news.xml ou recent­changes.xml

Il y a encore une petite subti­lité, autant RSS, RDF ou feed sont rela­ti­ve­ment rare dans les mots courant, autant atom peut poser problème, atomique, Atomium, etc.

Pour éviter les faux posi­tifs, j’ai donc défini les carac­tères qui pouvaient suivre « atom » dans le cas d’un flux de syndi­ca­tion, qui sont : /, ., -, _, = ou &

Pour les autres cas, il y a le carac­tère ^qui signi­fie « fin de ligne » en effet, dans une URL, l’élé­ment « atom » peut être à la fin de la ligne.

 

Réseaux sociaux

00. # Trafic issu des réseaux sociaux
01. ExtraSectionName9="Trafic issu des réseaux sociaux"
02. ExtraSectionCodeFilter9="200 304"
03. ExtraSectionCondition9="REFERER,(plus\.google\.com|.facebook\.com|twitter\.com|^https?:\/\/t\.co\/|bit\.ly)"
04. ExtraSectionFirstColumnTitle9="Sites"
05. ExtraSectionFirstColumnValues9="REFERER,(.*)"
06. ExtraSectionFirstColumnFormat9="%s"
07. ExtraSectionStatTypes9=UVPHBEXC
08. ExtraSectionAddAverageRow9=0
09. ExtraSectionAddSumRow9=1
10. MaxNbOfExtra9=10
11. MinHitExtra9=1

Expli­ca­tions et expres­sion régu­lière

Je ne vais pas ré-expliquer toutes les lignes, mais seule­ment l’ex­pres­sion régu­lière :

On test 3 réseaux (rien ne nous empê­che­rait d’en dénombre plus) :

  • Google+ : plus\.google\.com
  • Face­book :  .face­book\.com
  • Twit­ter : twit­ter\.com

Pour Google+ on précise toute l’URL : plus.google.com tandis que pour Face­book et Twit­ter on ne précise que la fin . face­book.com et tiwt­ter.com ainsi nous pouvons tracker m.face­book.com (la version mobile), touch.face­book.com (la version pour écran tactile), etc.

A ceci, nous ajou­tons deux raccour­cis­seurs de liens :

  • t.co : obli­ga­toire pour tous les liens Twit­ter : ^https?:\/\/t\.co\/
  • bit.ly assez répandu égale­ment : bit\.ly

Pour le cas de t.co, afin d’évi­ter les site du genre totot.com qui contient aussi t.co (en gras) j’ai fourni la chaine complète : http://t.co et https://t.co

Bonus

Voici une astuce pour auto­ma­ti­ser la mise à jour de la base de données qui permet de conver­tir les adresses IP en pays et villes.

Cette base est composé de 6 fichiers : 3 pour les IPv4 et 3 pour les IPv6 :

  • Pays
  • Ville
  • AS number (FAI)

La base de données GéoIP est four­nie par MaxMind à l’adresse suivante : le est mise à jour mensuel­le­ment.

Pour l’ins­tal­ler, il faut bien sûr acti­ver les plugins appro­priés dans le fichier de confi­gu­ra­tion, télé­char­ger puis les dézip­per les 3 fichiers dans le dossier plugins d’AwS­tats.

Pour cela, je vous propose les 3 commandes Cron suivantes (une par fichier).

0 4 10 * * wget -O /kunden/homepages/25/d144922175/htdocs/admin/stat/cgi-bin/plugins/GeoIP.dat.gz http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz && gunzip -f /kunden/homepages/25/d144922175/htdocs/admin/stat/cgi-bin/plugins/GeoIP.dat.gz

5 4 10 * * wget -O /kunden/homepages/25/d144922175/htdocs/admin/stat/cgi-bin/plugins/GeoLiteCity.dat.gz http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz && gunzip -f /kunden/homepages/25/d144922175/htdocs/admin/stat/cgi-bin/plugins/GeoLiteCity.dat.gz

10 4 10 * * wget -O /kunden/homepages/25/d144922175/htdocs/admin/stat/cgi-bin/plugins/GeoIPASNum.dat.gz http://download.maxmind.com/download/geoip/database/asnum/GeoIPASNum.dat.gz && gunzip -f /kunden/homepages/25/d144922175/htdocs/admin/stat/cgi-bin/plugins/GeoIPASNum.dat.gz

Pensez bien entendu à modi­fier le chemin pour que ça corres­ponde à votre cas de figure.

Voici un aperçu de que l’on peut obte­nir :

Aperçu GéoIP

Pour aller plus loin

Voici 3 liens qui vous permet­trons d’al­ler plus loin (très très loin même)

  1. La page d’AwS­tats concer­nant les extras  sections
  2. Le site société Bruxel­loise propo­sant bon nombre pay for essay de custo­mi­sa­tions pour AwStats
  3. Le site qui propose lui aussi un grand nombre de custo­mi­sa­tions pour AwStats
  4. Un excellent tuto­riel concer­nant AwStats dans la docu­men­ta­tion d’Un­buntu en français

Articles simi­laires :

Tagués avec : , , , , , , ,

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.

 

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.