Structure & cohérence
Tables, clés, contraintes, index et transactions pour organiser les événements et assurer la cohérence des écritures.
01 / DATA & BASES DE DONNÉES
Comprendre la navigation sur une page, sans chercher à identifier les personnes qui la consultent.
UNE INTERACTION, QUATRE ÉTAPES
Une navigation, uniquement après un accord explicite.
Conserver les champs autorisés et la trace du traitement.
Contrôler les événements et éliminer les doublons.
Agréger les données dans une vue SQL et afficher les indicateurs.
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.
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.
| Indicateur | Calcul | Résultat |
|---|---|---|
| Consultations | 3 chargements distincts | 3 |
| Temps cumulé / Services | 10 + 4 | 14 s |
| Temps moyen / Services | 14 ÷ 2 chargements affichés | 7 s |
| Taux de visibilité / Services | 2 ÷ 3 × 100 | 66,67 % |
| Taux de clic Contact | 1 ÷ 3 × 100 | 33,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.
Tables, clés, contraintes, index et transactions pour organiser les événements et assurer la cohérence des écritures.
Un laboratoire séparé pour distinguer les comptes d’installation, d’écriture et de lecture, puis vérifier leurs permissions.
Une sauvegarde dont la restauration est testée dans une base isolée, sans écraser la base d’origine.
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é.
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.
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.
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.
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.
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