API del SDK de iOS
Descripción de las interfaces del SDK
- MTMAService: contiene todas las interfaces del SDK.
- MTMAConfig: clase de configuración de la aplicación.
- MTMAInitResult: clase del resultado de inicialización del SDK.
- MTMAUserID: modelo de identificadores de usuario.
- MTMAUserContact: modelo de información de contacto del usuario.
- 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:eidentifyAccount: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
- Descripción de la interfaz:
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];
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.
- 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.
- Descripción de la interfaz:
Ejemplo de llamada
MTMAUserContact *contact = [[MTMAUserContact alloc] init];
contact.contacts = @{@"mobile_phone":@"13*********"};
contact.completion = ^(NSInteger code, NSString * _Nonnull message) { };
[MTMAService setUserContact:contact];
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
- Descripción de la interfaz:
Ejemplo de llamada
MTMAEventObject *object = [[MTMAEventObject alloc] init];
object.eventName = @"sndefineevent2";
object.property = @{
@"key1":@"value1",
@"key2":@"value2",
};
[MTMAService eventRecord:object];
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.
- Descripción de la interfaz:
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];
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"}}
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.
- Descripción de la interfaz:
Ejemplo de llamada
[MTMAService setChannelValueWithChannelId:136
values:@[@"RID o Token del Push de terceros"]
completion:^(NSInteger code, NSString *message) {
}];
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)
- Descripción de la interfaz:
Ejemplo de llamada
[MTMAService setReportInterval:10];
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é
- Descripción de la interfaz:
Ejemplo de llamada
[MTMAService setMaxEventCacheCount:50];
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)
- Descripción de la interfaz:
Ejemplo de llamada
[MTMAService setNoActiveSessionEndDurationTime:50];
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.
- Descripción de la interfaz:
Ejemplo de llamada
[MTMAService EUID];
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
- 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:
- Descripción de la interfaz:
Ejemplo de llamada
[MTMAService setUtmProperties:@{@"utm_source":@"value"}];
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 porel,engagelabnimetaverse. - Value admite
NSString,NSNumbercon un valor finito,NSSet/NSArrayde cadenas,NSDictionary(object) yNSArray<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:
- Descripción de la interfaz:
[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
}];
- + (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:
- Descripción de la interfaz:
[MTMAService setProperty:@"profile"
to:@{ @"city": @"Singapore", @"score": @100 }
completion:^(NSInteger code, NSString * _Nonnull message) {
}];
Reglas de object / object_array
- object debe ser un
NSDictionaryno vacío. Los nombres de subcampos deben serNSStringno vacíos y no pueden contener.ni$. - Los valores de subcampos de object admiten
NSString,NSNumbercon un valor finito,NSSet/NSArrayde cadenas yNSNull. No se permiten object ni object_array anidados. - Al volver a llamar a
setPropertypara un object, solo se combinan los subcampos proporcionados en esa llamada; los omitidos no cambian. Un valorNSNullelimina 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 asetPropertysustituye 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 enNSNull. - 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.
NSNullsolo se permite como valor de subcampo de object/object_array. No puede eliminar una propiedad completa con unNSNullde nivel superior; utilicedeleteProperty: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 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
identifierKeydebe estar definido en los metadatos del servidor y ser de tipo string o number.identifierValuedebe tener el mismo tipo:NSStringoNSNumberfinito y no booleano. Debe coincidir con exactamente un elemento del array actual. valuesdebe ser un diccionario no vacío, sinidentifierKeyni object/object_array anidados. Los campos omitidos no cambian; un valorNSNullelimina 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=0sin realizar cambios.code=0solo 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.
- Localiza un objeto de object_array mediante un subcampo único y combina los subcampos de
- Ejemplo de llamada:
- Descripción de la interfaz:
// 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) {
}];
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. objectdebe ser unNSDictionaryno vacío y conservar al menos un subcampo cuyo valor no seaNSNull. 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=0sin realizar cambios; créela primero consetProperty: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.
- Añade un objeto al final de object_array sin afectar a los elementos existentes. Es distinto de pasar un array completo a
- Ejemplo de llamada:
- Descripción de la interfaz:
[MTMAService addObjectArrayProperty:@"addresses"
object:@{
@"id": @"school",
@"city": @"Osaka"
}
completion:^(NSInteger code,
NSString *message) {
}];
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ígneleNSNull. - Las restricciones de
identifierKey/identifierValueson idénticas a las deupdateObjectArrayProperty:: 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.
- Localiza y elimina el elemento completo del array mediante un subcampo único. Para eliminar solo un subcampo del elemento, utilice
- Ejemplo de llamada:
- Descripción de la interfaz:
// Eliminar la dirección con id == office
[MTMAService removeObjectArrayProperty:@"addresses"
identifierKey:@"id"
identifierValue:@"office"
completion:^(NSInteger code,
NSString *message) {
}];
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:
- Descripción de la interfaz:
[MTMAService increaseProperty:@"key" by:@(2) completion:^(NSInteger code, NSString * _Nonnull message) {
}];
- **+ (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:
- Descripción de la interfaz:
[MTMAService increaseProperty:@{@"key1":@(5),@"key2":@(3)} completion:^(NSInteger code, NSString * _Nonnull message) {
}];
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:
- Descripción de la interfaz:
[MTMAService addProperty:@"key" by:@[@"value"] completion:^(NSInteger code, NSString * _Nonnull message) {
}];
- **+ (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:
- Descripción de la interfaz:
[MTMAService addProperty:@{@"key1":@[@"value"],@"key2":@[@"value"]} completion:^(NSInteger code, NSString * _Nonnull message) {
}];
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:
- Descripción de la interfaz:
[MTMAService removeProperty:@"key" by:@[@"value"] completion:^(NSInteger code, NSString * _Nonnull message) {
}];
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.
- Descripción de la interfaz:
Ejemplo de llamada
[MTMAService deleteProperty:@"key" completion:^(NSInteger code, NSString * _Nonnull message) {
}];
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.
- Descripción de la interfaz:
Ejemplo de llamada
MTMACollectControl *collectControl = [[MTMACollectControl alloc] init];
collectControl.idfa = YES;
collectControl.idfv = YES;
collectControl.carrier = YES;
[MTMAService setCollectControl:collectControl];
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 |
| 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 |










