Vue d'ensemble des analytiques
Suivez les performances des e-mails avec des résumés d'événements en temps réel, des statistiques quotidiennes, des taux et des métriques de volume
MailLand fournit des analytiques en temps réel alimentées par ClickHouse pour une agrégation haute performance sur des millions d'événements. Suivez les livraisons, les ouvertures, les clics, les rebonds et les plaintes avec des plages de dates flexibles et un filtrage par type d'e-mail.
Résumé des événements
Obtenez des comptages agrégés d'événements pour une période donnée :
GET https://api.mail.land/v1/transactional/analytics/events/summarycurl "https://api.mail.land/v1/transactional/analytics/events/summary?from=2026-01-18&to=2026-02-17" \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."Paramètres de requête
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
from | datetime | Il y a 30 jours | Date de début (alias : startDate) |
to | datetime | Maintenant | Date de fin (alias : endDate) |
emailType | int | - | 0 = Transactionnel, 1 = Marketing, omettre pour tous |
refresh | bool | false | Contourner le cache et récupérer des données fraîches |
{
"from": "2026-01-18T00:00:00Z",
"to": "2026-02-17T23:59:59Z",
"sent": 142500,
"delivered": 140325,
"opened": 44878,
"clicked": 5843,
"bounced": 1125,
"complained": 28,
"source": "clickhouse",
"data_source": "clickhouse",
"is_degraded": false,
"queryTimeMs": 45
}| Champ | Description |
|---|---|
sent | E-mails acceptés par le MTA |
delivered | Livrés avec succès au serveur de messagerie du destinataire |
opened | Messages uniques avec au moins un événement d'ouverture : inclut l'activité automatisée (voir l'encadré ci-dessous) |
clicked | Messages uniques avec au moins un événement de clic : inclut l'activité automatisée (voir l'encadré ci-dessous) |
bounced | Échecs permanents : rebonds durs, messages expirés (tentatives épuisées) et rebonds administratifs. Les rebonds hors bande ne sont pas actuellement comptabilisés (lacune connue, suivie séparément) |
complained | Destinataires ayant signalé un spam |
source | Source des données : clickhouse, postgres (secours) ou cache |
data_source, fallback_reason, is_degraded | Champs en snake_case décrivant l'état dégradé/de secours : seul le point de terminaison de résumé des événements bascule vers PostgreSQL, et la réponse est alors marquée is_degraded: true ; tous les autres points de terminaison d'analytiques sont exclusivement ClickHouse |
queryTimeMs | Temps d'exécution de la requête en millisecondes |
Les ouvertures et les clics incluent l'activité automatisée, le préchargement d'Apple Mail Privacy Protection et les scanners de liens de sécurité, que MailLand ne filtre pas aujourd'hui. Considérez ces chiffres comme une limite supérieure de l'engagement humain, et non comme un décompte précis.
La réponse inclut les en-têtes X-Cache: HIT, MISS ou FRESH indiquant si les données ont été servies depuis le cache. Utilisez refresh=true pour forcer une requête fraîche.
Statistiques quotidiennes
Obtenez des ventilations d'événements par jour pour la création de graphiques :
GET https://api.mail.land/v1/transactional/analytics/stats/dailycurl "https://api.mail.land/v1/transactional/analytics/stats/daily?from=2026-01-18&to=2026-02-17" \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."| Paramètre | Type | Défaut | Description |
|---|---|---|---|
from | datetime | les 7 derniers jours UTC complets | Date de début |
to | datetime | Maintenant | Date de fin |
emailType | int | - | Filtrer par type d'e-mail |
[
{
"date": "2026-02-17T00:00:00Z",
"sent": 4750,
"delivered": 4680,
"opened": 1498,
"clicked": 195,
"bounced": 38
},
{
"date": "2026-02-16T00:00:00Z",
"sent": 4320,
"delivered": 4260,
"opened": 1380,
"clicked": 175,
"bounced": 32
}
]Taux
Obtenez les taux de livraison, d'ouverture et de clic calculés en pourcentages :
GET https://api.mail.land/v1/transactional/analytics/ratescurl "https://api.mail.land/v1/transactional/analytics/rates?from=2026-01-18&to=2026-02-17" \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."| Paramètre | Type | Défaut | Description |
|---|---|---|---|
from | datetime | Il y a 30 jours | Date de début |
to | datetime | Maintenant | Date de fin |
emailType | int | - | Filtrer par type d'e-mail |
{
"from": "2026-01-18T00:00:00Z",
"to": "2026-02-17T23:59:59Z",
"deliveryRate": 98.47,
"openRate": 31.49,
"clickRate": 13.02
}Calculs des taux :
| Taux | Formule |
|---|---|
| Taux de livraison | delivered / accepted * 100 (plafonné à 100) : pas sent |
| Taux d'ouverture | opened / delivered * 100 (plafonné à 100) |
| Taux de clic | clicked / delivered * 100 (plafonné à 100) : pas clicked / opened |
Les trois requêtes de taux s'exécutent en parallèle pour des performances optimales.
Liens les plus cliqués
Consultez les liens les plus cliqués dans vos e-mails :
GET https://api.mail.land/v1/transactional/analytics/links/topcurl "https://api.mail.land/v1/transactional/analytics/links/top?from=2026-01-18&to=2026-02-17&limit=10" \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."| Paramètre | Type | Défaut | Description |
|---|---|---|---|
from | datetime | Il y a 30 jours | Date de début |
to | datetime | Maintenant | Date de fin |
limit | int | 10 | Nombre maximum de liens à retourner |
emailType | int | - | Filtrer par type d'e-mail |
[
{
"url": "https://your-app.com/orders/track",
"clicks": 2340,
"uniqueRecipients": 1890
},
{
"url": "https://your-app.com/dashboard",
"clicks": 1150,
"uniqueRecipients": 980
}
]Volume horaire
Suivez le volume d'envoi par heure, avec une superposition optionnelle de la ligne de base pour la détection d'anomalies :
GET https://api.mail.land/v1/transactional/analytics/volume/hourly?days=7curl "https://api.mail.land/v1/transactional/analytics/volume/hourly?days=7" \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."| Paramètre | Type | Défaut | Description |
|---|---|---|---|
days | int | 7 | Période de rétrospection (1–30) |
[
{
"hour": "2026-02-17T14:00:00Z",
"sent": 520,
"baseline": 480.5
},
{
"hour": "2026-02-17T13:00:00Z",
"sent": 495,
"baseline": 480.5
}
]La baseline est le volume moyen historique pour cette heure de la journée, calculé par VolumeAnomalyWorker. Elle vaut null si aucune donnée de référence n'est encore disponible.
Mise en cache
Les points de terminaison d'analytiques sont mis en cache côté serveur pour minimiser la charge des requêtes :
| Point de terminaison | Durée de cache |
|---|---|
events/summary (plage par défaut) | 5 minutes |
events/summary (plage personnalisée) | 3 minutes |
stats/daily | 3 minutes |
rates | 3 minutes |
links/top | 5 minutes |
volume/hourly | 3 minutes |
Le point de terminaison events/summary fusionne les requêtes identiques simultanées par serveur : une seule requête atteint ClickHouse par instance de l'API, et tous les appelants de cette instance reçoivent le même résultat. Les autres points de terminaison de cette page ne fusionnent pas les requêtes ; chacune lit le cache puis interroge.
Sources de données
MailLand utilise ClickHouse comme source de données analytiques principale pour une agrégation rapide sur des milliards d'événements.
Seul events/summary bascule vers PostgreSQL lorsque ClickHouse est indisponible ou ne renvoie aucune donnée, et cette réponse est alors marquée is_degraded: true. Tous les autres points de terminaison d'analytiques de cette page sont exclusivement ClickHouse et n'ont pas de secours.
Le champ source dans les réponses indique quel magasin de données a servi le résultat. Le champ queryTimeMs aide à surveiller les performances.
Rétention
Les données d'événements analytiques suivent le forfait de l'espace de travail : les journaux sont conservés 30 jours en Free, 90 jours en Pro et 180 jours en Max.
Étapes suivantes
- Journaux d'e-mails : recherchez et inspectez les livraisons d'e-mails individuelles
- Analytiques avancées : analytiques géographiques, par appareil et par heure de la journée
- Vue d'ensemble de la délivrabilité : réputation de l'expéditeur et tendances
Versionnage et compatibilité
Comment les payloads de webhook sont versionnés, ce que signifie chaque identifiant et chaque horodatage, et comment les changements et dépréciations sont annoncés
Journaux d'e-mails
Recherchez, filtrez et inspectez les journaux de livraison détaillés pour chaque e-mail envoyé via Mail.Land