Aller au contenu principal

Création d'une cible simple

Cible Mindbaz

Une cible simple vous permet de cibler les abonnés de votre BDD MINDBAZ. Vous pouvez les utiliser pour envoyer un test bat, une campagne ou définir un export. Une cible est composée de plusieurs critères appelés “filtre”.

Il existe plusieurs types de filtre:

  • les filtres déclaratifs (ex > code postal, adresse, type d’optin, webmail, etc),
  • les filtres comportementaux (ex > a ouvert / cliqué sur une campagne),
  • les filtres de géolocalisation
  • les filtres par fichier (sélectionne les emails présents dans un fichier)
  • etc.

Une cible doit d’abord être créée avec l’api Targets et ensuite on vient lui assigner des filtres avec l’api targetFilters.

cibles combinées

Dans l'interface, il est possible de créer également des cibles combinées. Ce type de cible combine plusieurs cibles en faisant un union, une intersection ou une soustraction entre elles. L'api targets ne permet pas à ce jour de créer ce type de cible.

Création d'une cible simple

Tout d’abord, créons notre première cible en appelant POST api/{idsite}/Targets.

Les paramètres à spécifier dans l'url sont les suivants:

NomDescriptionTypeInformations complémentaires
idsiteIdentifiant de site MindBazNombre entierObligatoire

Dans le corps de la requête, les paramètres à passer sous la forme "application/json, text/json" sont les suivants:

NomDescriptionTypeInformations complémentaires
nameNom de la cible (255 carac max)Chaine de caractèresObligatoire
isTestTargettrue s'il s'agit d'une cible pour BATBooléenAucune
pctSelectPourcentage de la cible à selectionner (100 par defaut).Nombre entierAucune
maxSelectNombre maximum d’emails à sélectionner par la cible (si défini, maxSelect remplace pctSelect).Nombre entierAucune
isRandomModeTrue pour activer le mode aléatoire (utile avec un pourcentage inférieur à 100). Attention: Il ne faut exclure une cible qui est en mode aléatoire car la population excluse sera différente à chaque calcul.BooléenAucune
excludedTargetsListe des id de cible à exclure de la cible.Collection de Nombre entierAucune
isAutomationtrue s'il s'agit d'une cible AutomationBooléenDeprecated

Exemple

Voici un exemple pour créer une cible qui sélectionne au hasard 10 emails après avoir exclu le resultat des cibles id 1 et 2.

[
{
"name": "sample string 1",
"isTestTarget": false,
"maxSelect": 10,
"isRandomMode": true,
"excludedTargets": [
1,
2
]
}
]

En retour d'appel j'obtiens les informations de la cible nouvellement créée:

{
"success": true,
"data": {
"id": 183813,
"parameters": {
"name": "sample string 1",
"isTestTarget": false,
"pctSelect": 100,
"maxSelect": 10,
"isRandomMode": true,
"excludedTargets": [1,2],
"isAutomation": false
},
"creationDate": "2021-08-25T11:29:41.961503+02:00",
"lastUpdateDate": "2021-08-25T11:29:41.961503+02:00",
"targetType": 1,
"hasFieldFilter": false,
"hasGeolocFilter": false,
"hasSqlFilter": false,
"hasEmailPressureFilter": false,
"hasBehaviourFilter": false,
"hasReactivityFilter": false,
"hasSendingFilter": false,
"hasFileFilter": false,
"hasThematicFilter": false
},
"error": null,
"typeName": "Target"
}

Codeline d'une cible simple

string token = ""; //Valeur du token récupéré pour l'authentification
string idSite = ""; //Valeur de l'identifiant du site
var client = new RestClient("https://api.mindbaz.com/api/" + idSite + "/targets/");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "Bearer " + token);
request.AddHeader("Content-Type", "application/json");
var body = @"{""name"": ""sample string 1"",""isTestTarget"": false,""maxSelect"": 10,""isRandomMode"": true,""excludedTargets"": [1,2]}";
request.AddParameter("application/json", body, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);

