Statistiques de Campagne
Obtenez des analyses détaillées pour une campagne spécifique avec des données chronologiques.
Endpoint
GET /api/campaigns/:id/statsParamètres de Chemin
| Paramètre | Type | Description |
|---|---|---|
id | string | ID de la Campagne |
Paramètres de Requête
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
period | string | 30d | Période pour les stats |
Formats de Période
- Jours:
7d,30d,90d- Les N derniers jours - Plage Personnalisée:
YYYY-MM-DD,YYYY-MM-DD- Plage de dates spécifique
Exemples de Requêtes
7 Derniers Jours
curl -X GET "NEXT_PUBLIC_BASE_URL/api/campaigns/clxyz123/stats?period=7d" \
-H "x-api-key: votre-cle-api"Plage de Dates Personnalisée
curl -X GET "NEXT_PUBLIC_BASE_URL/api/campaigns/clxyz123/stats?period=2024-01-01,2024-01-31" \
-H "x-api-key: votre-cle-api"Schéma de Réponse
| Champ | Type | Description |
|---|---|---|
campaign | object | Informations sur la campagne |
campaign.id | string | ID de la Campagne |
campaign.name | string | Nom de la Campagne |
campaign.createdAt | string | Timestamp ISO 8601 |
period | object | Période demandée |
period.start | string | Date de début de période (ISO 8601) |
period.end | string | Date de fin de période (ISO 8601) |
stats | object | Statistiques agrégées |
stats.totalEmails | number | Emails envoyés dans la période |
stats.totalOpens | number | Total des ouvertures dans la période |
stats.totalClicks | number | Total des clics dans la période |
stats.openRate | number | Pourcentage du taux d’ouverture |
stats.clickThroughRate | number | Taux de clics par ouverture (clics/ouvertures) |
stats.uniqueRecipients | number | Nombre de destinataires uniques |
stats.noInteraction | number | Emails sans ouvertures ni clics |
openAndClicks | array | Données chronologiques journalières |
openAndClicks[].date | string | Date (YYYY-MM-DD) |
openAndClicks[].opens | number | Ouvertures ce jour-là |
openAndClicks[].clicks | number | Clics ce jour-là |
openAndClicks[].emails | number | Emails envoyés ce jour-là |
topLinks | array | Liens les plus performants |
topLinks[].url | string | URL du lien |
topLinks[].clicks | number | Total des clics |
Exemple de Réponse
{
"campaign": {
"id": "clxyz123",
"name": "Série de Bienvenue",
"createdAt": "2024-01-15T10:30:00.000Z"
},
"period": {
"start": "2024-01-01T00:00:00.000Z",
"end": "2024-01-31T23:59:59.999Z"
},
"stats": {
"totalEmails": 1250,
"totalOpens": 856,
"totalClicks": 302,
"openRate": 68.48,
"clickThroughRate": 35.28,
"uniqueRecipients": 1200,
"noInteraction": 394
},
"openAndClicks": [
{
"date": "2024-01-01",
"opens": 45,
"clicks": 12,
"emails": 50
},
{
"date": "2024-01-02",
"opens": 62,
"clicks": 18,
"emails": 55
}
],
"topLinks": [
{
"url": "https://example.com/signup",
"clicks": 156
},
{
"url": "https://example.com/learn-more",
"clicks": 89
},
{
"url": "https://example.com/pricing",
"clicks": 57
}
]
}Cas d’Utilisation
Créer des Tableaux de Bord Personnalisés
Utilisez le tableau openAndClicks pour créer des graphiques chronologiques :
const response = await fetch('/api/campaigns/abc123/stats?period=30d', {
headers: { 'x-api-key': apiKey }
});
const data = await response.json();
// Utiliser avec une librairie de graphiques
const chartData = data.openAndClicks.map(day => ({
x: day.date,
opens: day.opens,
clicks: day.clicks
}));Comparer des Périodes
Comparez les performances sur différentes périodes :
// Ce mois-ci
const current = await fetch('/api/campaigns/abc123/stats?period=2024-01-01,2024-01-31');
// Le mois dernier
const previous = await fetch('/api/campaigns/abc123/stats?period=2023-12-01,2023-12-31');Réponses d’Erreur
| Statut | Description |
|---|---|
401 Unauthorized | Clé API invalide ou manquante |
404 Not Found | Campagne non trouvée |
{
"error": "Campagne non trouvée"
}Last updated on