DocumentacionTests A/B
Tests A/B
Prueba dos versiones de una plantilla en una campana y elige la ganadora por tasa de apertura.
Un test A/B reparte los envios de una campana entre dos versiones de la misma plantilla y mide cual funciona mejor. MailingCore atribuye aperturas y clics por variante y elige la ganadora al cerrarlo.
Modelo
| Entidad | Que es |
|---|---|
| AbTest | El test: plantilla, estado, trafficSplit y variante ganadora |
| AbVariant | Cada version (versionId) con sus contadores sentCount, openCount, clickCount |
Estados: DRAFT → RUNNING → COMPLETED (o CANCELLED).
Endpoints
| Metodo | Ruta | Descripcion |
|---|---|---|
GET | /ab-tests | Listar tests con nombre de plantilla y asuntos de cada variante |
POST | /ab-tests | Crear un test (nace en DRAFT con dos variantes) |
POST | /ab-tests/:id/start | DRAFT → RUNNING |
POST | /ab-tests/:id/complete | RUNNING → COMPLETED, fija la ganadora |
Guardias: JwtAuthGuard + TenantGuard (autenticacion de dashboard).
Crear un test
POST /ab-tests
Authorization: Bearer <accessToken>
X-Tenant-Id: {tenantId}
Content-Type: application/json
{
"name": "Asunto onboarding",
"templateId": "tmpl_123",
"variantAId": "ver_a",
"variantBId": "ver_b"
}
| Campo | Requerido | Notas |
|---|---|---|
name | Si | Nombre del test |
templateId | Si | Plantilla en test (debe ser de tu tenant) |
variantAId / variantBId | Si | Las dos versiones a comparar |
trafficSplit | No | Se guarda; hoy las dos variantes se crean con peso 50/50 |
Como se ejecuta
- Arranca el test (
/start) para ponerlo enRUNNING. - Envia una campana con esa plantilla. Por cada destinatario, MailingCore elige una variante con un reparto ponderado (RNG criptografico) e incrementa su
sentCount. - El tracking atribuye la primera apertura y el primer clic de cada email a la variante correspondiente (
openCount/clickCount). - Cierra el test (
/complete): la ganadora es la variante con mayor tasa de apertura (openCount / sentCount); en empate gana la primera.