API del SDK de iOS

Descripción de las interfaces del SDK

  1. MTMAService: contiene todas las interfaces del SDK.
  2. MTMAConfig: clase de configuración de la aplicación.
  3. MTMAInitResult: clase del resultado de inicialización del SDK.
  4. MTMAUserID: modelo de identificadores de usuario.
  5. MTMAUserContact: modelo de información de contacto del usuario.
  6. MTMACollectControl: modelo de control de recopilación de datos.

Iniciar la función MA

Versiones compatibles

Disponible a partir de la versión: 5.0.0

Identificadores email y phone disponibles a partir de la versión: 5.5.0

Inicialización independiente disponible a partir de la versión: 5.5.0

Definición de la interfaz

  • + (void)start:(MTMAConfig * )config;
    • Descripción de la interfaz:
      • Habilita la función MA de EngageLab.
      • start es el punto de entrada de las demás interfaces. Debe llamarlo antes de utilizar cualquier otra interfaz.
      • La versión independiente requiere una MA AppKey. La inicialización no depende del resultado del registro de AppPush.
      • Puede repetir la inicialización o cambiar la MA AppKey en el mismo proceso de la aplicación sin reiniciarla. Cada llamada válida se ejecuta y recibe un callback por separado; las llamadas no se combinan.
      • start: e identifyAccount: se ejecutan en el orden de llamada. La siguiente llamada solo se ejecuta cuando finalizan la anterior y su callback. Modificar el objeto de configuración original mientras una llamada está en cola no afecta a los parámetros de inicialización ya enviados.
      • El cambio de MA AppKey entra en vigor cuando comienza a ejecutarse esa inicialización; el proyecto y la identidad actuales no cambian mientras está en cola.
      • Cada inicialización requiere conexión para confirmar la identidad del usuario; utilice el EUID del callback de esa llamada. Si el dispositivo está sin conexión, se espera a que se restablezca la red, y las llamadas posteriores esperan en orden. Consulte los fallos en Códigos de error.
    • Parámetros
      • config: clase de configuración

Ejemplo de llamada

MTMAConfig *config = [[MTMAConfig alloc] init]; config.appKey = @"Su MA AppKey"; config.resultCompletion = ^(MTMAInitResult *result) { if (result.isSuccess) { NSLog(@"MTMA se ha inicializado correctamente"); } else { NSLog(@"Error al inicializar MTMA, code=%ld, message=%@", (long)result.code, result.message); } }; [MTMAService start:config];
              
                  MTMAConfig *config = [[MTMAConfig alloc] init];
    config.appKey = @"Su MA AppKey";
    config.resultCompletion = ^(MTMAInitResult *result) {
        if (result.isSuccess) {
            NSLog(@"MTMA se ha inicializado correctamente");
        } else {
            NSLog(@"Error al inicializar MTMA, code=%ld, message=%@", (long)result.code, result.message);
        }
    };
    [MTMAService start:config];

            
Este bloque de código se muestra en una ventana flotante

Establecer la información de contacto del usuario

Versiones compatibles

Disponible a partir de la versión: 5.0.0

Definición de la interfaz

  • + (void)setUserContact:(MTMAUserContact * )contact;
    • Descripción de la interfaz:
      • Establece la información de contacto del usuario.
    • Parámetros
      • contacts: Permite establecer varios datos de contacto. Actualmente admite email, mobile_phone, landline_phone y whatsapp_phone. Cada key debe ser una cadena de 1 a 256 caracteres; cada value debe ser una cadena. "" borra ese dato de contacto; una cadena no vacía compuesta únicamente por espacios en blanco no es válida.

Ejemplo de llamada

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

            
Este bloque de código se muestra en una ventana flotante

Enviar eventos

Versiones compatibles

Disponible a partir de la versión: 5.0.0

Definición de la interfaz

  • **+ (void)eventRecord:(MTMAEventObject )event;*
    • Descripción de la interfaz:
      • Envía un evento.
    • Parámetros
      • Modelo del evento que se envía
      • eventName: nombre del evento que se envía
      • property: propiedades del evento; key es el nombre de la propiedad y value es su valor

Ejemplo de llamada

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

            
Este bloque de código se muestra en una ventana flotante

Establecer identificadores de usuario

Versiones compatibles

Disponible a partir de la versión: 5.0.0

