iOS SDK API

Interfaces du SDK

  1. MTMAService : contient toutes les interfaces du SDK.
  2. MTMAConfig : classe de configuration de l’application.
  3. MTMAInitResult : classe du résultat d’initialisation du SDK.
  4. MTMAUserID : modèle des identifiants utilisateur.
  5. MTMAUserContact : modèle des coordonnées utilisateur.
  6. 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: et identifyAccount: 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.

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];
              
                  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];

            
Afficher ce bloc de code dans la fenêtre flottante

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.

Exemple d’appel

MTMAUserContact *contact = [[MTMAUserContact alloc] init]; contact.contacts = @{@"mobile_phone":@"13*********"}; contact.completion = ^(NSInteger code, NSString * _Nonnull message) { }; [MTMAService setUserContact:contact];
              
                  MTMAUserContact *contact = [[MTMAUserContact alloc] init];
    contact.contacts = @{@"mobile_phone":@"13*********"};
    contact.completion = ^(NSInteger code, NSString * _Nonnull message) { };
    [MTMAService setUserContact:contact];

            
Afficher ce bloc de code dans la fenêtre flottante

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.

Exemple d’appel

MTMAEventObject *object = [[MTMAEventObject alloc] init]; object.eventName = @"sndefineevent2"; object.property = @{ @"key1":@"value1", @"key2":@"value2", }; [MTMAService eventRecord:object];
              
                  MTMAEventObject *object = [[MTMAEventObject alloc] init];
    object.eventName = @"sndefineevent2";
    object.property = @{
        @"key1":@"value1",
        @"key2":@"value2",
    };
    [MTMAService eventRecord:object];

            
Afficher ce bloc de code dans la fenêtre flottante

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.

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];
              
                  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];

            
Afficher ce bloc de code dans la fenêtre flottante

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"}}
              
              code=0
message={"email":{"code":0},"phone":{"code":3003,"msg":"La valeur de l’identifiant utilisateur dépasse la longueur maximale"}}

            
Afficher ce bloc de code dans la fenêtre flottante

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.

Exemple d’appel

[MTMAService setChannelValueWithChannelId:136 values:@[@"RID ou Token du service Push tiers"] completion:^(NSInteger code, NSString *message) { }];
              
                  [MTMAService setChannelValueWithChannelId:136
                                       values:@[@"RID ou Token du service Push tiers"]
                                   completion:^(NSInteger code, NSString *message) {
    }];

            
Afficher ce bloc de code dans la fenêtre flottante

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).

Exemple d’appel

[MTMAService setReportInterval:10];
              
                  [MTMAService setReportInterval:10];

            
Afficher ce bloc de code dans la fenêtre flottante

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.

Exemple d’appel

[MTMAService setMaxEventCacheCount:50];
              
                  [MTMAService setMaxEventCacheCount:50];

            
Afficher ce bloc de code dans la fenêtre flottante

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).

Exemple d’appel

[MTMAService setNoActiveSessionEndDurationTime:50];
              
                  [MTMAService setNoActiveSessionEndDurationTime:50];

            
Afficher ce bloc de code dans la fenêtre flottante

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.

Exemple d’appel

[MTMAService EUID];
              
                  [MTMAService EUID];

            
Afficher ce bloc de code dans la fenêtre flottante

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.

Exemple d’appel

[MTMAService setUtmProperties:@{@"utm_source":@"value"}];
              
                  [MTMAService setUtmProperties:@{@"utm_source":@"value"}];

            
Afficher ce bloc de code dans la fenêtre flottante

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 par el, engagelab ou metaverse.
      • Les valeurs prises en charge sont NSString, NSNumber de valeur finie, NSSet/NSArray de chaînes, NSDictionary (object) et NSArray<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 :
[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 }];
              
                 [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
   }];

            
Afficher ce bloc de code dans la fenêtre flottante
  • + (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 :
[MTMAService setProperty:@"profile" to:@{ @"city": @"Singapore", @"score": @100 } completion:^(NSInteger code, NSString * _Nonnull message) { }];
              
                 [MTMAService setProperty:@"profile"
                         to:@{ @"city": @"Singapore", @"score": @100 }
                 completion:^(NSInteger code, NSString * _Nonnull message) {
   }];

            
Afficher ce bloc de code dans la fenêtre flottante

Règles object / object_array

  • object doit être un NSDictionary non vide. Les noms de sous-champ doivent être des NSString non vides et ne doivent contenir ni . ni $.
  • Les valeurs des sous-champs d’object prennent en charge NSString, NSNumber de valeur finie, NSSet/NSArray de chaînes et NSNull. Les valeurs object ou object_array imbriquées ne sont pas prises en charge.
  • Un nouvel appel à setProperty pour un object fusionne uniquement les sous-champs transmis. Les sous-champs omis restent inchangés. La valeur NSNull supprime 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 à setProperty remplace 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 valent NSNull sont 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.
  • NSNull est autorisé uniquement comme valeur de sous-champ dans object/object_array. Un NSNull au niveau supérieur ne peut pas supprimer une propriété entière ; utilisez deleteProperty: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 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];

            
