{% extends 'gestion/_base.html.twig' %} {% set active = 'stats' %} {% macro duree(s) %} {%- set s = s|round -%} {%- if s < 1 -%}0 s {%- elseif s < 60 -%}{{ s }} s {%- elseif s < 3600 -%}{{ s // 60 }} min {{ '%02d'|format(s % 60) }} s {%- else -%}{{ s // 3600 }} h {{ '%02d'|format((s % 3600) // 60) }} min {%- endif -%} {% endmacro %} {% import _self as fmt %} {% block title %}Statistiques{% endblock %} {% block content %}
Pilotage

Statistiques

Audience sans cookie (hash quotidien salé) — {{ excludedHits }} hit(s) de bots exclus sur la période.

{% for p in periodes %} {{ p }} jours {% endfor %} Rapports
Visiteurs uniques
{{ summary.visitors }}
Pages vues
{{ summary.pageviews }}
Ajouts panier
{{ summary.addToCarts }}
Commandes
{{ summary.orders }}
Vues de robots
{{ excludedHits }}
Chiffre d'affaires
{{ summary.revenue|number_format(0, ',', ' ') }} €
Conversion
{{ summary.conversion }} %
Comptes créés
{{ summary.accounts }} / {{ summary.totalAccounts }} au total

Visiteurs & ventes par jour

Top pages

{% if topPages is empty %}

Pas encore de données — le beacon collecte depuis la mise en ligne.

{% else %}
{% for page in topPages %} {% endfor %}
PageVuesVisiteurs
{{ page.path }}{{ page.vues }}{{ page.visiteurs }}
{% endif %}

Top produits — vues → panier → achat

{% if topProducts is empty %}

Aucune vue produit sur la période.

{% else %}
{% for produit in topProducts %} {% endfor %}
ProduitVuesPaniersAchats
{{ produit.libelle }} {{ produit.vues }} {{ produit.paniers }} {{ produit.achats }}
{% endif %}

Top catégories

{% if topCategories is empty %}

Aucune donnée catégorie.

{% else %}
{% for cat in topCategories %} {% endfor %}
CatégorieVues
{{ cat.categorie|replace({'_': ' '})|capitalize }}{{ cat.vues }}
{% endif %}

Appareils & référents

{% set totalDevices = devices|reduce((a, b) => a + b, 0) %} {% if totalDevices > 0 %} {% set dlabels = {'desktop': 'Ordinateur', 'mobile': 'Mobile', 'tablet': 'Tablette'} %} {% for device, nb in devices %}
{{ dlabels[device]|default(device|capitalize) }}
{{ nb }}
{% endfor %} {% else %}

Aucune visite mesurée sur la période.

{% endif %}

Sites référents

{% if referrers is empty %}

Aucun référent externe (accès directs).

{% else %} {% for ref in referrers %}
{{ ref.referrer_host }} {{ ref.visiteurs }}
{% endfor %} {% endif %}

Pays des visiteurs

{% if topCountries is not empty %}
{% for c in topCountries %} 5 %} hidden data-pays-extra{% endif %}> {% endfor %}
PaysVisiteursVues
{{ c.pays }}{% if c.code and c.pays != c.code %} {{ c.code }}{% endif %} {{ c.visiteurs }} {{ c.vues }}
{% if topCountries|length > 5 %} {% endif %} {% elseif not geoReady %}

Base pays absente du serveur (data/geoip/dbip-country-lite.mmdb).

{% else %}

Aucune visite géolocalisée sur la période.

{% endif %}

Pays déduit de l'adresse IP à la connexion (base DB-IP figée) puis oubliée — l'IP n'est pas conservée. Vrais visiteurs uniquement.

Temps passé sur une page

{% if engagement.samples > 0 %}
{{ fmt.duree(engagement.avgSeconds) }}

Moyenne sur {{ engagement.samples }} page(s) consultée(s).{% if engagement.noData > 0 %} {{ engagement.noData }} sans mesure exploitable (départ immédiat ou onglet resté en arrière-plan).{% endif %}

{% else %}

Pas encore de temps de lecture mesuré sur la période.

{% endif %}

Temps réel passé sur la page : le minuteur ne tourne que si l'onglet est au premier plan, et se met en pause après 15 s sans activité (souris, défilement, clavier). Vrais visiteurs, robots exclus.

{% endblock %} {% block scripts %} {% endblock %}