Identificadores email y phone disponibles a partir de la versión: 5.5.0

Definición de la interfaz

  • + (void)identifyAccount:(MTMAUserID * )userID;
    • Descripción de la interfaz:
      • Establece identificadores de usuario.
    • Parámetros
      • Modelo de identificadores de usuario
      • userID: identificador único del usuario que ha iniciado sesión
      • anonymousID: Si el usuario no ha iniciado sesión pero proporciona otra información que permita identificarlo, puede establecerla como ID anónimo, por ejemplo, una dirección de correo electrónico o un identificador generado por un tercero.
      • email: dirección de correo electrónico utilizada para identificar al usuario
      • phone: número de teléfono móvil del usuario, incluido el código del país o región, por ejemplo, +8613800000000
      • Proporcione al menos un identificador válido; no es necesario rellenarlos todos. Consulte los tipos, longitudes y formatos de los identificadores de usuario.

Ejemplo de llamada

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

            
Este bloque de código se muestra en una ventana flotante

Aquí, email y phone se utilizan para encontrar la identidad del usuario y pueden devolver un nuevo EUID. No son intercambiables con los datos de contacto establecidos mediante setUserContact:.

Un callback con code=0 indica que se ha obtenido un EUID válido, pero no que todos los identificadores se hayan establecido correctamente. El JSON de message contiene resultados por campo locales y del servidor, con las claves user_id, anonymous_id, email y phone. Compruebe el code del campo correspondiente; la ausencia de un campo no indica éxito.

Si el servidor no proporciona resultados por campo, message solo contiene los rechazos locales; si tampoco hay rechazos locales, contiene success. Los message de error no tienen necesariamente formato JSON. Consulte los códigos por campo en Resultados por identificador de usuario.

Ejemplo:

code=0 message={"email":{"code":0},"phone":{"code":3003,"msg":"El valor del identificador de usuario supera la longitud permitida"}}
              
              code=0
message={"email":{"code":0},"phone":{"code":3003,"msg":"El valor del identificador de usuario supera la longitud permitida"}}

            
Este bloque de código se muestra en una ventana flotante

Establecer los ID de contacto del canal

Versiones compatibles

Disponible a partir de la versión: 5.5.0

Definición de la interfaz

  • **+ (void)setChannelValueWithChannelId:(NSInteger)channelId values:(NSArray<NSString *> )values completion:(void (^)(NSInteger code, NSString message))completion;
    • Descripción de la interfaz:
      • Establece el RID o Token de un canal Push de terceros.
      • El SDK gestiona automáticamente la asociación del canal EngageLab AppPush; no es necesario llamar a esta interfaz para configurarlo.
      • La ausencia de integración de AppPush o un fallo en su registro no afectan a las demás funciones de MA.
      • En llamadas consecutivas, el SDK envía las solicitudes en orden y devuelve un callback para cada una.
      • Si la MA AppKey, el proyecto o la identidad cambian mientras la solicitud está en cola, esa solicitud devuelve -2.
    • Parámetros
      • channelId: ID del canal Push de terceros en la consola de MA; debe ser mayor que 0.
      • values: Array de RID o Token del canal actual. El SDK elimina los espacios en blanco iniciales y finales de cada valor antes de enviarlo. Ni el array ni los elementos recortados pueden estar vacíos.
      • completion: callback del resultado de la solicitud; code igual a 0 indica éxito.

Ejemplo de llamada

[MTMAService setChannelValueWithChannelId:136 values:@[@"RID o Token del Push de terceros"] completion:^(NSInteger code, NSString *message) { }];
              
                  [MTMAService setChannelValueWithChannelId:136
                                       values:@[@"RID o Token del Push de terceros"]
                                   completion:^(NSInteger code, NSString *message) {
    }];

            
Este bloque de código se muestra en una ventana flotante

Establecer el intervalo de envío de datos

Versiones compatibles

Disponible a partir de la versión: 5.0.0

Definición de la interfaz

  • + (void)setReportInterval:(NSInteger)interval;
    • Descripción de la interfaz:
      • Establece el intervalo de envío de datos. Si no llama a esta interfaz, los eventos se envían cada 10 s de forma predeterminada.
      • El intervalo se conserva en memoria; debe llamar a esta interfaz en cada ciclo de vida de la aplicación para que tenga efecto.
    • Parámetros
      • interval: intervalo de envío, en s (segundos)

