Bienvenue sur LibreAnalytics v2.0.1
LibreAnalytics est une solution d'analytics web souveraine, open-source et respectueuse de la vie privée. Conçue comme une alternative souveraine à Google Analytics, elle vous permet de reprendre le contrôle de vos données tout en bénéficiant d'un dashboard simple et intuitif.
100% Français
Code et données hébergés en France. Aucune fuite vers les GAFAM.
RGPD natif
Pas de cookie banner nécessaire. Anonymisation par défaut.
Script 4KB
Impact zéro sur les performances et le Core Web Vitals.
Open source
Code auditable sur GitHub. Vous pouvez même auto-héberger.
Installation en 2 minutes
Rendez-vous sur la page d'accueil et cliquez sur "Créer mon premier dashboard". Remplissez le formulaire avec votre email, choisissez un mot de passe et indiquez l'URL de votre site.
Une fois connecté, vous arrivez sur le dashboard. Vous verrez votre tracking code (ex: SP_79747769), situé en bas à gauche
de l'écran.
Copiez-collez la ligne suivante juste avant la balise </head> de votre site :
<!-- LibreAnalytics -->
<script data-sp-id="SP_24031987" src="https://gael-berru.com/LibreAnalytics/smart_pixel_v2/public/tracker.js" async></script>
Premiers pas
Comprendre les métriques
| Métrique | Description |
|---|---|
| Visites | Nombre total de sessions (une session = 30 min d'inactivité max). |
| Visiteurs uniques | Nombre d'utilisateurs distincts (basé sur session ID + empreinte). |
| Pages vues | Nombre total de pages consultées. |
| Taux de rebond | % de visites avec une seule page. |
| Insight | Actions à mettre en place selon vos data. |
| Source | D'où viennent vos visiteurs (Google, direct, réseau social...). |
Filtres de période
En haut du dashboard, vous pouvez sélectionner : Aujourd'hui, 7 derniers jours, 30 derniers jours, ou une plage d'un an.
Plans et tarifs
| Fonctionnalité | Gratuit | Pro (9€/mois) Version à venir ! | Business (29€/mois) Version à venir ! |
|---|---|---|---|
| Nombre de sites | 1 | 10 | 50 |
| Visites / mois | 1 000 | 100 000 | Illimité |
| Dashboard temps réel | ✅ | ✅ | ✅ |
| Géolocalisation (pays/ville) | ✅ | ✅ | ✅ |
| Tracking UTM | ✅ | ✅ | ✅ |
| API REST | ❌ | ✅ | ✅ |
| Webhooks | ❌ | ❌ | ✅ |
| Support | Communauté | Email 24h | Téléphone prioritaire |
Le paiement est géré par Lemon Squeezy (paiement européen, pas de commission USA). Nous ne stockons aucune information de carte bancaire.
Pour passer en Pro/Business : Dashboard → Mon compte → Mise à niveau. Le changement est
instantané.
Utilisation du dashboard
Onglets disponibles
- Aperçu : Vue d'ensemble avec les métriques clés, graphique d'évolution, top sources, top pages.
- Trafic : Analyse détaillée des sources (référents, réseaux sociaux, campagnes).
- Audience : Géolocalisation, appareils, navigateurs, résolution d'écran.
- Comportement : Pages populaires, flux de navigation (à venir), clics enregistrés.
- Événements : Liste de tous les événements personnalisés (clics, formulaires, etc).
Dans la colonne de gauche, vous voyez la liste de vos sites. Cliquez sur un site pour visualiser ses données. Le code de suivi affiché est unique pour chaque site.
Tracking des clics et événements
LibreAnalytics tracke automatiquement tous les clics sur les liens et boutons, CTA (sauf si vous avez
installé data-sp-ignore). Vous pouvez également envoyer des événements personnalisés.
Événements automatiques
- Clics : tag, id, class, texte, href, position (x, y).
- Page view : titre, URL, referrer.
Événements personnalisés (JS)
// Envoyer un événement personnalisé
SmartPixel.trackEvent('inscription', {
method: 'email',
user_id: 123
});
Géolocalisation
La géolocalisation est effectuée côté serveur via l'API ip-api.com (limitation : 45
req/min en gratuit). Les données sont stockées en base (pays, ville).
Comment ça marche ?
- Le pixel reçoit l'IP du visiteur.
- Une requête est faite à ip-api.com (timeout 1s pour ne pas bloquer).
- Le pays et la ville sont enregistrés dans la table
smart_pixel_tracking. - Si l'API échoue, la valeur par défaut est "Unknown".
config.php.
Sources de trafic et paramètres UTM
LibreAnalytics capture automatiquement les paramètres UTM de l'URL et les sources.
Paramètres reconnus
utm_source→ source (Google, newsletter, etc.)utm_medium→ medium (cpc, email, social)utm_campaign→ nom de la campagneutm_term→ mots-clésutm_content→ contenu spécifique
Source automatique
Cela vous permet de savoir laquelle de vos campagnes à le plus de trafic et d'où vient ce traffic. Si
aucun UTM n'est présent, la source est extraite du document.referrer :
- Réseaux sociaux : Facebook, Twitter, LinkedIn → "social"
- Moteurs de recherche : Google, Bing, DuckDuckGo → "organic"
- Direct : pas de referrer → "direct"
Tracker - Documentation technique
Notre code JavaScript est le cœur de la collecte côté client. Il est conçu pour être
léger (4KB) et asynchrone.
Fonctions disponibles
SmartPixel.load('SP_XXXXXX'); // Chargement manuel
SmartPixel.trackEvent('eventName', {data}); // Événement personnalisé
SmartPixel.getOrCreateSessionId(); // Récupère l'ID de session
Paramètres de l'URL du pixel
| Paramètre | Description | Exemple |
|---|---|---|
| t | Tracking code (obligatoire) | SP_79747769 |
| sid | Session ID | sess_abc123 |
| viewport | Résolution écran | 1920x1080 |
| s | Source | google.com |
| utm_campaign | Campagne | ete2025 |
| ref | Referrer complet | https://... |
| click | Données de clic (JSON) | {"tag":"A"} |
Pixel.php - Point d'entrée serveur
Notre code PHP reçoit les données, valide le tracking code, enrichit avec la géoloc, et
insère en base. Il retourne toujours un Pixel transparent.
Fonctionnement
- Vérification du paramètre
t(tracking code). - Requête en base pour trouver le
site_idetuser_id. - Récupération de l'IP et appel à ip-api.com pour la géoloc (timeout 1s).
- Insertion en base avec toutes les données collectées.
- Envoi du GIF 1x1.
Optimisation
- Le script est optimisé pour < 100ms de réponse.
- Les erreurs sont loggées silencieusement (pas d'affichage).
- Le cache est désactivé (headers no-cache).
🔌 API REST (Pro & Business) Fonctionnalitées en beta test
L'API REST vous permet d'accéder à vos données programmatiquement. Elle est en bêta depuis janvier 2026.
Authentification
Utilisez votre api_key (disponible dans Mon compte → API).
Tutoriel : Utiliser l'API LibreAnalytics
1. Récupérer tes identifiants
Pour utiliser l'API, tu as besoin de :
- Code de tracking : Identifiant de ton site (ex:
SP_24m87bb). - Clé API : Clé secrète pour authentifier tes requêtes (ci-dessus).
Tu peux trouver ton code de tracking dans la section "Mes sites" du dashboard.
2. Construire l'URL de l'API
L'URL de base est :
https://gael-berru.com/LibreAnalytics/smart_pixel_v2/public/api.php
Ajoute les paramètres suivants :
site_id: Ton code de tracking (ex:SP_24m87bb).api_key: Ta clé API (copie-la ci-dessus).start_date(optionnel) : Date de début (ex:2026-01-01).end_date(optionnel) : Date de fin (ex:2026-02-01).
https://gael-berru.com/LibreAnalytics/smart_pixel_v2/public/api.php?site_id=SP_24m87bb&api_key=sk_1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p&start_date=2026-01-01&end_date=2026-02-01
3. Récupérer les données
Tu peux récupérer les données de 3 manières :
- Depuis un navigateur : Copie-colle l'URL dans la barre d'adresse, ou crée ton propre dashboard,
- Avec notre template.
- Avec cURL (terminal) :
curl "https://gael-berru.com/.../api.php?site_id=SP_24m87bb&api_key=sk_1a2b3c..." - Avec JavaScript (fetch) :
fetch(`https://gael-berru.com/.../api.php?site_id=SP_24m87bb&api_key=sk_1a2b3c...`) .then(response => response.json()) .then(data => console.log(data));
4. Exemple de réponse JSON
Voici un exemple de réponse :
{
"success": true,
"data": [
{
"date": "2026-01-01",
"visits": 42,
"unique_visitors": 30,
"sessions": 35
},
{
"date": "2026-01-02",
"visits": 50,
"unique_visitors": 38,
"sessions": 40
}
],
"meta": {
"site_id": "SP_24m87bb",
"start_date": "2026-01-01",
"end_date": "2026-02-01",
"total_visits": 92,
"total_unique_visitors": 68
}
}
Les champs disponibles :
date: Date des données.visits: Nombre total de visites.unique_visitors: Visiteurs uniques (par IP).sessions: Nombre de sessions.
5. Intégrer avec des outils
Tu peux utiliser ces données avec :
- Google Data Studio : Crée une source de données personnalisée.
- Excel/Google Sheets : Utilise
=IMPORTDATA("https://..."). - Tableau de bord custom : Utilise Chart.js (voir ci-dessous).
Exemple de code pour un graphique avec Chart.js :
<canvas id="visitsChart" width="800" height="400"></canvas>
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<script>
fetch(`https://gael-berru.com/.../api.php?site_id=SP_24m87bb&api_key=sk_1a2b3c...`)
.then(response => response.json())
.then(data => {
const labels = data.data.map(item => item.date);
const visits = data.data.map(item => item.visits);
new Chart(document.getElementById('visitsChart'), {
type: 'line',
data: { labels, datasets: [{ label: 'Visites', data: visits }] }
});
});
</script>
6. Gérer les erreurs
Voici les erreurs possibles et leurs solutions :
- 400 : Paramètres manquants. Vérifie l'URL.
- 403 : Clé API ou code de tracking invalide. Vérifie tes identifiants.
- 404 : Site non trouvé. Vérifie le
site_id. - 500 : Erreur serveur. Contacte le support.
Webhooks (Business)
Recevez des notifications en temps réel sur vos événements analytics.
Événements disponibles
page_view- Nouvelle page vueclick- Nouveau clicdaily_report- Rapport quotidien (8h du matin)
Configuration
Dans Mon compte → Webhooks, ajoutez votre URL (ex: https://mondomaine.com/webhook). Nous
enverrons un POST avec un payload JSON contenant les données.
{
"event": "page_view",
"site_id": 42,
"data": {
"page_url": "/accueil",
"timestamp": "2026-01-15T10:30:00Z",
"visitor_id": "sess_abc123"
}
}
Gestion de votre compte
Changer de mot de passe
Allez dans Dashboard → Mon compte → Sécurité. Vous pouvez modifier votre mot de passe à
tout moment.
Ajouter/Supprimer un site
Dans la colonne de gauche, cliquez sur "Ajouter un site". Remplissez le nom et l'URL. Le tracking code sera généré automatiquement. Pour supprimer, survolez le site dans la liste et cliquez sur la corbeille.
Clé API ( en cours de dev, peut ne pas focntionner correctement )
Disponible dans Mon compte → API. Régénérez-la si nécessaire (cela cassera les anciennes intégrations).
Paiement avec Lemon Squeezy
Nous utilisons Lemon Squeezy, une plateforme de paiement européenne (pas de frais cachés).
Processus
- Vous cliquez sur "Mettre à niveau" dans le dashboard.
- Vous êtes redirigé vers une page de checkout hébergée par Lemon Squeezy.
- Vous payez par carte ou PayPal.
- Lemon Squeezy nous envoie un webhook pour confirmer le paiement.
- Votre compte est automatiquement mis à niveau.
Gestion des abonnements
Vous pouvez annuler, modifier ou consulter votre abonnement directement sur le portail client Lemon Squeezy (lien dans l'email de confirmation).
RGPD et conformité
Ce que nous collectons
- Pages vues (URL, titre, referrer)
- Informations techniques (navigateur, OS, écran)
- Géolocalisation (pays et ville uniquement, pas d'adresse précise)
- Clics (élément cliqué, pas de données personnelles)
Ce que nous ne collectons PAS
- Cookies tiers
- Empreinte numérique complète (fingerprinting)
- Données de formulaires (sauf si vous envoyez un événement custom)
Hébergement
Toutes les données sont hébergées sur des serveurs en France. Aucune donnée ne transite par les USA.
F.A.Q
LibreAnalytics est-il vraiment gratuit ?
Oui, le plan gratuit est illimité dans le temps pour 1 site et 1000 visites/mois. Pas de carte bleue demandée.
Puis-je auto-héberger LibreAnalytics ?
Absolument ! Le code est open source (MIT). Suivez les instructions sur GitHub.
Comment désinstaller le tracker ?
Supprimez simplement la ligne de script de votre site. Les données historiques restent dans votre dashboard.
Y a-t-il une application mobile ?
Pas encore, mais le dashboard est responsive et fonctionne parfaitement sur mobile. Une app Flutter est prévue pour 2027.
Que faire si mes données n'apparaissent pas ?
Vérifiez : 1) que le tracking code est correct, 2) que le script est bien placé avant
</head>, 3) que votre site n'est pas bloqué par un adblocker. Consultez la
console navigateur pour d'éventuelles erreurs.
Codes erreur et dépannage
| Code | Signification | Solution |
|---|---|---|
ERR_INVALID_TRACKING |
Tracking code invalide | Vérifiez que le code SP_XXXXXX est correct. |
ERR_SITE_INACTIVE |
Site désactivé | Activez le site dans le dashboard. |
ERR_GEOLOC_FAILED |
Géolocalisation impossible | L'API ip-api est peut-être down, les données sont marquées "Unknown". |
ERR_DB_INSERT |
Échec insertion base | Contactez le support si persistant. |
Support
contact
Réponse sous 24h
GitHub Issues
Ouvrez un
ticket
Suivi public
Discord
Serveur communautaire
Entraide entre utilisateurs