Afficher ce bloc de code dans la fenêtre flottante

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 identifierKey doit déjà être défini dans les métadonnées serveur, avec le type string ou number. identifierValue doit être un NSString ou un NSNumber fini non booléen de type correspondant, et ne doit correspondre qu’à un seul élément du tableau courant.
      • values doit être un dictionnaire non vide, sans identifierKey ni valeurs object/object_array imbriquées. Les champs omis restent inchangés ; NSNull supprime 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=0 sans modification. code=0 indique 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é.
    • Exemple d’appel :
// 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) { }];
              
              // 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) {
}];

            
Afficher ce bloc de code dans la fenêtre flottante

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.
      • object doit être un NSDictionary non vide conservant au moins un sous-champ dont la valeur n’est pas NSNull. 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=0 sans 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.
    • Exemple d’appel :
[MTMAService addObjectArrayProperty:@"addresses" object:@{ @"id": @"school", @"city": @"Osaka" } completion:^(NSInteger code, NSString *message) { }];
              
              [MTMAService addObjectArrayProperty:@"addresses"
                                object:@{
                                    @"id": @"school",
                                    @"city": @"Osaka"
                                }
                            completion:^(NSInteger code,
                                         NSString *message) {
}];

            
Afficher ce bloc de code dans la fenêtre flottante

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 NSNull pour ce sous-champ à updateObjectArrayProperty:.
      • Les contraintes de identifierKey / identifierValue sont identiques à celles de updateObjectArrayProperty: : 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.
    • Exemple d’appel :
// Supprimer l’adresse dont id == office [MTMAService removeObjectArrayProperty:@"addresses" identifierKey:@"id" identifierValue:@"office" completion:^(NSInteger code, NSString *message) { }];
              
              // Supprimer l’adresse dont id == office
[MTMAService removeObjectArrayProperty:@"addresses"
                         identifierKey:@"id"
                       identifierValue:@"office"
                            completion:^(NSInteger code,
                                         NSString *message) {
}];

            
Afficher ce bloc de code dans la fenêtre flottante

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 :
[MTMAService increaseProperty:@"key" by:@(2) completion:^(NSInteger code, NSString * _Nonnull message) { }];
              
                  [MTMAService increaseProperty:@"key" by:@(2) completion:^(NSInteger code, NSString * _Nonnull message) {

    }];

            
Afficher ce bloc de code dans la fenêtre flottante
  • **+ (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 :
[MTMAService increaseProperty:@{@"key1":@(5),@"key2":@(3)} completion:^(NSInteger code, NSString * _Nonnull message) { }];
              
                  [MTMAService increaseProperty:@{@"key1":@(5),@"key2":@(3)} completion:^(NSInteger code, NSString * _Nonnull message) {

    }];

            
Afficher ce bloc de code dans la fenêtre flottante

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 :
[MTMAService addProperty:@"key" by:@[@"value"] completion:^(NSInteger code, NSString * _Nonnull message) { }];
              
                  [MTMAService addProperty:@"key" by:@[@"value"] completion:^(NSInteger code, NSString * _Nonnull message) {

    }];

            
Afficher ce bloc de code dans la fenêtre flottante
  • **+ (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 :
[MTMAService addProperty:@{@"key1":@[@"value"],@"key2":@[@"value"]} completion:^(NSInteger code, NSString * _Nonnull message) { }];
              
                  [MTMAService addProperty:@{@"key1":@[@"value"],@"key2":@[@"value"]} completion:^(NSInteger code, NSString * _Nonnull message) {

    }];

            
Afficher ce bloc de code dans la fenêtre flottante

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 :
[MTMAService removeProperty:@"key" by:@[@"value"] completion:^(NSInteger code, NSString * _Nonnull message) { }];
              
                  [MTMAService removeProperty:@"key" by:@[@"value"] completion:^(NSInteger code, NSString * _Nonnull message) {

    }];

            
Afficher ce bloc de code dans la fenêtre flottante

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.

Exemple d’appel

[MTMAService deleteProperty:@"key" completion:^(NSInteger code, NSString * _Nonnull message) { }];
              
                  [MTMAService deleteProperty:@"key" completion:^(NSInteger code, NSString * _Nonnull message) {

    }];

            
Afficher ce bloc de code dans la fenêtre flottante

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.

Exemple d’appel

MTMACollectControl *collectControl = [[MTMACollectControl alloc] init]; collectControl.idfa = YES; collectControl.idfv = YES; collectControl.carrier = YES; [MTMAService setCollectControl:collectControl];
              
                  MTMACollectControl *collectControl = [[MTMACollectControl alloc] init];
    collectControl.idfa = YES;
    collectControl.idfv = YES;
    collectControl.carrier = YES;
    [MTMAService setCollectControl:collectControl];

            
Afficher ce bloc de code dans la fenêtre flottante

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
email 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
Icon Solid Transparent White Qiyu
Contactez-nous