API Counters : traquez vos visiteurs
Avec l’arrivé d’ASP.NET, vous allez avoir une
nouvelle fonctionnalité pour stocker et gérer les
statistiques de votre site que ce soit le nombre de hits par page
mais le nombre de clicks par contrôle ! Cette fonctionnalité
se prénomme « Site & Pages Counters ».
Cette fonctionnalité n’est pas activée par
défaut et avant de l’activer, vous allez devoir définir
où vont être stockées ces données de
statistiques. Par défaut, deux providers sont mis à
votre disposition : un pour Access et l’autre pour SqlServer.
Pour créer la base si elle n’existe pas encore, vous
pouvez passer par l’interface Web d’administration
qui va vous créer la base Access (dans notre exemple) dès
que nous sélectionnerons le provider Access :
En examinant la base créée, vous allez pouvoir voir
qu’elle contient une table « apsnet_SiteCounters ».
C’est dans cette table que vont être stockées
toutes vos données de statistiques. Examinons de plus près
cette table… :
Nous avons donc comme champs :
« id » : Clef primaire de la table générée
automatiquement
« Application » : Nom de l’application IIS
« PageUrl » : Adresse de la page qui correspond aux
statistiques du contrôle ou de la page.
« CounterGroup » : Nom du groupe dans lequel se trouve
le compteur
« CompterName » : Nom du compteur
« CounterEvent » : Evénement qui est, soit
un affichage « View », soit un clic sur un contrôle
« Click »
« NavigateUrl » : Adresse Url de la page
« StartTime » : Heure de début du compteur
(en effet vous allez pouvoir configurer le nombre d’heure
pendant lequel un compteur sera actif. Une fois le compteur inactif,
un nouvel enregistrement sera créé pour la page
ou le contrôle.
« EndTime » : Heure de fin pour le compteur.
« Total » : Nombre total d’affichage d’une
page ou de click.
Nous avons à présent notre base, activons à
présent nos compteurs : pour cela il vous faut modifier le
fichier de configuration web, web.config. Pour éviter d’avoir
à écrire les éléments soit même,
nous allons passer toujours par l’interface d’administration
Web dans l’onglet « Application » :
Une fois validé, les éléments nécessaires
seront ajoutés votre fichier de configuration Web :
<siteCountersenabled="true" rowsPerDay="1">
<pageCountersenabled="false" trackApplicationName="true"
trackPageUrl="true"
counterName="" counterGroup="PageCounters"
/>
</siteCounters>
Votre système de compteur étant à présent
activé, il va vous falloir configurer vos contrôles
pour gérer ces compteurs. Voici tout d’abord la liste
des contrôles qui gère les API Counters :
Button
ImageButton
ImageMap
LinkButton
HyperLink
AdRotator
PhoneLink
Tous ces contrôles vont avoir un lot de propriétés
:
« CountCliks » : Permet de définir si le contrôle
est géré par un compteur.
« CounterGroup » : Nom du groupe dans lequel se trouve
le compteur.
« CounterName » : Nom du compteur
« RowsPerDay » : Nombre d’enregistrement par
jour à créer par compteur
« SiteCountersProvider » : Provider utilisé
par le compteur. Si rien n’est défini, ça
sera le provider défini dans votre fichier de configuration
qui sera utilisé.
« Track* » : défini si la propriété
est traquée.
Voici un exemple de définition d’un contrôle
« HyperLink » utilisant les API Counteurs (propriété
« CountCliks » :
<asp:hyperlinkid="lnkMyLink"runat="server"countclicks="True"navigateurl="http://www.labo-dotnet.com"
target="_blank">monlien</asp:hyperlink>
Une fois l’application lancée, l’enregistrement
sera créee dans la table « apsnet_SiteCounters »
:

Dans l’image ci-dessus, vous pouvez voir que le compteur
sur notre contrôle HyperLink commence le 6 juin et fini
le 7 tout simplement car nous avons défini la propriété
« rowsPerDay » dans notre fichier de configuration
à 1. Si vous avions mis 24, le compteur aurait eu une durée
d’une heure et non pas de 24 heures. Une fois le compteur
expiré, un nouvel enregistrement sera créee.
Nous avons vu jusque là les compteurs par contrôles.
Vous pouvez aussi créer des compteurs par page : pour cela
nous allons passer par l’interface web d’administration
qui éditera le fichier de configuration web :

Le fichier de configuration que vous pouvez voir au-dessus sera
alors modifié : l’attribut « enabled »
de l’élément « pageCounters »
sera désormais égal à « True ».
Vous pouvez aussi définir les pages que vous voulez gérer
avec un compteur à partir du nœud « PagesToCount
» du fichier web.config :
<pagesToCount>
<addpath="*" />
</pagesToCount>
Dans cet exemple, toutes les pages de votre application Web seront
gérées par un compteur.
A partir de votre objet Page, vous allez avoir une propriété
« SiteCounters » que nous allons traiter dans un autre
article.