Campañas
Dirección de la llamada
| Centro de datos | URL |
|---|---|
| Singapur | https://email.api.engagelab.cc |
| Turquía | https://emailapi-tr.engagelab.com |
| Estados Unidos | https://emailapi-us.engagelab.com |
Al utilizar la API REST, se debe verificar que el centro de datos seleccionado corresponda a la URL base adecuada.
POST/v1/marketing/campaigns
Crear
URL
https://email.api.engagelab.cc/v1/marketing/campaigns
Método de solicitud HTTP
POST
Content-Type
application/json; charset=utf-8
Encabezados de la solicitud
| Encabezado | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| Authorization | string | true | Basic base64(api_user:api_key) |
Parámetros del cuerpo
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| campaign_type | integer | true | Tipo de campaña: 1 para prueba A/B, 2 para campaña estándar |
| name | string | true | Nombre de la campaña (hasta 64 caracteres) |
| to | object[] | true | Destinatarios; actualmente admite un array de longitud 1 |
| reply_to | string | false | Dirección de respuesta |
| sender_id | string | * | ID de remitente (solo compatible con campañas estándar) |
| template_invoke_name | string | * | Nombre de invocación de la plantilla (solo compatible con campañas estándar) |
| subject | string | * | Asunto del correo; tiene prioridad sobre el asunto integrado de la plantilla. Obligatorio si la prueba A/B es una prueba de contenido |
| send_time | string | * | Hora de envío (solo compatible con campañas estándar); formato: "YYYY-MM-DD HH:mm:ss" |
| time_zone | string | * | Zona horaria predeterminada (+8 de forma predeterminada) |
| attachments | object[] | false | Adjuntos de correo (hasta 10 adjuntos) |
| file_name | string | false | Nombre de archivo del adjunto, p. ej., example.pdf |
| content | string | false | Contenido del adjunto en codificación base64 |
| ab_test | object | * | Parámetros de configuración de prueba A/B (solo compatible con pruebas A/B) |
| google_track | object | false | Parámetros de configuración de Google Track (solo compatible con campañas estándar) |
| warm_up | object[] | false | Parámetros de configuración de envío de calentamiento (warm-up) (solo compatible con campañas estándar) |
Nota:
El tamaño total de todos los archivos adjuntos no debe superar los 10 MB. Se debe tener en cuenta que el tamaño de los archivos aumenta ligeramente tras la codificación base64. El límite de 10 MB se refiere al tamaño antes de la codificación base64.
template_invoke_namedebe hacer referencia a una plantilla por lotes (template_type=1); las plantillas de activación (template_type=0) no se pueden usar para campañas. Parato, useallparalist, y use el ID de segmento o el ID de etiqueta parasegmentotagrespectivamente.
Los cinco formatos del parámetro "to" son:
[
{
"type": "list",
"value": ["all"]
}
]
[
{
"type": "tag",
"value": ["tag1"]
}
]
[
{
"type": "not_tag",
"value": ["tag3"]
}
]
[
{
"type": "segment",
"value": ["segment1"]
}
]
[
{
"type": "not_segment",
"value": ["segment3"]
}
]
[
{
"type": "tag",
"value": ["tag1"]
},
{
"type": "not_tag",
"value": ["tag3"]
}
]
> Nota: `type` puede ser `list` (todos los contactos, valor fijo `["all"]`), `tag` (etiqueta), `not_tag` (etiqueta excluida), `segment` (segmento) o `not_segment` (segmento excluido); `value` es un array de los IDs correspondientes. `not_tag` y `not_segment` son nuevos.
El formato del parámetro "ab_test" es el siguiente:
Cuando la campaña es una prueba A/B, el parámetro "ab_test" es obligatorio.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| ab_test | object | true | Datos de configuración de la prueba A/B |
| percent | integer | true | Configuración de porcentaje; rango [1, 100]. Por ejemplo, 20 significa que se selecciona el 20% de los contactos como destinatarios de prueba, mientras que el resto se envía en función de la condición ganadora |
| win_condition | object | true | Determina la condición ganadora de la prueba A/B |
| time_unit | string | true | Unidad de tiempo: day, hour |
| after_time | integer | true | Tiempo de espera antes de calcular la condición ganadora. Si la unidad es horas, el rango es [0-23]; si la unidad es días, el rango es [0-10] |
| compare | string | true | Campo de comparación. Valores posibles: open_percent, click_percent, uni_open_percent, uni_click_percent, delivered_percent |
| template_invoke_names | string[] | * | Prueba de plantilla. Se ignora el valor de template_invoke_name; subject es obligatorio |
| sender_ids | string[] | * | Prueba de ID de remitente. Se ignora el valor de sender_id |
| send_times | string[] | * | Prueba de hora de envío. Se ignora el valor de send_time |
| subjects | string[] | * | Prueba de asunto del correo. Se ignora el valor de subject |
El ejemplo es el siguiente:
// A/B testing, different email subjects
"ab_test": {
"percent": 20,
"win_condition": {
"time_unit": "hour",
"after_time": 18,
"compare": "open_percent"
},
"subjects": []
}
// A/B testing, different email templates
"ab_test": {
"percent": 20,
"win_condition": {
"time_unit": "hour",
"after_time": 18,
"compare": "open_percent"
},
"template_invoke_names": []
}
// A/B testing, different senders
"ab_test": {
"percent": 20,
"win_condition": {
"time_unit": "hour",
"after_time": 18,
"compare": "open_percent"
},
"sender_ids": []
}
// A/B testing, different sending times.
"ab_test": {
"percent": 20,
"win_condition": {
"time_unit": "hour",
"after_time": 18,
"compare": "open_percent"
},
"send_times": []
}
Nota:
- La configuración de ab_test actualmente solo admite un único elemento de prueba.
El formato del parámetro google_track es el siguiente:
Al configurar los parámetros de google_track, el sistema añadirá estos parámetros a los enlaces de los correos electrónicos. Se permite hacer el seguimiento del tráfico de clientes desde las campañas hacia el sitio web, lo que habilita el análisis en Google Analytics.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| google_track | object | false | Parámetros de configuración de Google Track |
| campaign_name | string | false | Nombre de campaña (hasta 64 caracteres) |
| campaign_source | string | false | Fuente (hasta 64 caracteres) |
| campaign_medium | string | false | Medio (hasta 64 caracteres) |
| campaign_term | string | false | Palabra clave (hasta 64 caracteres) |
| campaign_content | string | false | Contenido (hasta 64 caracteres) |
El ejemplo es el siguiente:
"google_track": {
"campaign_name":"",
"campaign_source":"",
"campaign_medium":"",
"campaign_term":"",
"campaign_content":""
}
El formato del parámetro "warm_up" es el siguiente:
El envío con calentamiento permite configurar la cantidad de correos por hora o por día para dominios de destinatarios específicos, lo que puede mejorar la capacidad de entrega. Además, la velocidad de envío se puede ajustar según la capacidad de entrega observada.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| warm_up | object[] | false | Parámetros de configuración del envío de calentamiento, con una longitud máxima de 20 |
| domain | string | true | Dominio del destinatario |
| rate | integer | true | Nivel de velocidad de envío |
| upgrade_value | float | true | Umbral de capacidad de entrega para aumentar la velocidad, un valor decimal entre (0,1] |
| downgrade_value | float | true | Umbral de capacidad de entrega para reducir la velocidad, un valor decimal entre (0,1] |
El ejemplo es el siguiente:
"warm_up": [{
"domain": "gmail.com",
"rate": 1,
"upgrade_value": "0.95",
"downgrade_value": "0.75"
}, {
"domain": "hotmail.com",
"rate": 3,
"upgrade_value": "0.95",
"downgrade_value": "0.75"
}]
Ejemplo de solicitud
Crear una campaña estándar
curl -X POST -H 'Content-Type: application/json; charset=utf-8' -H 'Authorization:Basic YXBpX3VzZXI6YXBpX2tleQ==' -i https://email.api.engagelab.cc/v1/marketing/campaigns --data '{
"campaign_type": 2,
"name": "11.11_leon_api8",
"to":[{
"type": "tag",
"value": ["tag1"]
}],
"sender_id": "53",
"reply_to": "",
"template_invoke_name": "leon2_shanshan",
"subject": "happy new year",
"send_time": "2022-10-26 17:10:20",
"time_zone":"8",
"attachments":[{
"content":"base64 content",
"file_name":"1.jpg"
},{
"content":"base64 content",
"file_name":"2.jpg"
}],
"warm_up": [{
"domain":"gmail.com",
"rate":1,
"upgrade_value":"0.95",
"downgrade_value":"0.75"
},{
"domain":"hotmail.com",
"rate":1,
"upgrade_value":"0.95",
"downgrade_value":"0.75"
}],
"google_track":{
"campaign_name":"",
"campaign_source":"",
"campaign_medium":"",
"campaign_term":"",
"campaign_content":""
}
}
'
Crear una campaña A/B
curl -X POST -H 'Content-Type: application/json; charset=utf-8' -H 'Authorization:Basic YXBpX3VzZXI6YXBpX2tleQ==' -i https://email.api.engagelab.cc/v1/marketing/campaigns --data '{
"campaign_type": 1,
"name": "11.11_leon_api9",
"to":[{
"type": "list",
"value": ["all"]
}],
"sender_id": "53",
"reply_to": "reply@sendcloud.im",
"template_invoke_name": "leon2_shanshan",
"subject": "happy new year",
"send_time": "2022-10-26 17:10:20",
"time_zone":"8",
"attachments":[{
"content":"base64 content",
"file_name":"1.jpg"
}
],
"ab_test": {
"percent": 20,
"win_condition": {
"time_unit": "hour",
"after_time": 18,
"compare": "open_percent"
},
"template_invoke_names": []
},
"google_track":{
"campaign_name":"",
"campaign_source":"",
"campaign_medium":"",
"campaign_term":"",
"campaign_content":""
}
}'
Ejemplo de respuesta
Response-Success
HttpStatus: 200
{
"result": {
"campaign_id": 36894,
"campaign_type": 2,
"name": "testddd",
"to": [{
"type": "tag",
"value": ["tag1"]
}],
"subject": "happy new year",
"label_id": [617450],
"template_invoke_name": "leon2_shanshan",
"reply_to": null,
"status": 2,
"create_time": "2022-09-27T16:36:32+0800",
"update_time": "2022-10-12T00:00:00+0800",
"send_time": "2022-09-27T16:41:23+0800",
"complete_time": "2022-10-12T00:00:00+0800",
"time_zone": "+8",
"zone_id": "Beijing, Chongqing, Hong Kong, Urumqi",
"sender_id": 21,
"google_track": {
"campaign_name":"",
"campaign_source":"",
"campaign_medium":"",
"campaign_term":"",
"campaign_content":""
},
"warm_up": [{
"domain":"hotmail.com",
"rate":1,
"upgrade_value":"0.95",
"downgrade_value":"0.75"
},{
"domain":"hotmail.com",
"rate":1,
"upgrade_value":"0.95",
"downgrade_value":"0.75"
}],
}
}
ejemplo de respuesta de campaña a/b
{
"result": {
"campaign_id": 36895,
"campaign_type": 1,
"name": "testddd",
"to":[{
"type": "list",
"value": ["all"]
}],
"subject": null,
"label_id": null,
"template_invoke_name": "leon2_shanshan",
"reply_to": null,
"status": 0,
"create_time": "2022-09-27T16:36:32+0800",
"update_time": "2022-10-12T00:00:00+0800",
"send_time": "2022-09-27T16:41:23+0800",
"complete_time": "2022-10-12T00:00:00+0800",
"time_zone": "+8",
"zone_id": "Beijing, Chongqing, Hong Kong, Urumqi",
"sender_id": 21,
"ab_test": {
"percent": 20,
"win_condition": {
"time_unit": "hour",
"after_time": 18,
"compare": "open_percent"
},
"template_invoke_names": []
},
"google_track": {
"campaign_name":"",
"campaign_source":"",
"campaign_medium":"",
"campaign_term":"",
"campaign_content":""
}
}
}
Response-Error
HttpStatus: 401
{
"code": 32112,
"message": "name cannot be empty"
}
Eliminar
URL
https://email.api.engagelab.cc/v1/marketing/campaigns/{campaign_id}
Método de solicitud HTTP
DELETE
Content-Type
application/x-www-form-urlencoded;charset=utf-8
Encabezados de la solicitud
| Encabezado | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| Authorization | string | true | Basic base64(api_user:api_key) |
Ejemplo de solicitud
curl -X DELETE -H 'Authorization:Basic YXBpX3VzZXI6YXBpX2tleQ==' -i https://email.api.engagelab.cc/v1/marketing/campaigns/{campaign_id}
Ejemplo de respuesta
Response-Success
HttpStatus: 200
{
"count": 1
}
Response-Error
HttpStatus: 401
{
"code": 30000,
"message": "Authentication failed"
}
Actualizar
URL
https://email.api.engagelab.cc/v1/marketing/campaigns/{campaign_id}
Método de solicitud HTTP
PUT
Content-Type
application/json; charset=utf-8
Encabezados de la solicitud
| Encabezado | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| Authorization | string | true | Basic base64(api_user:api_key) |
Parámetros del cuerpo
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| campaign_type | integer | true | Tipo de campaña: 1 para prueba A/B, 2 para campaña estándar |
| name | string | false | Nombre de la campaña (hasta 64 caracteres) |
| to | object[] | false | Destinatarios; actualmente admite un array de longitud 1 |
| reply_to | string | false | Dirección de respuesta |
| sender_id | string | * | ID de remitente (solo compatible con campañas estándar) |
| template_invoke_name | string | * | Nombre de invocación de la plantilla (solo compatible con campañas estándar) |
| subject | string | * | Asunto del correo (obligatorio para pruebas A/B) |
| send_time | string | * | Hora de envío (solo compatible con campañas estándar); formato: YYYY-MM-DD HH:mm:ss |
| time_zone | string | * | Zona horaria predeterminada, normalmente +8 |
| attachments | object[] | false | Adjuntos de correo (hasta 10 adjuntos) |
| file_name | string | false | Nombre de archivo del adjunto, p. ej., example.pdf |
| content | string | false | Contenido del adjunto en codificación base64 |
| ab_test | object | * | Parámetros de configuración de prueba A/B (solo compatible con pruebas A/B) |
| google_track | object | false | Parámetros de configuración de Google Track |
| warm_up | object[] | false | Parámetros de configuración de envío de calentamiento (warm-up) (solo compatible con campañas estándar) |
Ejemplo de solicitud:
curl -X PUT -H ' application/json; charset=utf-8' -H 'Authorization:Basic YXBpX3VzZXI6YXBpX2tleQ==' -i https://email.api.engagelab.cc/v1/marketing/campaigns/{campaign_id} --data '{
"name":"11.11_leon_api8"
}'
Ejemplo de respuesta
Response-Success
HttpStatus: 200
{
"result": {
"campaign_id": 36894,
"campaign_type": 2,
"name": "testddd",
"to": [{
"type": "tag",
"value": ["tag1"]
}],
"subject": "happy new year",
"label_id": [617450],
"template_invoke_name": "leon2_shanshan",
"reply_to": null,
"status": 2,
"create_time": "2022-09-27T16:36:32+0800",
"update_time": "2022-10-12T00:00:00+0800",
"send_time": "2022-09-27T16:41:23+0800",
"complete_time": "2022-10-12T00:00:00+0800",
"time_zone": "+8",
"zone_id": "Beijing, Chongqing, Hong Kong, Urumqi",
"sender_id": 21,
"google_track": {
"campaign_name":"",
"campaign_source":"",
"campaign_medium":"",
"campaign_term":"",
"campaign_content":""
},
"warm_up": [{
"domain":"hotmail.com",
"rate":1,
"upgrade_value":"0.95",
"downgrade_value":"0.75"
},{
"domain":"hotmail.com",
"rate":1,
"upgrade_value":"0.95",
"downgrade_value":"0.75"
}],
}
}
}
Response-Error
{
"code": 32110,
"message": "The current campaign has been executed and cannot be modified"
}
Lista de campañas
URL
https://email.api.engagelab.cc/v1/marketing/campaigns
Método de solicitud HTTP
GET
Content-Type
application/x-www-form-urlencoded;charset=utf-8
Encabezados de la solicitud
| Encabezado | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| Authorization | string | true | Basic base64(api_user:api_key) |
Parámetros de consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| campaign_type | integer | false | Tipo de campaña: 1. Campaña A/B, 2. Campaña estándar |
| status | integer | false | Estado de la campaña: 0. Pendiente, 1. En curso, 2. Completada, -1. Fallida |
| name | string | false | Nombre de la campaña |
| to_type | integer | false | Tipo de destinatario: 0 todos los contactos, 1 segmento, 2 etiqueta |
| to_value | string | false | ID del alcance del destinatario; use un ID de segmento o un ID de etiqueta para los tipos 1 o 2 |
| limit | integer | false | Número de resultados a recuperar, rango [1-100], valor predeterminado 10 |
| offset | integer | false | Posición inicial de la consulta, rango [0-], valor predeterminado 0 |
Ejemplo de solicitud
curl -X GET -H 'Authorization:Basic YXBpX3VzZXI6YXBpX2tleQ==' -i https://email.api.engagelab.cc/v1/marketing/campaigns?&status=2
Ejemplo de respuesta
Response-Success
HttpStatus:200
{
"result": [
{
"campaign_id": 36894,
"campaign_type": 1,
"name": "testddd",
"to":[{
"type": "list",
"value": ["all"]
}],
"subject": null,
"label_id": null,
"template_invoke_name": "leon2_shanshan",
"reply_to": null,
"status": 2,
"google_track": null,
"create_time": "2022-09-27T16:36:32+0800",
"update_time": "2022-10-12T00:00:00+0800",
"send_time": "2022-09-27T16:41:23+0800",
"complete_time": "2022-10-12T00:00:00+0800",
"time_zone": "+8",
"zone_id": "Beijing, Chongqing, Hong Kong, Urumqi",
"warm_up": [],
"sender_id": 21,
"from_email": "xjmfc23@legendnovel.com",
"from_name": "aaaa",
"ab_test": {
"percent": 20,
"win_condition": {
"time_unit": "hour",
"after_time": 18,
"compare": "open_percent"
},
"template_invoke_names": []
},
"report_summary": {
"targets": 0,
"delivered": 0,
"total_clicks": 0,
"total_opens": 0
}
}
],
"total": 2,
"count": 1
}
Response-Error
{
"code": 30000,
"message": "Authentication failed"
}
Detalles de la campaña
URL
https://email.api.engagelab.cc/v1/marketing/campaigns/{campaign_id}
Método de solicitud HTTP
GET
Content-Type
application/x-www-form-urlencoded;charset=utf-8
Encabezados de la solicitud
| Encabezado | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| Authorization | string | true | Basic base64(api_user:api_key) |
Ejemplo de solicitud
curl -X GET -H 'Authorization:Basic YXBpX3VzZXI6YXBpX2tleQ==' -i https://email.api.engagelab.cc/v1/marketing/campaigns/{campaign_id}
Parámetros de respuesta
| Parámetro | Tipo | Descripción |
|---|---|---|
| name | string | Nombre de la campaña |
| to | object[] | Destinatarios, actualmente admite un array con longitud de 1. |
| campaign_id | integer | ID de la campaña |
| campaign_type | integer | Tipo de campaña: 1 para prueba A/B, 2 para campaña estándar |
| template_invoke_name | string | Nombre de invocación de la plantilla |
| reply_to | string | Dirección de respuesta |
| status | integer | Estado de la campaña (0: pendiente, 1: en curso, 2: completada, -1: fallida) |
| from_email | string | Dirección de correo del remitente |
| from_name | string | Apodo del remitente |
| sender_id | integer | ID del remitente |
| create_time | string | Hora de creación (UTC+8) |
| update_time | string | Hora de actualización (UTC+8) |
| send_time | string | Hora de envío (UTC+8) |
| time_zone | string | Zona horaria, p. ej. +8 |
| complete_time | string | Hora de finalización (UTC+8) |
| google_track | object | Parámetros de configuración de Google Track |
| warm_up | array[object] | Parámetros de configuración de envío de calentamiento (warm-up) (solo compatible con campañas estándar) |
| ab_test | object | Configuración de prueba A/B |
| subject | string | Asunto del correo (null para campañas de prueba A/B) |
| label_id | array[integer] | Array de ID de etiqueta de campaña, analizado desde task_template.label_id; null si no se define |
| zone_id | string | ID de zona horaria, p. ej., "Beijing, Chongqing, Hong Kong, Urumqi" |
Ejemplo de respuesta
Response-Success
HttpStatus: 200
{
"result": {
"campaign_id": 36894,
"campaign_type": 1,
"name": "testddd",
"to":[{
"type": "list",
"value": ["all"]
}],
"subject": null,
"label_id": null,
"from_email": "xjmfc23@legendnovel.com",
"from_name": "aaaa",
"template_invoke_name": "leon2_shanshan",
"reply_to": null,
"status": 2,
"google_track": null,
"create_time": "2022-09-27T16:36:32+0800",
"update_time": "2022-10-12T00:00:00+0800",
"send_time": "2022-09-27T16:41:23+0800",
"complete_time": "2022-10-12T00:00:00+0800",
"time_zone": "+8",
"zone_id": "Beijing, Chongqing, Hong Kong, Urumqi",
"warm_up": null,
"sender_id": 21,
"ab_test": {
"percent": 20,
"win_condition": {
"time_unit": "hour",
"after_time": 18,
"compare": "open_percent"
},
"template_invoke_names": []
}
}
Response-Error
{
"code": 30000,
"message": "Authentication failed"
}