Ejemplo de llamada

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

            
Este bloque de código se muestra en una ventana flotante

Establecer el límite de eventos en caché

Versiones compatibles

Disponible a partir de la versión: 5.0.0

Definición de la interfaz

  • + (void)setMaxEventCacheCount:(NSInteger)count;
    • Descripción de la interfaz:
      • Establece el número máximo de eventos en caché; el valor predeterminado es 50 y no puede superar 500.
      • Cuando se supera el límite de la caché, se envían todos los datos.
    • Parámetros
      • count: número máximo de eventos en caché

Ejemplo de llamada

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

            
Este bloque de código se muestra en una ventana flotante

Establecer el tiempo de espera de la sesión

Versiones compatibles

Disponible a partir de la versión: 5.0.0

Definición de la interfaz

  • + (void)setNoActiveSessionEndDurationTime:(NSInteger)interval;
    • Descripción de la interfaz:
      • Establece el tiempo de espera de la sesión; el valor predeterminado es 30 minutos.
      • Cuando la aplicación pasa a segundo plano, comienza la cuenta del tiempo de espera. Si no hay actividad durante ese periodo, finaliza la sesión actual.
    • Parámetros
      • interval: duración del tiempo de espera, en s (segundos)

Ejemplo de llamada

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

            
Este bloque de código se muestra en una ventana flotante

Obtener el EUID

Versiones compatibles

Disponible a partir de la versión: 5.0.0

Definición de la interfaz

  • + (nullable NSString * )EUID;
    • Descripción de la interfaz:
      • Obtiene el EUID de EngageLab MA.
      • Devuelve nil si el SDK no se ha inicializado correctamente.

Ejemplo de llamada

[MTMAService EUID];
              
                  [MTMAService EUID];

            
Este bloque de código se muestra en una ventana flotante

Establecer propiedades UTM

Versiones compatibles

Disponible a partir de la versión: 5.0.0

Definición de la interfaz

  • + (void)setUtmProperties:(NSDictionary * )property;
    • Descripción de la interfaz:
      • Las propiedades UTM son propiedades de evento estándar. Si puede identificar el anuncio desde el que un usuario accede a la aplicación, se recomienda establecer la información UTM, que se incluirá al enviar eventos. Las propiedades disponibles son:
        • utm_source: fuente de la campaña
        • utm_medium: medio de la campaña
        • utm_term: término de la campaña
        • utm_content: contenido de la campaña
        • utm_campaign: nombre de la campaña
        • utm_id: ID de la campaña

Ejemplo de llamada

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

            
Este bloque de código se muestra en una ventana flotante

Establecer propiedades del usuario

Sobrescribir y actualizar propiedades del usuario

  • + (void)setProperty:(NSDictionary * )userinfo completion:(void (^)(NSInteger code, NSString * message))completion;
    • Descripción de la interfaz:
      • Establece propiedades del usuario por lotes, hasta 100 por llamada. Si alguna propiedad no supera la validación del SDK, no se envía ninguna solicitud del lote.
      • El nombre de la propiedad debe ser un NSString: debe empezar por una letra minúscula, contener solo letras minúsculas, dígitos y guiones bajos, tener como máximo 50 bytes UTF-8 y no empezar por el, engagelab ni metaverse.
      • Value admite NSString, NSNumber con un valor finito, NSSet/NSArray de cadenas, NSDictionary (object) y NSArray<NSDictionary *> (object_array).
      • Las propiedades de tipos simples se sobrescriben si existen y se crean si no existen; object combina los subcampos, mientras que object_array sustituye el array completo y conserva su orden.
    • Ejemplo de llamada:
[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 indica que el servidor ha procesado la solicitud correctamente }];
              
                 [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 indica que el servidor ha procesado la solicitud correctamente
   }];

            
Este bloque de código se muestra en una ventana flotante
  • + (void)setProperty:(NSString * )key to:(id)value completion:(void (^)(NSInteger code, NSString * message))completion;
    • Descripción de la interfaz:
      • Establece el contenido de una propiedad del usuario.
      • Las reglas de nombres, los tipos de Value y el comportamiento de actualización son idénticos a los de la interfaz por lotes.
    • Ejemplo de llamada:
[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) {
   }];

            
Este bloque de código se muestra en una ventana flotante

