zilyass.
Tous les projets

01 / DATA & BASES DE DONNÉES

Zilyass
Analytics.

Comprendre la navigation sur une page, sans chercher à identifier les personnes qui la consultent.

Technologies
WordPress · JavaScript · PHP · MySQL / MariaDB
Format
Plugin personnel · Prototype
Périmètre
Une page de démonstration

UNE INTERACTION, QUATRE ÉTAPES

  1. 01 / NAVIGATEUR

    Observer

    Une navigation, uniquement après un accord explicite.

  2. 02 / BRONZE

    Recevoir

    Conserver les champs autorisés et la trace du traitement.

  3. 03 / SILVER

    Fiabiliser

    Contrôler les événements et éliminer les doublons.

  4. 04 / GOLD

    Comprendre

    Agréger les données dans une vue SQL et afficher les indicateurs.

LE POINT DE DÉPARTQue regarde-t-on
sur une page ?

Un compteur de visites ne suffit pas à comprendre une navigation. Ce projet part de questions plus précises : quelles sections sont affichées, jusqu’où la page est-elle parcourue et combien de chargements donnent lieu à un clic sur Contact ?

Le prototype suit une seule page composée de trois sections : Services, Réalisations et Contact. JavaScript produit les événements ; PHP les contrôle ; la base les organise pour construire des indicateurs lisibles.

Il s’agit d’un projet de traitement de données à petite échelle. Bronze, Silver et Gold désignent ici une organisation logique dans une base relationnelle, pas une infrastructure distribuée ni un « Big Data » en production.

LES FONCTIONNALITÉSDes mesures
avec un sens précis.

  • Consultations et sessions observées. Un identifiant par chargement et un identifiant temporaire de session permettent de distinguer ces deux mesures.
  • Visibilité des sections. Estimer combien de temps une section est visible pendant que l’onglet est actif.
  • Défilement. Observer les seuils de 25 %, 50 % et 75 %, une seule fois chacun par chargement.
  • Clic sur Contact. Compter les chargements avec ce clic et calculer leur proportion dans les consultations observées.
  • Tableau de bord et export. Présenter les agrégats aux administrateurs WordPress et exporter les résultats calculés.
Le temps de visibilité n’est pas du temps de lecture. Une session n’est pas une personne. Un taux ou une moyenne sans dénominateur est indiqué « non calculable ». Avec des consultations mais aucun clic, le taux de clic vaut bien 0 %.

UN EXEMPLE CONCRETDes chiffres
que l’on peut vérifier.

Dans un jeu de démonstration, trois chargements de page sont observés. La section Services est affichée sur deux d’entre eux, pendant 10 secondes puis 4 secondes. Un seul chargement contient un clic Contact.

Exemple de test — ce ne sont pas les statistiques de ce portfolio.
IndicateurCalculRésultat
Consultations3 chargements distincts3
Temps cumulé / Services10 + 414 s
Temps moyen / Services14 ÷ 2 chargements affichés7 s
Taux de visibilité / Services2 ÷ 3 × 10066,67 %
Taux de clic Contact1 ÷ 3 × 10033,33 %

Si le navigateur retransmet exactement le même événement, son identifiant permet d’éviter de le compter deux fois. En cas de conflit sur un identifiant, la première version acceptée est conservée et le conflit est signalé dans le traitement.

ADMINISTRATION DES DONNÉESAu-delà
du tableau de bord.

Structure & cohérence

Tables, clés, contraintes, index et transactions pour organiser les événements et assurer la cohérence des écritures.

Droits SQL

Un laboratoire séparé pour distinguer les comptes d’installation, d’écriture et de lecture, puis vérifier leurs permissions.

Sauvegarde

Une sauvegarde dont la restauration est testée dans une base isolée, sans écraser la base d’origine.

Cycle de vie

Une fenêtre analytique de sept jours et des règles de nettoyage, de désactivation et de suppression documentées.

-- Exemple dans le laboratoire SQL, pas dans WordPress
GRANT SELECT ON demo_analytics.*
TO 'analytics_reader'@'localhost';

SHOW GRANTS FOR 'analytics_reader'@'localhost';

Le compte et la base de cet exemple doivent exister. Les noms sont illustratifs ; aucun identifiant de connexion réel n’est exposé.

Le plugin utilise la connexion SQL habituelle de WordPress. Les comptes SQL limités sont testés dans un laboratoire indépendant : ils ne constituent pas une séparation des droits déjà intégrée au plugin.

COLLECTE & LIMITESObserver moins.
Expliquer mieux.

Aucun événement Analytics n’est envoyé avant l’accord sur la page de démonstration. Le visiteur peut arrêter le suivi et effacer l’identifiant temporaire de son onglet. Le plugin ne collecte ni adresse IP, ni nom, ni e-mail, ni contenu de formulaire.

La visibilité est une estimation côté navigateur. Un événement peut être perdu à la fermeture d’une page ou être fabriqué par un client. Les contrôles, jetons et quotas limitent les abus sans prouver l’identité d’une personne ni garantir l’authenticité d’une navigation.

Les tests documentés portent notamment sur le consentement, les doublons, les calculs, les droits d’accès et la restauration d’une sauvegarde, en environnement local MySQL et MariaDB. Ils ne constituent pas une qualification de production sous forte charge.

QUESTIONS DE CONCEPTIONPourquoi
ces choix ?

Pourquoi trois niveaux de données ?

Pour séparer la réception, la validation et l’analyse. Bronze conserve une trace limitée aux champs autorisés, Silver représente les événements acceptés, et Gold expose les indicateurs. Un problème de collecte ne doit pas être confondu avec un problème de calcul.

Pourquoi ne pas utiliser l’adresse IP pour compter les visiteurs ?

Une adresse IP peut être partagée ou changer. Elle ne permet pas de compter fidèlement des personnes. Un identifiant temporaire suffit aux objectifs limités de cette démonstration, sans ajouter une collecte d’IP.

Comment éviter un double comptage ?

Chaque événement porte un identifiant. Sa contrainte d’unicité, associée à la comparaison de son contenu, permet de reconnaître une retransmission identique et de refuser un conflit sans compter un nouvel événement valide.

Est-ce relié à Zilyass Guard ?

Non. Analytics traite des événements de navigation, Guard journalise certains événements de connexion. Ce sont deux plugins indépendants, avec des objectifs et des contrats de données distincts.

L’AUTRE PROJET

Zilyass Guard
Retour au portfolio