A ce moment, nous avons créé une cible mais aucun filtre n'est défini. A ce stade, la cible n’est pas encore utilisable et ne peut pas apparaître dans le gestionnaire de cibles dans l’interface. Pour que la cible soit valide, il faut qu’elle possède au moins un filtre.

Création d'un filtre

Notre cible a besoin d'au moins un filtre pour fonctionner. Pour en créer un, vous pouvez utiliser l'appel correspondant au type de filtre souhaité:

attention

Ue cible simple ne peut avoir qu’un seul filtre de chaque type.

Filtre par champs

Pour l'exemple, nous allons créer un filtre par champ.

Les paramètres à spécifier dans l'url sont les suivants:

NomDescriptionTypeInformations complémentaires
idsiteIdentifiant de site MindBazNombre entierObligatoire

Dans le corps de la requête, les paramètres à passer sous la forme "application/json, text/json" sont les suivants:

NomDescriptionTypeInformations complémentaires
idTargetidentifiant de la cibleNombre entierObligatoire
isEnabledtrue si le filtre est activéBooléenAucune
filtersListe des filtres par champ (opérations) à appliquer sur chaque champ. Attention, un champ idField ne peut avoir plus d’un filtre à la fois!Collection de FieldFilterAucune

Le type FieldFilter est une collection de champs représentant comme suit:

NomDescriptionTypeInformations complémentaires
idFieldIdentifiant du champ (0 = id, 1 =email...).
La liste des champs est récupérable ici.
Cliquez ici pour plus d’informations.
Nombre entierObligatoire
operatorOpérateur à utiliserEOperatorObligatoire
valueValeur du champ à utiliser avec l'opérateur.
Pour le type Date, il faut utiliser le format dd/MM/yyyy
Pour le type List, il faut utiliser l’id correspondant à la valeur souhaitée. Par exemple, pour faire “état de l’abonné” = “abonné”. Il faut utiliser { idField=7, operator=3,value=0}
ObjectObligatoire. Nb de carac max = 8000

Le type EOperator est de type Enum:

  1. "HasValue"
  2. "NoValue"
  3. "Equals"
  4. "DifferentThan"
  5. "LessThan" (pour type Nombre et Date uniquement)
  6. "MoreThan" (pour type Nombre et Date uniquement)
  7. "Between" (pour type Nombre et Date uniquement)
  8. "DatePast" (pour type Date uniquement)
  9. "DateFuture" (pour type Date uniquement)
  10. "NbDaysMoreThan" (pour type Date uniquement)
  11. "NbDaysLessThan" (pour type Date uniquement)
  12. "AgeGreaterThan" (pour type Date uniquement)
  13. "AgeLesserThan" (pour type Date uniquement)
  14. "AgeBetween" (pour type Date uniquement)
info

Pour les opérateurs “Equals" et "DifferentThan", vous pouvez combiner plusieurs valeurs en les séparant d’un “;”. Un OU logique sera appliqué entre les valeurs.

Vous pouvez par exemple créer une cible bat avec un filtre par champ sur l’email en passant plusieurs emails séparés par des “;”. La longueur du champ étant limitée, si vous avez beaucoup de valeurs à inclure, il faudra mieux utiliser un filtre par fichier.

Exemple

Nous allons ajouter adresse email renseigné et état de l'abonné égal à désabonné

{
"idTarget": 183813,
"isEnabled": true,
"filters": [
{
"idField": 1,
"operator": 1
},
{
"idField": 7,
"operator": 3,
"value": "1"
}]
}

Le code de retour est le suivant:

{
"success": true,
"data": true,
"error": null,
"typeName": "Boolean"
}

Codeline d'un filtre par champ

string token = ""; //Valeur du token récupéré pour l'authentification
string idSite = ""; //Valeur de l'identifiant du site
var client = new RestClient("https://api.mindbaz.com/api/" + idSite + "/targetfilters/field");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "Bearer " + token);
request.AddHeader("Content-Type", "application/json");
var body = @"{""idTarget"": 183813,""isEnabled"": true,""filters"": [{""idField"": 1,""operator"": 1},{""idField"": 7,""operator"": 3,""value"": ""1""}]}";
request.AddParameter("application/json", body, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);