Reglas de object / object_array

  • object debe ser un NSDictionary no vacío. Los nombres de subcampos deben ser NSString no vacíos y no pueden contener . ni $.
  • Los valores de subcampos de object admiten NSString, NSNumber con un valor finito, NSSet/NSArray de cadenas y NSNull. No se permiten object ni object_array anidados.
  • Al volver a llamar a setProperty para un object, solo se combinan los subcampos proporcionados en esa llamada; los omitidos no cambian. Un valor NSNull elimina el subcampo correspondiente.
  • object_array debe ser un NSArray<NSDictionary *>; cada objeto debe ser no vacío y cumplir las mismas reglas de subcampos. Una nueva llamada a setProperty sustituye el array completo.
  • Cada elemento de object_array debe conservar al menos un subcampo cuyo valor no sea NSNull. No se permiten objetos con todos sus subcampos establecidos en NSNull.
  • Un array vacío puede vaciar una propiedad de array existente, pero al crearla por primera vez no permite distinguir entre una lista de cadenas y object_array. Para crear un object_array por primera vez, proporcione un array de objetos no vacío.
  • NSNull solo se permite como valor de subcampo de object/object_array. No puede eliminar una propiedad completa con un NSNull de nivel superior; utilice deleteProperty:completion:.

Ejemplos de actualización parcial de object y eliminación de subcampos:

// Actualizar solo profile.score; profile.city no cambia [MTMAService setProperty:@"profile" to:@{ @"score": @200 } completion:completion]; // Eliminar solo profile.city [MTMAService setProperty:@"profile" to:@{ @"city": NSNull.null } completion:completion];
              
              // Actualizar solo profile.score; profile.city no cambia
[MTMAService setProperty:@"profile"
                      to:@{ @"score": @200 }
              completion:completion];

// Eliminar solo profile.city
[MTMAService setProperty:@"profile"
                      to:@{ @"city": NSNull.null }
              completion:completion];

            
Este bloque de código se muestra en una ventana flotante

Actualizar parcialmente un elemento de object_array

Disponible a partir de la versión: 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;
    • Descripción de la interfaz:
      • Localiza un objeto de object_array mediante un subcampo único y combina los subcampos de values.
      • El subcampo de identifierKey debe estar definido en los metadatos del servidor y ser de tipo string o number. identifierValue debe tener el mismo tipo: NSString o NSNumber finito y no booleano. Debe coincidir con exactamente un elemento del array actual.
      • values debe ser un diccionario no vacío, sin identifierKey ni object/object_array anidados. Los campos omitidos no cambian; un valor NSNull elimina el subcampo.
      • La propiedad debe estar definida como object_array en los metadatos del servidor y el usuario actual ya debe tener un valor para ella. Para crearla por primera vez, utilice setProperty:to: con un array de objetos no vacío.
      • Si la propiedad no está definida, o está definida pero el usuario actual aún no tiene un valor, el servidor devuelve code=0 sin realizar cambios. code=0 solo indica que la solicitud se ha procesado correctamente; compruebe los cambios reales en la consola de MA o en las propiedades del usuario en el servidor.
      • Si el array existe pero no hay coincidencias, hay varias coincidencias, el tipo del identificador no coincide o los subcampos no cumplen los metadatos, el servidor devuelve un código de error y no crea ni modifica otros elementos.
    • Ejemplo de llamada:
// Objeto con id == home: cambiar city a Tokyo y eliminar zip [MTMAService updateObjectArrayProperty:@"addresses" identifierKey:@"id" identifierValue:@"home" values:@{ @"city": @"Tokyo", @"zip": NSNull.null } completion:^(NSInteger code, NSString *message) { }];
              
              // Objeto con id == home: cambiar city a Tokyo y eliminar zip
[MTMAService updateObjectArrayProperty:@"addresses"
                         identifierKey:@"id"
                       identifierValue:@"home"
                                values:@{
                                    @"city": @"Tokyo",
                                    @"zip": NSNull.null
                                }
                            completion:^(NSInteger code,
                                         NSString *message) {
}];

            
Este bloque de código se muestra en una ventana flotante

Añadir un elemento a object_array

