Campagnes
Adresse d'appel
| Centre de données | URL |
|---|---|
| Singapour | https://email.api.engagelab.cc |
| Turquie | https://emailapi-tr.engagelab.com |
Lorsque vous utilisez l'API REST, assurez-vous que le centre de données sélectionné correspond à la bonne URL de base.
POST/v1/marketing/campaigns
Créer
URL
https://email.api.engagelab.cc/v1/marketing/campaigns
Méthode de requête HTTP
POST
Content-Type
application/json; charset=utf-8
En-têtes de la requête
| En-tête | Type | Obligatoire | Description |
|---|---|---|---|
| Authorization | string | true | Basic base64(api_user:api_key) |
Paramètres du corps
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| campaign_type | integer | true | Type de campagne : 1 pour test A/B, 2 pour campagne classique |
| name | string | true | Nom de la campagne (64 caractères max.) |
| to | object[] | true | Destinataires, prend actuellement en charge un tableau de longueur 1 |
| reply_to | string | false | Adresse de réponse |
| sender_id | string | * | ID de l'expéditeur (uniquement pour campagne classique) |
| template_invoke_name | string | * | Nom d'invocation du modèle (uniquement pour campagne classique) |
| subject | string | * | Sujet de l'e-mail, prioritaire sur le sujet du modèle intégré. Obligatoire si le test AB est un test de contenu |
| send_time | string | * | Heure d'envoi (uniquement pour les tâches classiques), format : "YYYY-MM-DD HH:mm:ss" |
| time_zone | integer | * | Fuseau horaire par défaut (+8 par défaut) |
| attachments | object[] | false | Pièces jointes (jusqu'à 10 pièces jointes) |
| filename | string | false | Nom du fichier joint, ex : exemple.pdf |
| content | string | false | Contenu de la pièce jointe en base64 |
| ab_test | object | * | Paramètres de configuration du test A/B (uniquement pour test A/B) |
| google_track | object | false | Paramètres de configuration Google Track (uniquement pour campagne classique) |
| warm_up | object[] | false | Paramètres de configuration du warm-up (uniquement pour campagne classique) |
Remarque :
- La taille totale de tous les fichiers joints ne doit pas dépasser 10 Mo. Veuillez noter que la taille des fichiers augmente légèrement après l'encodage base64. La limite de 10 Mo concerne la taille avant l'encodage base64.
Les trois formats pour le paramètre "to" sont :
[
{
"type": "list",
"value": ["all"]
}
]
[
{
"type": "tag",
"value": ["tag1"]
}
]
[
{
"type": "segment",
"value": ["segment1"]
}
]
Le format du paramètre "ab_test" est le suivant :
Lorsque la campagne est un test A/B, le paramètre "ab_test" est requis.
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| ab_test | object | true | Données de configuration du test A/B |
| percent | integer | true | Paramètre de pourcentage, plage [1, 100]. Par exemple, 20 signifie que 20% des contacts sont sélectionnés comme destinataires du test, le reste étant envoyé selon la condition gagnante |
| win_condition | object | true | Détermine la condition gagnante pour le test A/B |
| time_unit | string | true | Unité de temps : day, hour |
| after_time | integer | true | Délai avant le calcul de la condition gagnante. Si l'unité est heure, plage [0-23] ; si jour, plage [0-10] |
| compare | string | true | Champ de comparaison. Valeurs possibles : open_percent, click_percent, uni_open_percent, uni_click_percent, delivered_percent |
| template_invoke_names | string[] | * | Test de modèle. La valeur de template_invoke_name est ignorée, subject est requis |
| sender_ids | string[] | * | Test d'expéditeur. La valeur de sender_id est ignorée |
| send_times | string[] | * | Test de l'heure d'envoi. La valeur de send_time est ignorée |
| subjects | string[] | * | Test du sujet de l'e-mail. La valeur de subject est ignorée |
Exemple :
// Test A/B, sujets d'e-mails différents
"ab_test": {
"percent": 20,
"win_condition": {
"time_unit": "hour",
"after_time": 18,
"compare": "open_percent"
},
"subjects": []
}
// Test A/B, modèles d'e-mails différents
"ab_test": {
"percent": 20,
"win_condition": {
"time_unit": "hour",
"after_time": 18,
"compare": "open_percent"
},
"template_invoke_names": []
}
// Test A/B, expéditeurs différents
"ab_test": {
"percent": 20,
"win_condition": {
"time_unit": "hour",
"after_time": 18,
"compare": "open_percent"
},
"sender_ids": []
}
// Test A/B, heures d'envoi différentes
"ab_test": {
"percent": 20,
"win_condition": {
"time_unit": "hour",
"after_time": 18,
"compare": "open_percent"
},
"send_times": []
}
Remarque :
- La configuration ab_test ne prend actuellement en charge qu'un seul élément de test
Le format du paramètre google_track est le suivant :
Configurez les paramètres pour google_track et le système ajoutera ces paramètres aux liens dans les e-mails. Suivez le trafic client des campagnes vers votre site web, permettant l'analyse dans Google Analytics.
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| google_track | object | false | Paramètres de configuration Google Track |
| campaign_name | string | false | Nom de la campagne (64 caractères max.) |
| campaign_source | string | false | Source (64 caractères max.) |
| campaign_medium | string | false | Support (64 caractères max.) |
| campaign_term | string | false | Mot-clé (64 caractères max.) |
| campaign_content | string | false | Contenu (64 caractères max.) |
Exemple :
"google_track": {
"campaign_name":"",
"campaign_source":"",
"campaign_medium":"",
"campaign_term":"",
"campaign_content":""
}
Le format du paramètre "warm_up" est le suivant :
Le warm-up permet de définir le nombre d'e-mails par heure ou par jour pour des domaines de destinataires spécifiques, ce qui peut améliorer la délivrabilité. De plus, le taux d'envoi peut être ajusté en fonction de la délivrabilité observée.
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| warm_up | object[] | false | Paramètres de configuration du warm-up, longueur max 20 |
| domain | string | true | Domaine du destinataire |
| rate | integer | true | Niveau du taux d'envoi |
| upgrade_value | float | true | Seuil de délivrabilité pour l'augmentation du taux, valeur décimale entre (0,1] |
| downgrade_value | float | true | Seuil de délivrabilité pour la diminution du taux, valeur décimale entre (0,1] |
Exemple :
"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"
}]
Exemple de requête
Créer une campagne classique
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_api8",
"to":[{
"type": "tag",
"value": ["tag1"]
}],
"sender_id": "53",
"reply_to": "",
"template_invoke_name": "leon2_shanshan",
"subject": "happy new year",
"run_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":""
}
}
'
Créer une campagne 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": 2,
"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",
"run_time": "2022-10-26T17:10:20+0800",
"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":""
}
}'
Exemple de réponse
Réponse-Succès
HttpStatus: 200
{
"result": {
"campaign_id": 34007,
"campaign_type": 2,
"name": "testddd",
"to": {
"type": "tag",
"value": ["tag1"]
},
"template_invoke_name": "leon2_shanshan",
"reply_to": "",
"status": 2,
"create_time": "2022-09-27T16:36:32+0800",
"update_time": "2022-10-12T00:00:00+0800",
"run_time": "2022-09-27T16:41:23+0800",
"complete_time": "2022-10-12T00:00:00+0800",
"time_zone": "+8",
"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"
}]
}
}
Exemple de réponse pour une campagne A/B test
{
"result": {
"campaign_id": 34009,
"campaign_type": 2,
"name": "testddd",
"to":[{
"type": "list",
"value": ["all"]
}],
"template_invoke_name": "leon2_shanshan",
"reply_to": "",
"status": 0,
"create_time": "2022-09-27T16:36:32+0800",
"update_time": "2022-10-12T00:00:00+0800",
"run_time": "2022-09-27T16:41:23+0800",
"complete_time": "2022-10-12T00:00:00+0800",
"time_zone": "+8",
"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":""
}
}
}
Réponse-Erreur
HttpStatus: 401
{
"code": 32112,
"message": "name cannot be empty"
}
Supprimer
URL
https://email.api.engagelab.cc/v1/marketing/campaigns/{campaign_id}
Méthode de requête HTTP
DELETE
Content-Type
application/x-www-form-urlencoded;charset=utf-8
En-têtes de la requête
| En-tête | Type | Obligatoire | Description |
|---|---|---|---|
| Authorization | string | true | Basic base64(api_user:api_key) |
Exemple de requête
curl -X DELETE -H 'Authorization:Basic YXBpX3VzZXI6YXBpX2tleQ==' -i https://email.api.engagelab.cc/v1/marketing/campaigns/8
Exemple de réponse
Réponse-Succès
HttpStatus: 200
{
"count": 1
}
Réponse-Erreur
HttpStatus: 401
{
"code": 30000,
"message": "Échec de l'authentification"
}
Mettre à jour
URL
https://email.api.engagelab.cc/v1/marketing/campaigns/{campaign_id}
Méthode de requête HTTP
PUT
Content-Type
application/json; charset=utf-8
En-têtes de la requête
| En-tête | Type | Obligatoire | Description |
|---|---|---|---|
| Authorization | string | true | Bearer Token |
Paramètres du corps
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| campaign_type | integer | true | Type de campagne : 1 pour test A/B, 2 pour campagne classique |
| name | string | true | Nom de la campagne (64 caractères max.) |
| to | object[] | true | Destinataires, prend actuellement en charge un tableau de taille 1 |
| reply_to | string | false | Adresse de réponse |
| sender_id | string | * | ID de l'expéditeur (uniquement pour campagnes classiques) |
| template_invoke_name | string | * | Nom du modèle d'e-mail à invoquer (uniquement pour campagnes classiques) |
| subject | string | * | Sujet de l'e-mail (obligatoire pour les tests A/B) |
| send_time | string | * | Heure d'envoi (uniquement pour les tâches classiques), format : YYYY-MM-DD HH:mm:ss |
| time_zone | integer | * | Fuseau horaire par défaut, généralement +8 |
| attachments | object[] | false | Pièces jointes (jusqu'à 10 pièces jointes) |
| filename | string | false | Nom du fichier joint, ex : exemple.pdf |
| content | text | false | Contenu encodé en base64 de la pièce jointe |
| ab_test | object | * | Paramètres de configuration pour les tests A/B (uniquement pour les tests A/B) |
| google_track | object | false | Paramètres de configuration pour Google tracking |
| warm_up | object[] | false | Paramètres de configuration du warm-up (uniquement pour campagnes classiques) |
Exemple de requête :
curl -X PUT -H 'application/json; charset=utf-8' -H 'Authorization:Basic YXBpX3VzZXI6YXBpX2tleQ==' -i https://email.api.engagelab.cc/v1/marketing/campaigns/8 --data '{
"name":"11.11_leon_api8"
}'
Exemple de réponse
Réponse-Succès
HttpStatus: 200
{
"count": 1
}
Réponse-Erreur
{
"code": 32110,
"message": "La campagne en cours a été exécutée et ne peut pas être modifiée"
}
Liste des campagnes
URL
https://email.api.engagelab.cc/v1/marketing/campaigns
Méthode de requête HTTP
GET
Content-Type
application/x-www-form-urlencoded;charset=utf-8
En-têtes de la requête
| En-tête | Type | Obligatoire | Description |
|---|---|---|---|
| Authorization | string | true | Basic base64(api_user:api_key) |
Paramètres de requête
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| campaign_type | integer | false | Type de campagne : 1. campagne A/B, 2. campagne classique |
| status | integer | false | Statut de la campagne : 0. En attente, 1. En cours, 2. Terminée, -1. Échouée |
| name | string | false | Nom de la campagne |
| limit | integer | false | Nombre de résultats à récupérer, plage [1-100], 10 par défaut |
| offset | integer | false | Position de départ pour la requête, plage [0-], 0 par défaut |
Exemple de requête
curl -X GET -H 'Authorization:Basic YXBpX3VzZXI6YXBpX2tleQ==' -i https://email.api.engagelab.cc/v1/marketing/campaigns?&status=2
Exemple de réponse
Réponse-Succès
HttpStatus:200
{
"result": [
{
"campaign_id": 34007,
"campaign_type": 1,
"name": "testddd",
"to":[{
"type": "list",
"value": ["all"]
}],
"template_invoke_name": "leon2_shanshan",
"reply_to": "",
"status": 2,
"google_track": null,
"create_time": "2022-09-27T16:36:32+0800",
"update_time": "2022-10-12T00:00:00+0800",
"run_time": "2022-09-27T16:41:23+0800",
"complete_time": "2022-10-12T00:00:00+0800",
"time_zone": "+8",
"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": []
}
],
"total": 2
}
Réponse-Erreur
{
"code": 30000,
"message": "Échec de l'authentification"
}
Détails de la campagne
URL
https://email.api.engagelab.cc/v1/marketing/campaigns/{campaign_id}
Méthode de requête HTTP
GET
Content-Type
application/x-www-form-urlencoded;charset=utf-8
En-têtes de la requête
| En-tête | Type | Obligatoire | Description |
|---|---|---|---|
| Authorization | string | true | Basic base64(api_user:api_key) |
Exemple de requête
curl -X GET -H 'Authorization:Basic YXBpX3VzZXI6YXBpX2tleQ==' -i https://email.api.engagelab.cc/v1/marketing/campaigns/33761
Paramètres de réponse
| Paramètre | Type | Description |
|---|---|---|
| name | string | Nom de la campagne |
| to | object[] | Destinataires, prend actuellement en charge un tableau de longueur 1 |
| campaign_id | integer | ID de la campagne |
| campaign_type | integer | Type de campagne : 1 pour test A/B, 2 pour campagne classique |
| template_invoke_name | string | Nom d'invocation du modèle |
| reply_to | string | Adresse de réponse |
| status | integer | Statut de la campagne (0 : en attente, 1 : en cours, 2 : terminée, -1 : échouée) |
| from_email | string | Adresse e-mail de l'expéditeur |
| from_name | string | Surnom de l'expéditeur |
| sender_id | integer | ID de l'expéditeur |
| create_time | string | Date de création (UTC+8) |
| update_time | string | Date de mise à jour (UTC+8) |
| run_time | string | Date d'exécution (UTC+8) |
| time_zone | integer | Fuseau horaire (voir dictionnaire des fuseaux horaires) |
| complete_time | string | Date de fin (UTC+8) |
| google_track | object | Paramètres de configuration Google Track |
| warm_up | array[object] | Paramètres de configuration du warm-up (uniquement pour campagnes classiques) |
| ab_test | object | Configuration du test A/B |
Exemple de réponse
Réponse-Succès
HttpStatus: 200
{
"result": {
"campaign_id": 34007,
"campaign_type": 1,
"name": "testddd",
"to":[{
"type": "list",
"value": ["all"]
}],
"from_email": "xjmfc23@legendnovel.com",
"from_name": "aaaa",
"template_invoke_name": "leon2_shanshan",
"reply_to": "",
"status": 2,
"google_track": null,
"create_time": "2022-09-27T16:36:32+0800",
"update_time": "2022-10-12T00:00:00+0800",
"run_time": "2022-09-27T16:41:23+0800",
"complete_time": "2022-10-12T00:00:00+0800",
"time_zone": "+8",
"warm_up": null,
"sender_id": 21,
"ab_test": {
"percent": 20,
"win_condition": {
"time_unit": "hour",
"after_time": 18,
"compare": "open_percent"
},
"template_invoke_names": []
}
}
Réponse-Erreur
{
"code": 30000,
"message": "Échec de l'authentification"
}

