iOS SDK API
Interfaces du SDK
- MTMAService : contient toutes les interfaces du SDK.
- MTMAConfig : classe de configuration de l’application.
- MTMAInitResult : classe du résultat d’initialisation du SDK.
- MTMAUserID : modèle des identifiants utilisateur.
- MTMAUserContact : modèle des coordonnées utilisateur.
- MTMACollectControl : modèle de contrôle de la collecte des données.
Démarrer les fonctionnalités MA
Versions prises en charge
Disponible depuis la version : 5.0.0
Identifiants email et phone disponibles depuis la version : 5.5.0
Initialisation autonome disponible depuis la version : 5.5.0
Définition de l’interface
- + (void)start:(MTMAConfig * )config;
- Description :
- Active les fonctionnalités EngageLab MA.
- start est le point d’entrée des autres interfaces et doit être appelé avant toute autre interface.
- La version autonome exige une MA AppKey. L’initialisation ne dépend pas du résultat de l’inscription AppPush.
- Vous pouvez répéter l’initialisation ou changer de MA AppKey dans le même processus de l’application, sans la redémarrer. Chaque appel valide s’exécute séparément et reçoit son propre callback ; les appels ne sont pas fusionnés.
start:etidentifyAccount:s’exécutent dans l’ordre des appels. L’appel suivant ne démarre qu’après la fin du précédent et de son callback. Modifier l’objet de configuration d’origine pendant l’attente ne modifie pas les paramètres d’initialisation déjà soumis.- Le changement de MA AppKey prend effet lorsque l’initialisation concernée commence à s’exécuter. Le projet courant et l’identité ne changent pas pendant l’attente dans la file.
- Chaque initialisation nécessite une connexion réseau pour confirmer l’identité utilisateur. Utilisez l’EUID renvoyé par le callback de l’appel courant. Si l’appareil est hors ligne, l’exécution reprend au rétablissement du réseau et les appels suivants attendent dans l’ordre. Pour les échecs, consultez Codes d’erreur.
- Paramètres
- config : classe de configuration.
- Description :
Exemple d’appel
MTMAConfig *config = [[MTMAConfig alloc] init];
config.appKey = @"votre MA AppKey";
config.resultCompletion = ^(MTMAInitResult *result) {
if (result.isSuccess) {
NSLog(@"Initialisation de MTMA réussie");
} else {
NSLog(@"Échec de l’initialisation de MTMA, code=%ld, message=%@", (long)result.code, result.message);
}
};
[MTMAService start:config];
Définir les coordonnées utilisateur
Versions prises en charge
Disponible depuis la version : 5.0.0
Définition de l’interface
- + (void)setUserContact:(MTMAUserContact * )contact;
- Description :
- Définit les coordonnées utilisateur.
- Paramètres
- contacts : définit plusieurs coordonnées ; email, mobile_phone, landline_phone et whatsapp_phone sont actuellement pris en charge. Chaque clé doit être une chaîne de 1 à 256 caractères. Chaque valeur doit être une chaîne ;
""efface la coordonnée concernée, tandis qu’une chaîne non vide composée uniquement d’espaces blancs est invalide.
- contacts : définit plusieurs coordonnées ; email, mobile_phone, landline_phone et whatsapp_phone sont actuellement pris en charge. Chaque clé doit être une chaîne de 1 à 256 caractères. Chaque valeur doit être une chaîne ;
- Description :
Exemple d’appel
MTMAUserContact *contact = [[MTMAUserContact alloc] init];
contact.contacts = @{@"mobile_phone":@"13*********"};
contact.completion = ^(NSInteger code, NSString * _Nonnull message) { };
[MTMAService setUserContact:contact];
Remonter des événements
Versions prises en charge
Disponible depuis la version : 5.0.0
Définition de l’interface
- **+ (void)eventRecord:(MTMAEventObject )event;*
- Description :
- Remonte un événement.
- Paramètres
- Modèle de remontée d’événement.
- eventName : nom de l’événement à remonter.
- property : propriétés de l’événement ; chaque clé est un nom de propriété et chaque valeur est la valeur correspondante.
- Description :
Exemple d’appel
MTMAEventObject *object = [[MTMAEventObject alloc] init];
object.eventName = @"sndefineevent2";
object.property = @{
@"key1":@"value1",
@"key2":@"value2",
};
[MTMAService eventRecord:object];
Définir les identifiants utilisateur
Versions prises en charge
Disponible depuis la version : 5.0.0
Identifiants email et phone disponibles depuis la version : 5.5.0
Définition de l’interface
- + (void)identifyAccount:(MTMAUserID * )userID;
- Description :
- Définit les identifiants utilisateur.
- Paramètres
- Modèle des identifiants utilisateur.
- userID : définissez ici l’identifiant unique de l’utilisateur connecté.
- anonymousID : si l’utilisateur n’est pas connecté mais fournit d’autres informations permettant de l’identifier, utilisez-les comme ID anonyme, par exemple une adresse e-mail ou un identifiant généré par un tiers.
- email : adresse e-mail de l’utilisateur servant à identifier celui-ci.
- phone : numéro de téléphone mobile de l’utilisateur, avec l’indicatif du pays ou de la région, par exemple +8613800000000.
- Fournissez au moins un identifiant valide ; tous les champs ne sont pas obligatoires. Pour plus de détails, consultez Types, longueurs et formats des identifiants.
- Description :
Exemple d’appel
MTMAUserID *userid = [[MTMAUserID alloc] init];
userid.userID = @"member_10001";
userid.anonymousID = @"anonymous_10001";
userid.email = @"member_10001@example.com";
userid.phone = @"+8613800000000";
userid.completion = ^(NSInteger code, NSString *message) {
NSLog(@"result:%ld - %@", code, message);
};
[MTMAService identifyAccount:userid];
email et phone servent ici à rapprocher les identités utilisateur et peuvent entraîner le retour d’un nouvel EUID. Ils ne sont pas interchangeables avec les coordonnées définies par setUserContact:.
Un callback avec code=0 signifie qu’un EUID utilisable a été obtenu, sans garantir que tous les identifiants ont été définis avec succès. Le JSON dans message contient les résultats locaux et serveur par champ, avec les clés user_id, anonymous_id, email et phone. Vérifiez le code de chaque champ concerné ; l’absence d’un champ ne signifie pas une réussite.
Si le serveur ne fournit pas de résultats par champ, message contient uniquement les rejets locaux ; s’il n’y en a aucun, il vaut success. Un message d’échec n’est pas nécessairement au format JSON. Pour les codes d’erreur par champ, consultez Résultats par identifiant.
Par exemple :
code=0
message={"email":{"code":0},"phone":{"code":3003,"msg":"La valeur de l’identifiant utilisateur dépasse la longueur maximale"}}
Définir les identifiants de contact du canal
Versions prises en charge
Disponible depuis la version : 5.5.0
Définition de l’interface
- **+ (void)setChannelValueWithChannelId:(NSInteger)channelId values:(NSArray<NSString *> )values completion:(void (^)(NSInteger code, NSString message))completion;
- Description :
- Définit le RID ou Token d’un canal Push tiers.
- Le SDK gère automatiquement l’association du canal EngageLab AppPush ; cette API n’est pas nécessaire pour AppPush.
- L’absence d’intégration AppPush ou l’échec de son inscription n’affecte pas les autres fonctionnalités MA.
- Lors d’appels successifs, le SDK envoie les requêtes dans l’ordre des appels et déclenche un callback distinct pour chaque résultat.
- Si la MA AppKey, le projet ou l’identité change pendant l’attente d’une requête dans la file, cette requête renvoie -2.
- Paramètres
- channelId : ID du canal Push tiers dans la console MA ; doit être supérieur à 0.
- values : tableau de RID ou Tokens du canal courant. Le SDK supprime les espaces blancs en début et en fin de chaque valeur avant l’envoi. Ni le tableau ni les éléments ainsi nettoyés ne doivent être vides.
- completion : callback du résultat de la requête ; code 0 indique la réussite.
- Description :
Exemple d’appel
[MTMAService setChannelValueWithChannelId:136
values:@[@"RID ou Token du service Push tiers"]
completion:^(NSInteger code, NSString *message) {
}];
Définir l’intervalle de remontée des données
Versions prises en charge
Disponible depuis la version : 5.0.0
Définition de l’interface
- + (void)setReportInterval:(NSInteger)interval;
- Description :
- Définit l’intervalle de remontée des données. Si cette API n’est pas appelée, les événements sont remontés toutes les 10 secondes par défaut.
- L’intervalle de remontée est conservé en mémoire. Appelez cette API à chaque cycle de vie de l’application pour appliquer le réglage.
- Paramètres
- interval : intervalle de remontée, en s (secondes).
- Description :
Exemple d’appel
[MTMAService setReportInterval:10];
Définir le nombre maximal d’événements en cache
Versions prises en charge
Disponible depuis la version : 5.0.0
Définition de l’interface
- + (void)setMaxEventCacheCount:(NSInteger)count;
- Description :
- Définit le nombre maximal d’événements en cache. La valeur par défaut est 50 et le maximum est 500.
- Toutes les données sont remontées lorsque la limite du cache est dépassée.
- Paramètres
- count : nombre maximal d’événements en cache.
- Description :
Exemple d’appel
[MTMAService setMaxEventCacheCount:50];
Définir le délai d’expiration de la session
Versions prises en charge
Disponible depuis la version : 5.0.0
Définition de l’interface
- + (void)setNoActiveSessionEndDurationTime:(NSInteger)interval;
- Description :
- Définit le délai d’expiration de la session. La valeur par défaut est 30 minutes.
- Lorsque l’application passe en arrière-plan, le compte à rebours d’expiration démarre. En l’absence d’activité pendant ce délai, la session courante prend fin.
- Paramètres
- interval : durée du délai, en s (secondes).
- Description :
Exemple d’appel
[MTMAService setNoActiveSessionEndDurationTime:50];
Obtenir l’EUID
Versions prises en charge
Disponible depuis la version : 5.0.0
Définition de l’interface
- + (nullable NSString * )EUID;
- Description :
- Obtient l’EUID EngageLab MA.
- Renvoie nil si le SDK n’a pas été initialisé avec succès.
- Description :
Exemple d’appel
[MTMAService EUID];
Définir les propriétés UTM
Versions prises en charge
Disponible depuis la version : 5.0.0
Définition de l’interface
- + (void)setUtmProperties:(NSDictionary * )property;
- Description :
- Les propriétés UTM sont des propriétés d’événement standard. Si vous pouvez identifier la publicité depuis laquelle l’utilisateur a accédé à l’application, il est recommandé de définir les informations UTM. Ces paramètres sont transmis lors de la remontée des événements. Les propriétés UTM prises en charge sont :
- utm_source : source de la campagne.
- utm_medium : support de la campagne.
- utm_term : mot-clé de la campagne.
- utm_content : contenu de la campagne.
- utm_campaign : nom de la campagne.
- utm_id : ID de la campagne.
- Les propriétés UTM sont des propriétés d’événement standard. Si vous pouvez identifier la publicité depuis laquelle l’utilisateur a accédé à l’application, il est recommandé de définir les informations UTM. Ces paramètres sont transmis lors de la remontée des événements. Les propriétés UTM prises en charge sont :
- Description :
Exemple d’appel
[MTMAService setUtmProperties:@{@"utm_source":@"value"}];
Définir les propriétés utilisateur
Définir et écraser les propriétés utilisateur
- + (void)setProperty:(NSDictionary * )userinfo completion:(void (^)(NSInteger code, NSString * message))completion;
- Description :
- Définit les propriétés utilisateur par lots de 100 au maximum. Si une propriété échoue à la validation du SDK, le lot entier n’est pas envoyé.
- Les noms de propriété doivent être des
NSString, commencer par une lettre minuscule, contenir uniquement des lettres minuscules, des chiffres et des traits de soulignement, et ne pas dépasser 50 octets UTF-8. Ils ne doivent pas commencer parel,engagelaboumetaverse. - Les valeurs prises en charge sont
NSString,NSNumberde valeur finie,NSSet/NSArrayde chaînes,NSDictionary(object) etNSArray<NSDictionary *>(object_array). - Les types ordinaires sont écrasés s’ils existent, ou créés sinon. object fusionne les sous-champs ; object_array remplace le tableau entier et conserve son ordre.
- Exemple d’appel :
- Description :
[MTMAService setProperty:@{
@"level": @"gold",
@"profile": @{ @"city": @"Singapore", @"score": @100 },
@"addresses": @[
@{ @"id": @"home", @"city": @"Singapore" },
@{ @"id": @"office", @"city": @"Tokyo" }
]
} completion:^(NSInteger code, NSString * _Nonnull message) {
// code == 0 indique que le traitement serveur a réussi
}];
- + (void)setProperty:(NSString * )key to:(id)value completion:(void (^)(NSInteger code, NSString * message))completion;
- Description :
- Définit la valeur d’une seule propriété utilisateur.
- Les noms de propriété, les types de valeur et les règles de mise à jour sont identiques à ceux de l’API par lots.
- Exemple d’appel :
- Description :
[MTMAService setProperty:@"profile"
to:@{ @"city": @"Singapore", @"score": @100 }
completion:^(NSInteger code, NSString * _Nonnull message) {
}];
Règles object / object_array
- object doit être un
NSDictionarynon vide. Les noms de sous-champ doivent être desNSStringnon vides et ne doivent contenir ni.ni$. - Les valeurs des sous-champs d’object prennent en charge
NSString,NSNumberde valeur finie,NSSet/NSArrayde chaînes etNSNull. Les valeurs object ou object_array imbriquées ne sont pas prises en charge. - Un nouvel appel à
setPropertypour un object fusionne uniquement les sous-champs transmis. Les sous-champs omis restent inchangés. La valeurNSNullsupprime le sous-champ concerné. - object_array doit être un
NSArray<NSDictionary *>. Chaque objet doit être non vide et respecter les mêmes règles de sous-champ. Un nouvel appel àsetPropertyremplace le tableau entier. - Chaque élément d’object_array doit conserver au moins un sous-champ dont la valeur n’est pas
NSNull. Les objets dont tous les sous-champs valentNSNullsont interdits. - Un tableau vide peut vider une propriété de tableau existante. À la première création, un tableau vide seul ne permet pas de distinguer une liste de chaînes d’un object_array. Utilisez un tableau d’objets non vide pour créer un object_array.
NSNullest autorisé uniquement comme valeur de sous-champ dans object/object_array. UnNSNullau niveau supérieur ne peut pas supprimer une propriété entière ; utilisezdeleteProperty:completion:pour la supprimer.
Exemples de mise à jour partielle d’un object et de suppression d’un sous-champ :
// Mettre à jour uniquement profile.score ; profile.city reste inchangé
[MTMAService setProperty:@"profile"
to:@{ @"score": @200 }
completion:completion];
// Supprimer uniquement profile.city
[MTMAService setProperty:@"profile"
to:@{ @"city": NSNull.null }
completion:completion];
Mettre à jour partiellement un élément object_array
Disponible depuis la version : 5.5.0
- **+ (void)updateObjectArrayProperty:(NSString *)key identifierKey:(NSString )identifierKey identifierValue:(id)identifierValue values:(NSDictionary<NSString *, id> )values completion:(void (^)(NSInteger code, NSString * message))completion;
- Description :
- Recherche un objet dans un object_array au moyen d’un sous-champ unique, puis fusionne les sous-champs de
values. - Le sous-champ désigné par
identifierKeydoit déjà être défini dans les métadonnées serveur, avec le type string ou number.identifierValuedoit être unNSStringou unNSNumberfini non booléen de type correspondant, et ne doit correspondre qu’à un seul élément du tableau courant. valuesdoit être un dictionnaire non vide, sansidentifierKeyni valeurs object/object_array imbriquées. Les champs omis restent inchangés ;NSNullsupprime le sous-champ concerné.- La propriété doit déjà être définie comme object_array dans les métadonnées serveur et posséder une valeur pour l’utilisateur courant. Pour la créer initialement, transmettez un tableau d’objets non vide à
setProperty:to:. - Si la propriété n’est pas définie, ou si elle est définie sans valeur pour l’utilisateur courant, le serveur renvoie
code=0sans modification.code=0indique uniquement que la requête a été traitée avec succès ; vérifiez la console MA ou les propriétés utilisateur côté serveur pour confirmer les modifications effectives. - Si le tableau existe mais qu’il n’y a aucune correspondance, qu’il y en a plusieurs, que le type du champ identifiant diffère ou qu’un sous-champ ne respecte pas sa définition dans les métadonnées, le serveur renvoie un code d’échec. Aucun autre élément n’est créé ni modifié.
- Recherche un objet dans un object_array au moyen d’un sous-champ unique, puis fusionne les sous-champs de
- Exemple d’appel :
- Description :
// Pour l’objet dont id == home, définir city sur Tokyo et supprimer zip
[MTMAService updateObjectArrayProperty:@"addresses"
identifierKey:@"id"
identifierValue:@"home"
values:@{
@"city": @"Tokyo",
@"zip": NSNull.null
}
completion:^(NSInteger code,
NSString *message) {
}];
Ajouter un élément object_array
Disponible depuis la version : 5.5.0
- **+ (void)addObjectArrayProperty:(NSString )key object:(NSDictionary<NSString *, id> )object completion:(void (^)(NSInteger code, NSString * message))completion;
- Description :
- Ajoute un objet à la fin d’un object_array sans affecter les éléments existants. À l’inverse, transmettre un tableau entier à
setProperty:to:remplace tout le tableau. objectdoit être unNSDictionarynon vide conservant au moins un sous-champ dont la valeur n’est pasNSNull. Les règles de sous-champ sont les mêmes que pour object ; les valeurs object/object_array imbriquées ne sont pas prises en charge.- La propriété doit déjà être définie comme object_array dans les métadonnées serveur. Sinon, le serveur renvoie
code=0sans modification. Créez-la d’abord en transmettant un tableau d’objets non vide àsetProperty:to:. - Si la propriété est définie mais n’a pas de valeur pour l’utilisateur courant, cette API crée un tableau contenant cet unique élément.
- Ajoute un objet à la fin d’un object_array sans affecter les éléments existants. À l’inverse, transmettre un tableau entier à
- Exemple d’appel :
- Description :
[MTMAService addObjectArrayProperty:@"addresses"
object:@{
@"id": @"school",
@"city": @"Osaka"
}
completion:^(NSInteger code,
NSString *message) {
}];
Supprimer un élément object_array
Disponible depuis la version : 5.5.0
- **+ (void)removeObjectArrayProperty:(NSString )key identifierKey:(NSString )identifierKey identifierValue:(id)identifierValue completion:(void (^)(NSInteger code, NSString * message))completion;
- Description :
- Recherche et supprime un élément entier du tableau au moyen d’un sous-champ unique. Pour supprimer uniquement un sous-champ d’un élément, transmettez
NSNullpour ce sous-champ àupdateObjectArrayProperty:. - Les contraintes de
identifierKey/identifierValuesont identiques à celles deupdateObjectArrayProperty:: le sous-champ doit déjà être défini dans les métadonnées, être de type string ou number et correspondre à un seul élément du tableau courant. - Si la propriété n’est pas définie côté serveur, si l’utilisateur courant n’a pas de valeur pour elle ou si aucun élément ne correspond, le serveur ignore la requête et renvoie
code=0. Confirmez les modifications effectives dans la console MA ou les propriétés utilisateur côté serveur. - Si plusieurs éléments correspondent ou si le type du champ identifiant diffère, le serveur renvoie un code d’échec sans supprimer d’autres éléments.
- Recherche et supprime un élément entier du tableau au moyen d’un sous-champ unique. Pour supprimer uniquement un sous-champ d’un élément, transmettez
- Exemple d’appel :
- Description :
// Supprimer l’adresse dont id == office
[MTMAService removeObjectArrayProperty:@"addresses"
identifierKey:@"id"
identifierValue:@"office"
completion:^(NSInteger code,
NSString *message) {
}];
Incrémenter les propriétés utilisateur
- **+ (void)increaseProperty:(NSString )key by:(NSNumber )amount completion:(void (^)(NSInteger code, NSString * message))completion;
- Description :
- Ajoute une valeur à une propriété utilisateur numérique en cumulant les valeurs remontées, par exemple le montant total des dépenses.
- Cette API s’applique uniquement aux propriétés utilisateur de type NSNumber ; sinon, elle est ignorée. Si la propriété n’existe pas, sa valeur initiale est considérée comme 0.
- Exemple d’appel :
- Description :
[MTMAService increaseProperty:@"key" by:@(2) completion:^(NSInteger code, NSString * _Nonnull message) {
}];
- **+ (void)increaseProperty:(NSDictionary )userinfo completion:(void (^)(NSInteger code, NSString * message))completion;*
- Description :
- Ajoute des valeurs à plusieurs propriétés utilisateur numériques en cumulant les valeurs remontées, par exemple le montant total des dépenses.
- Cette API s’applique uniquement aux propriétés utilisateur de type NSNumber ; sinon, elle est ignorée. Si la propriété n’existe pas, sa valeur initiale est considérée comme 0.
- Exemple d’appel :
- Description :
[MTMAService increaseProperty:@{@"key1":@(5),@"key2":@(3)} completion:^(NSInteger code, NSString * _Nonnull message) {
}];
Ajouter des valeurs aux propriétés utilisateur
- **+ (void)addProperty:(NSString )key by:(NSObject
)content completion:(void (^)(NSInteger code, NSString * message))completion - Description :
- Ajoute des valeurs à une propriété de type NSSet ou NSArray.
- Comme indiqué précédemment, les éléments du NSSet ou NSArray doivent être des NSString ; sinon, l’opération est ignorée. Si la propriété n’existe pas encore, un NSSet ou NSArray vide est initialisé.
- Exemple d’appel :
- Description :
[MTMAService addProperty:@"key" by:@[@"value"] completion:^(NSInteger code, NSString * _Nonnull message) {
}];
- **+ (void)addProperty:(NSDictionary )userinfo completion:(void (^)(NSInteger, NSString * _Nonnull))completion;*
- Description :
- Ajoute des valeurs à plusieurs propriétés de type NSSet ou NSArray.
- Comme indiqué précédemment, les éléments du NSSet ou NSArray doivent être des NSString ; sinon, l’opération est ignorée. Si la propriété n’existe pas encore, un NSSet ou NSArray vide est initialisé.
- Exemple d’appel :
- Description :
[MTMAService addProperty:@{@"key1":@[@"value"],@"key2":@[@"value"]} completion:^(NSInteger code, NSString * _Nonnull message) {
}];
Retirer des valeurs des propriétés utilisateur
- **+ (void)removeProperty:(NSString * )key by:(NSObject
)content completion:(void (^)(NSInteger code, NSString * message))completion;* - Description :
- Retire des valeurs d’une propriété de type NSSet ou NSArray.
- content doit être un NSSet ou NSArray dont les éléments sont des NSString.
- Exemple d’appel :
- Description :
[MTMAService removeProperty:@"key" by:@[@"value"] completion:^(NSInteger code, NSString * _Nonnull message) {
}];
Supprimer les propriétés utilisateur
Versions prises en charge
Disponible depuis la version : 5.0.0
Définition de l’interface
- + (void)deleteProperty:(NSString * )key completion:(void (^)(NSInteger code, NSString * message))completion;
- Description :
- Supprime tout le contenu d’une propriété utilisateur, qu’elle soit de type ordinaire, object ou object_array.
- Si la propriété utilisateur n’existe pas, l’opération est ignorée.
- Description :
Exemple d’appel
[MTMAService deleteProperty:@"key" completion:^(NSInteger code, NSString * _Nonnull message) {
}];
Contrôler la collecte des données
Versions prises en charge
Disponible depuis la version : 5.0.0
Définition de l’interface
- **+ (void)setCollectControl:(MTMACollectControl )control;*
- Description :
- Contrôle la collecte des éléments de données de MTMACollectControl.
- Description :
Exemple d’appel
MTMACollectControl *collectControl = [[MTMACollectControl alloc] init];
collectControl.idfa = YES;
collectControl.idfv = YES;
collectControl.carrier = YES;
[MTMAService setCollectControl:collectControl];
Classe MTMAConfig
Classe de configuration de l’application. Ses propriétés sont décrites ci-dessous :
| Paramètre | Type | Description |
|---|---|---|
| appKey | NSString | MA AppKey ; obligatoire pour la version autonome, doit comporter exactement 24 lettres ou chiffres et est indépendante de la Push AppKey |
| userID | MTMAUserID | Modèle des identifiants utilisateur ; s’il est défini, les identifiants sont soumis à l’initialisation |
| resultCompletion | ^(MTMAInitResult *result) | Callback asynchrone sur le thread principal ; renvoie MTMAInitResult et a priorité sur completion |
| completion | (^)(NSInteger code, NSString * message) | Ancien callback du résultat d’initialisation ; obsolète, utilisez resultCompletion |
Classe MTMAInitResult
Objet du résultat d’initialisation du SDK renvoyé par resultCompletion. Il n’est pas nécessaire de le créer ou de l’appeler séparément. Ses propriétés sont décrites ci-dessous :
| Paramètre | Type | Description |
|---|---|---|
| code | NSInteger | Code du résultat d’initialisation, réservé au diagnostic ; évitez de conditionner la logique applicative à des codes métier serveur précis |
| message | NSString | Description du résultat d’initialisation ; à fournir avec code au support technique en cas d’échec inattendu |
| EUID | NSString | EUID MA après une initialisation réussie ; nil en cas d’échec |
| maRID | NSString | MA Registration ID après une initialisation réussie ; nil en cas d’échec |
| success | BOOL | Indique si l’initialisation a réussi ; utilisez isSuccess pour obtenir et évaluer ce résultat |
Classe MTMAUserID
Modèle des identifiants utilisateur. Transmettez-le via MTMAConfig.userID à l’initialisation ou via identifyAccount: pendant l’exécution.
Les quatre identifiants sont facultatifs. Les espaces en début et en fin sont supprimés ; les valeurs vides et 0/null/undefined/nan (sans distinction de casse) sont considérées comme omises. Elles ne participent pas au rapprochement et ne produisent aucun résultat par champ. Les contraintes suivantes s’appliquent aux valeurs conservées après ce nettoyage :
| Paramètre | Type | Description |
|---|---|---|
| userID | NSString | 255 caractères Unicode au maximum ; les valeurs vides et réservées suivent les règles communes ci-dessus |
| anonymousID | NSString | 256 caractères Unicode au maximum ; les valeurs vides et réservées suivent les règles communes ci-dessus |
| NSString | Non vide après suppression des espaces en début et en fin ; 256 caractères Unicode au maximum ; doit correspondre à \A[^@\s]+@[^@\s]+\z |
|
| phone | NSString | Doit correspondre au format E.164 \A\+[1-9]\d{1,14}\z |
| completion | (^)(NSInteger code, NSString * message) | Callback asynchrone sur le thread principal ; renvoie le résultat d’initialisation pendant celle-ci, ou le résultat du traitement d’identité d’identifyAccount: pendant l’exécution |
Les champs qui ne sont pas des NSString ou dont le format est invalide sont exclus avec 3013 ; les champs trop longs sont exclus avec 3003. Ces résultats sont enregistrés et les autres champs valides restent soumis. S’il ne reste aucun champ valide, l’initialisation se poursuit sans identifiants, tandis qu’identifyAccount: renvoie -3 sans envoyer de requête. Le SDK ne modifie pas l’objet de l’appelant ; email est converti en minuscules par le serveur.
Lorsque l’initialisation réussit, userID.completion renvoie code=0. message est une chaîne vide ou un JSON contenant uniquement les champs rejetés localement ; il n’inclut pas les résultats serveur par champ et ne permet pas de conclure que tous les identifiants sont associés. Le résultat d’initialisation du SDK faisant foi est config.resultCompletion ; ce callback ne contient pas de JSON par identifiant. Pour les callbacks pendant l’exécution, consultez Définir les identifiants utilisateur.
Classe MTMACollectControl
Modèle de contrôle de la collecte des données utilisateur. Ses propriétés sont décrites ci-dessous :
| Paramètre | Type | Description |
|---|---|---|
| idfa | BOOL | Indique si les informations idfa sont collectées. NO désactive la collecte. Valeur par défaut : NO |
| idfv | BOOL | Indique si les informations idfv sont collectées. NO désactive la collecte. Valeur par défaut : NO |
| carrier | BOOL | Indique si les informations de l’opérateur sont collectées. NO désactive la collecte. Valeur par défaut : YES |
Classe MTMAUserContact
Modèle des canaux utilisateur. Ses propriétés sont décrites ci-dessous.
Une valeur omise ou définie sur nil reste inchangée. La chaîne vide "" efface la coordonnée concernée. Une chaîne non vide composée uniquement d’espaces blancs est invalide.
| Paramètre | Type | Description |
|---|---|---|
| contacts | NSDictionary | Dictionnaire des coordonnées prenant en charge 4 types de coordonnées : email, mobile_phone, landline_phone et whatsapp_phone |
| completion | (^)(NSInteger code, NSString * message) | Callback du résultat de la requête ; code:0 indique la réussite |
Classe MTMAEventObject
Classe des objets d’événement personnalisés. Ses propriétés sont décrites ci-dessous :
| Paramètre | Type | Description |
|---|---|---|
| eventName | NSString | ID d’événement obligatoire et non vide. Doit commencer par une lettre minuscule, contenir uniquement des lettres minuscules, des chiffres et des traits de soulignement, et ne pas dépasser 50 octets UTF-8. Ne doit pas commencer par el, engagelab ou metaverse |
| property | NSDictionary<NSString *, id> | Propriétés personnalisées (100 au maximum). Chaque clé est une NSString suivant les mêmes règles de nommage qu’eventName ; chaque valeur peut être NSString, NSNumber ou NSSet/NSArray contenant des éléments NSString |