Disponible a partir de la versión: 5.5.0

  • **+ (void)addObjectArrayProperty:(NSString )key object:(NSDictionary<NSString *, id> )object completion:(void (^)(NSInteger code, NSString * message))completion;
    • Descripción de la interfaz:
      • Añade un objeto al final de object_array sin afectar a los elementos existentes. Es distinto de pasar un array completo a setProperty:to:, que sustituye todo el array.
      • object debe ser un NSDictionary no vacío y conservar al menos un subcampo cuyo valor no sea NSNull. Se aplican las reglas de subcampos de object; no se permiten object/object_array anidados.
      • La propiedad debe estar definida como object_array en los metadatos del servidor. Si no está definida, el servidor devuelve code=0 sin realizar cambios; créela primero con setProperty:to: y un array de objetos no vacío.
      • Si la propiedad está definida pero el usuario actual aún no tiene un valor, esta interfaz crea un array con ese único elemento.
    • Ejemplo de llamada:
[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) {
}];

            
Este bloque de código se muestra en una ventana flotante

Eliminar un elemento de object_array

Disponible a partir de la versión: 5.5.0

  • **+ (void)removeObjectArrayProperty:(NSString )key identifierKey:(NSString )identifierKey identifierValue:(id)identifierValue completion:(void (^)(NSInteger code, NSString * message))completion;
    • Descripción de la interfaz:
      • Localiza y elimina el elemento completo del array mediante un subcampo único. Para eliminar solo un subcampo del elemento, utilice updateObjectArrayProperty: y asígnele NSNull.
      • Las restricciones de identifierKey / identifierValue son idénticas a las de updateObjectArrayProperty:: el subcampo debe estar definido en los metadatos, ser de tipo string o number y coincidir con exactamente un elemento del array actual.
      • Si la propiedad no está definida en el servidor, el usuario actual no tiene un valor o no hay coincidencias, el servidor ignora la solicitud y devuelve code=0. Compruebe los cambios reales en la consola de MA o en las propiedades del usuario en el servidor.
      • Si hay varias coincidencias o el tipo del identificador no coincide, el servidor devuelve un código de error y no elimina otros elementos por equivocación.
    • Ejemplo de llamada:
// Eliminar la dirección con id == office [MTMAService removeObjectArrayProperty:@"addresses" identifierKey:@"id" identifierValue:@"office" completion:^(NSInteger code, NSString *message) { }];
              
              // Eliminar la dirección con id == office
[MTMAService removeObjectArrayProperty:@"addresses"
                         identifierKey:@"id"
                       identifierValue:@"office"
                            completion:^(NSInteger code,
                                         NSString *message) {
}];

            
Este bloque de código se muestra en una ventana flotante

Incrementar propiedades del usuario

  • **+ (void)increaseProperty:(NSString )key by:(NSNumber )amount completion:(void (^)(NSInteger code, NSString * message))completion;
    • Descripción de la interfaz:
      • Añade un valor a una propiedad numérica del usuario y acumula los datos enviados, por ejemplo, el importe total gastado.
      • Solo se puede utilizar con propiedades de tipo NSNumber; en los demás casos se ignora. Si la propiedad no existía, su valor inicial se considera 0.
    • Ejemplo de llamada:
[MTMAService increaseProperty:@"key" by:@(2) completion:^(NSInteger code, NSString * _Nonnull message) { }];
              
                  [MTMAService increaseProperty:@"key" by:@(2) completion:^(NSInteger code, NSString * _Nonnull message) {

    }];

            
Este bloque de código se muestra en una ventana flotante
  • **+ (void)increaseProperty:(NSDictionary )userinfo completion:(void (^)(NSInteger code, NSString * message))completion;*
    • Descripción de la interfaz:
      • Añade valores a varias propiedades numéricas del usuario y acumula los datos enviados, por ejemplo, el importe total gastado.
      • Solo se puede utilizar con propiedades de tipo NSNumber; en los demás casos se ignora. Si la propiedad no existía, su valor inicial se considera 0.
    • Ejemplo de llamada:
[MTMAService increaseProperty:@{@"key1":@(5),@"key2":@(3)} completion:^(NSInteger code, NSString * _Nonnull message) { }];
              
                  [MTMAService increaseProperty:@{@"key1":@(5),@"key2":@(3)} completion:^(NSInteger code, NSString * _Nonnull message) {

    }];

            
Este bloque de código se muestra en una ventana flotante

Añadir valores a propiedades del usuario

  • **+ (void)addProperty:(NSString )key by:(NSObject )content completion:(void (^)(NSInteger code, NSString * message))completion
    • Descripción de la interfaz:
      • Añade valores a una propiedad de tipo NSSet o NSArray.
      • Los elementos de NSSet o NSArray deben ser NSString; en caso contrario, la operación se ignora. Si la propiedad a la que se añaden valores no existe, se inicializa un NSSet o NSArray vacío.
    • Ejemplo de llamada:
[MTMAService addProperty:@"key" by:@[@"value"] completion:^(NSInteger code, NSString * _Nonnull message) { }];
              
                  [MTMAService addProperty:@"key" by:@[@"value"] completion:^(NSInteger code, NSString * _Nonnull message) {

    }];

            
Este bloque de código se muestra en una ventana flotante
  • **+ (void)addProperty:(NSDictionary )userinfo completion:(void (^)(NSInteger, NSString * _Nonnull))completion;*
    • Descripción de la interfaz:
      • Añade valores a varias propiedades de tipo NSSet o NSArray.
      • Los elementos de NSSet o NSArray deben ser NSString; en caso contrario, la operación se ignora. Si la propiedad a la que se añaden valores no existe, se inicializa un NSSet o NSArray vacío.
    • Ejemplo de llamada:
[MTMAService addProperty:@{@"key1":@[@"value"],@"key2":@[@"value"]} completion:^(NSInteger code, NSString * _Nonnull message) { }];
              
                  [MTMAService addProperty:@{@"key1":@[@"value"],@"key2":@[@"value"]} completion:^(NSInteger code, NSString * _Nonnull message) {

    }];

            
Este bloque de código se muestra en una ventana flotante

Eliminar valores de propiedades del usuario

  • **+ (void)removeProperty:(NSString * )key by:(NSObject )content completion:(void (^)(NSInteger code, NSString * message))completion;*
    • Descripción de la interfaz:
      • Elimina valores de una propiedad de tipo NSSet o NSArray.
      • content debe ser un NSSet o NSArray cuyos elementos sean NSString.
    • Ejemplo de llamada:
[MTMAService removeProperty:@"key" by:@[@"value"] completion:^(NSInteger code, NSString * _Nonnull message) { }];
              
                  [MTMAService removeProperty:@"key" by:@[@"value"] completion:^(NSInteger code, NSString * _Nonnull message) {

    }];

            
Este bloque de código se muestra en una ventana flotante

Eliminar propiedades del usuario

Versiones compatibles

Disponible a partir de la versión: 5.0.0

Definición de la interfaz

  • + (void)deleteProperty:(NSString * )key completion:(void (^)(NSInteger code, NSString * message))completion;
    • Descripción de la interfaz:
      • Elimina todo el contenido de una propiedad del usuario; admite tipos simples, object y object_array.
      • Si la propiedad no existe, la operación se ignora.

Ejemplo de llamada

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

    }];

            
Este bloque de código se muestra en una ventana flotante

Controlar la recopilación de datos

Versiones compatibles

Disponible a partir de la versión: 5.0.0

Definición de la interfaz

  • **+ (void)setCollectControl:(MTMACollectControl )control;*
    • Descripción de la interfaz:
      • Controla si se recopilan los datos definidos en MTMACollectControl.

Ejemplo de llamada

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

            
Este bloque de código se muestra en una ventana flotante

Clase MTMAConfig

Clase de configuración de la aplicación. Sus propiedades son:

Nombre del parámetro Tipo Descripción
appKey NSString MA AppKey obligatoria en la versión independiente, formada por 24 letras o dígitos e independiente de la Push AppKey
userID MTMAUserID Modelo de identificadores del usuario; si se establece, los identificadores se envían durante la inicialización
resultCompletion ^(MTMAInitResult *result) Callback asíncrono en el hilo principal; devuelve MTMAInitResult y tiene prioridad sobre completion
completion (^)(NSInteger code, NSString * message) Callback anterior del resultado de inicialización, obsoleto; utilice resultCompletion

Clase MTMAInitResult

Objeto del resultado de inicialización del SDK devuelto por resultCompletion. No es necesario crearlo ni invocarlo por separado. Sus propiedades son:

Nombre del parámetro Tipo Descripción
code NSInteger Código del resultado de inicialización, solo para diagnóstico; no se recomienda crear ramas de lógica de negocio a partir de códigos específicos del servidor
message NSString Descripción del resultado de inicialización; ante un fallo inesperado, proporciónela al soporte técnico junto con code
EUID NSString EUID de MA tras una inicialización correcta; nil en caso de fallo
maRID NSString MA Registration ID tras una inicialización correcta; nil en caso de fallo
success BOOL Indica si la inicialización ha tenido éxito; acceda mediante isSuccess y utilícelo para evaluar el resultado

Clase MTMAUserID

Modelo de identificadores de usuario. Se proporciona mediante MTMAConfig.userID durante la inicialización y mediante identifyAccount: durante la ejecución.

Los cuatro identificadores son opcionales. Se eliminan los espacios iniciales y finales; los valores vacíos y 0/null/undefined/nan (sin distinguir mayúsculas y minúsculas) se consideran no proporcionados: no participan en la coincidencia ni generan resultados por campo. Las siguientes restricciones se aplican a los valores que se conservan tras esta limpieza:

Nombre del parámetro Tipo Descripción
userID NSString Máximo 255 caracteres Unicode; los valores vacíos y reservados siguen las reglas anteriores
anonymousID NSString Máximo 256 caracteres Unicode; los valores vacíos y reservados siguen las reglas anteriores
email NSString No vacío tras eliminar los espacios iniciales y finales, máximo 256 caracteres Unicode; debe coincidir con \A[^@\s]+@[^@\s]+\z
phone NSString Debe cumplir el formato E.164 \A\+[1-9]\d{1,14}\z
completion (^)(NSInteger code, NSString * message) Callback asíncrono en el hilo principal; durante la inicialización devuelve el resultado de inicialización y durante la ejecución, el resultado del procesamiento de identidad de identifyAccount:

Los campos que no sean NSString o tengan un formato no válido se descartan con 3013; los que superen la longitud permitida se descartan con 3003. Se registran esos resultados y se siguen enviando los demás campos válidos. Si no queda ningún campo válido, la inicialización continúa sin identidad, mientras que identifyAccount: devuelve -3 sin enviar una solicitud. El SDK no modifica el objeto del llamador; el servidor convierte email a minúsculas.

Si la inicialización tiene éxito, userID.completion devuelve code=0 y un message vacío o un JSON que solo contiene campos rechazados localmente. No incluye los resultados por campo del servidor y no confirma que todos los identificadores estén vinculados. El resultado de inicialización del SDK debe determinarse mediante config.resultCompletion, cuyo callback no contiene JSON por identificador. Consulte los callbacks en ejecución en Establecer identificadores de usuario.

Clase MTMACollectControl

Modelo de control de recopilación de datos del usuario. Sus propiedades son:

Nombre del parámetro Tipo Descripción
idfa BOOL Indica si se recopila información idfa. Establecer NO desactiva la recopilación. Valor predeterminado: NO.
idfv BOOL Indica si se recopila información idfv. Establecer NO desactiva la recopilación. Valor predeterminado: NO.
carrier BOOL Indica si se recopila información del operador. Establecer NO desactiva la recopilación. Valor predeterminado: YES.

Clase MTMAUserContact

Modelo de canales de contacto del usuario. Sus propiedades se describen a continuación:
Si no se establece un valor o es nil, el contacto no cambia. Una cadena vacía "" borra ese dato de contacto; una cadena no vacía compuesta únicamente por espacios en blanco no es válida.

Nombre del parámetro Tipo Descripción
contacts NSDictionary Diccionario de datos de contacto; admite email, mobile_phone, landline_phone y whatsapp_phone
completion (^)(NSInteger code, NSString * message) Callback del resultado de la solicitud; code:0 indica éxito

Clase MTMAEventObject

Clase de objetos de eventos personalizados. Sus propiedades son:

Nombre del parámetro Tipo Descripción
eventName NSString ID del evento, obligatorio y no vacío; debe empezar por una letra minúscula, contener solo letras minúsculas, dígitos y guiones bajos, tener como máximo 50 bytes UTF-8 y no empezar por el, engagelab ni metaverse
property NSDictionary<NSString *, id> Propiedades personalizadas (hasta 100). key es un NSString con las mismas reglas de nombres que eventName; value admite NSString, NSNumber o NSSet/NSArray de elementos NSString
Icon Solid Transparent White Qiyu
Contacto