Logo Site EngageLab Mark Colored Transparent
Documentación

API del SDK de Android

Descripción de la interfaz del SDK

  • MTMAApi: interfaz de tiempo de ejecución de MA.
  • MTMAConfig: configuración de inicialización que se pasa a start.

Indicaciones antes de llamar a la API

  • start solo se puede llamar en el proceso principal de la aplicación host.
  • Excepto por la interfaz de configuración que se permite configurar antes de la inicialización, otras API comerciales de MA solo se pueden llamar después de una inicialización exitosa.
  • Se recomienda llamar a todas las API externas de MA en el proceso principal. Los procesos no principales no comparten el estado de inicialización del proceso principal y las llamadas no se reenvían al proceso principal.
  • Cuando un proceso no principal llama a la API empresarial, la interfaz con devolución de llamada devuelve CODE_START_FAIL (-2), getEuid() y getMaRid() devuelven un valor nulo, y la interfaz empresarial sin devolución de llamada no se ejecutará.
  • configDebugMode, setCollectControl, setReportInterval, setMaxEventCacheCount y setNoActiveSessionEndDurationTime son configuraciones en proceso; llamarlos en un proceso no principal no modificará la configuración del proceso principal MA.

Obtener la versión SDK

Versiones compatibles

Versión inicial compatible: 5.5.0

Definición de campo

  • MTMAApi.SDK_VERSION_CODE: número de versión digital de MA SDK.
  • MTMAApi.SDK_VERSION_NAME: número de versión de cadena MA SDK.
int versionCode = MTMAApi.SDK_VERSION_CODE; String versionName = MTMAApi.SDK_VERSION_NAME;
              
              int versionCode = MTMAApi.SDK_VERSION_CODE;
String versionName = MTMAApi.SDK_VERSION_NAME;

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

Establecer el modo de depuración

Versiones compatibles

Versión inicial compatible: 5.5.0

Definición de interfaz

  • configDebugMode(boolean enable)
    • Habilite o deshabilite los registros de depuración de MA SDK.
    • Se recomienda configurarlo antes de llamar a start y se recomienda desactivarlo en la versión de lanzamiento.
MTMAApi.configDebugMode(true);
              
              MTMAApi.configDebugMode(true);

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

Habilitar la función MA

Versiones compatibles

Versión inicial compatible: 5.5.0

Definición de interfaz

  • start(MTMAConfig config, MTMAInitResultCallback callback)
    • Descripción de la interfaz: utilice MA AppKey para inicializar la versión independiente de MA SDK.
    • config: configuración de inicialización, de tipo MTMAConfig.
      • MTMAConfig(String appKey): Establecer clave de aplicación MA.
      • MTMAConfig(String appKey, UserIdentity userIdentity): configure MA AppKey y el ID de usuario al mismo tiempo.
      • config.dataCollectionEnabled(boolean enabled): opcional. Se llama sobre el objeto MTMAConfig y establece, para esta llamada a start, el interruptor de recopilación de datos de la MA AppKey actual. Compatible a partir de la versión 5.5.2.
        • true activa la recopilación y false la desactiva. Una vez llamado, el valor indicado se aplica en cada start y se guarda en el dispositivo. Pase el resultado de consentimiento actual del usuario y no un valor fijo en el código.
        • Consulte Interruptor de recopilación de datos.
    • callback: Devolución de llamada del resultado de la inicialización.
    • MTMAInitResult:
      • isSuccess(): Si la inicialización fue exitosa.
      • getCode(): Código de resultado, 0 indica éxito.
      • getMessage(): Descripción del resultado.
      • getEuid(): EUID obtenido después de una inicialización exitosa.
      • getMaRid(): MA RID obtenido después de una inicialización exitosa.

Ejemplo de llamada

MTMAConfig config = new MTMAConfig("your MA AppKey"); // Opcional (a partir de 5.5.2): establezca el interruptor de recopilación de datos según el consentimiento actual del usuario; si nunca se ha establecido, está activado de forma predeterminada // config.dataCollectionEnabled(enabled); MTMAApi.getInstance(this).start(config, new MTMAInitResultCallback() { @Override public void onResult(MTMAInitResult result) { if (result.isSuccess()) { String euid = result.getEuid(); String maRid = result.getMaRid(); } else { int code = result.getCode(); String message = result.getMessage(); } } });
              
              MTMAConfig config = new MTMAConfig("your MA AppKey");
// Opcional (a partir de 5.5.2): establezca el interruptor de recopilación de datos según el consentimiento actual del usuario; si nunca se ha establecido, está activado de forma predeterminada
// config.dataCollectionEnabled(enabled);
MTMAApi.getInstance(this).start(config, new MTMAInitResultCallback() {
    @Override
    public void onResult(MTMAInitResult result) {
        if (result.isSuccess()) {
            String euid = result.getEuid();
            String maRid = result.getMaRid();
        } else {
            int code = result.getCode();
            String message = result.getMessage();
        }
    }
});

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

Cambiar AppKey en tiempo de ejecución

Una vez completada la última devolución de llamada de inicialización, se puede volver a llamar a start con el nuevo MTMAConfig. Otras API empresariales de MA no están disponibles temporalmente durante el cambio. No hay un retorno automático a la AppKey anterior cuando falla la inicialización de la nueva AppKey.

Interfaz obsoleta

A partir de 5.5.0, las siguientes interfaces están en desuso:

  • start(CallBack callBack)
  • start(UserIdentity userIdentity, CallBack callBack)

Utilice start(MTMAConfig config, MTMAInitResultCallback callback) en su lugar.

Establecer ID de usuario

Se recomienda configurar esta interfaz cuando el usuario inicia sesión y proporciona información relevante para obtener el EUID que coincida con el usuario.

Versiones compatibles

Versión inicial compatible: 5.0.0

Definición de interfaz

  • _setUserIdentity(UserIdentity userIdentity, CallBack callBack) _
    • Descripción de la interfaz: -Establecer identificación de usuario, como el número de tarjeta de membresía de usuario.
    • Descripción del parámetro:
      • userIdentity: identificación de llamada
        • setUserId(String userId): no puede estar vacío después de eliminar los espacios iniciales y finales, hasta 255 caracteres Unicode; no puede ser 0, null, undefined, nan (ignorando mayúsculas y minúsculas)
        • setAnonymousId(String anonymousId): No puede estar vacío después de eliminar los espacios iniciales y finales, hasta 256 caracteres Unicode
        • setEmail(String email): no puede estar vacío, hasta 256 caracteres Unicode; debe contener y solo puede contener un @, @ no puede estar vacío antes y después, y no puede contener espacios, nuevas líneas o tabulaciones; compatible a partir de 5.5.0
        • setPhone(String phone): debe cumplir con el formato E.164, comenzando con +, el primer dígito del código de país es del 1 al 9 y luego contiene de 1 a 14 dígitos; compatible a partir de 5.5.0
      • callBack: devolución de llamada de la interfaz
    • Descripción de la devolución:
      onCallBack(int code, String message)
      • código: código de retorno, 0 representa éxito, -1 representa error, consulte la descripción del parámetro del mensaje para obtener más detalles

Ejemplo de llamada

UserIdentity userIdentity = new UserIdentity(); userIdentity.setUserId("your_user_id"); userIdentity.setAnonymousId("your_anonymous_id"); userIdentity.setEmail("user@example.com"); userIdentity.setPhone("+8613800138000"); MTMAApi.getInstance(this).setUserIdentity(userIdentity, new CallBack() { @Override public void onCallBack(int code, String message) { MTCommonLog.e(TAG, "setUserIdentity code:" + code); MTCommonLog.e(TAG, "setUserIdentity message:" + message); } });
              
                              UserIdentity userIdentity = new UserIdentity();
                userIdentity.setUserId("your_user_id");
                userIdentity.setAnonymousId("your_anonymous_id");
                userIdentity.setEmail("user@example.com");
                userIdentity.setPhone("+8613800138000");
                MTMAApi.getInstance(this).setUserIdentity(userIdentity, new CallBack() {
                    @Override
                    public void onCallBack(int code, String message) {
                        MTCommonLog.e(TAG, "setUserIdentity code:" + code);
                        MTCommonLog.e(TAG, "setUserIdentity message:" + message);
                    }
                });

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

Cuando falla la verificación del campo de ID de usuario, no se envía ninguna solicitud de red y se devuelve code = -3 a través de la devolución de llamada.

Establecer información de contacto del usuario

Cuando la información de contacto del usuario cambia, puede utilizar esta interfaz para actualizar la "información de contacto" del usuario.

Versiones compatibles

Versión inicial compatible: 5.0.0

Definición de interfaz

  • setUserContact(JSONObject contacts, CallBack callBack)
    • Descripción de la interfaz: -Establecer la "información de contacto" del usuario.
    • Descripción del parámetro:
      • contactos: establece múltiples métodos de contacto. La clave es el nombre del método de contacto y el valor es el valor del método de contacto. Actualmente, se admiten cuatro métodos de contacto: correo electrónico, teléfono_móvil, teléfono fijo y teléfono_whatsapp.
      • callBack: devolución de llamada de la interfaz
    • Descripción de la devolución:
      onCallBack(int code, String message)
      • código: código de retorno, 0 representa éxito, -1 representa error, consulte la descripción del parámetro del mensaje para obtener más detalles
      • mensaje: descripción del motivo

Ejemplo de llamada

JSONObject contacts = new JSONObject(); try { contacts.put("key1", "cc"); contacts.put("key2", "dd"); } catch (JSONException e) { e.printStackTrace(); } MTMAApi.getInstance(this).setUserContact(contacts, new CallBack() { @Override public void onCallBack(int code, String message) { Log.e(TAG, "setUserContact code:" + code); Log.e(TAG, "setUserContact message:" + message); } });
              
                              JSONObject contacts = new JSONObject();
                try {
                    contacts.put("key1", "cc");
                    contacts.put("key2", "dd");
                } catch (JSONException e) {
                    e.printStackTrace();
                }
                MTMAApi.getInstance(this).setUserContact(contacts, new CallBack() {
                    @Override
                    public void onCallBack(int code, String message) {
                        Log.e(TAG, "setUserContact code:" + code);
                        Log.e(TAG, "setUserContact message:" + message);
                    }
                });

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

Obtener EUID

Versiones compatibles

Versión inicial compatible: 5.0.0

Definición de interfaz

  • getEuid()
    • Descripción de la interfaz:
      • Obtener el EUID, que representa la identificación única del usuario. Solo se devuelve el valor actual cuando la inicialización es exitosa y se devuelve un valor nulo en otros estados.

Ejemplo de llamada

MTMAApi.getInstance(this).getEuid();
              
              MTMAApi.getInstance(this).getEuid();

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

Obtener MA RID

Versiones compatibles

Versión inicial compatible: 5.5.0

Definición de interfaz

  • getMaRid()
    • Obtenga el MA RID actual. Solo se devuelve el valor actual cuando la inicialización es exitosa y se devuelve un valor nulo en otros estados.
String maRid = MTMAApi.getInstance(this).getMaRid();
              
              String maRid = MTMAApi.getInstance(this).getMaRid();

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

Establecer ID de contacto del canal

Versiones compatibles

Versión inicial compatible: 5.5.0

Definición de interfaz

  • setChannelValue(long channelId, List values, CallBack callBack)
    • Descripción de la interfaz: establece la ID de contacto del canal. El canal AppPush está vinculado automáticamente al SDK y no es necesario llamar a esta configuración de interfaz.
    • Descripción del parámetro:
      • channelId: el ID del canal Push de terceros configurado en la consola MA debe ser mayor que 0.
      • values: La lista de valores del ID de contacto del canal (como RID o Token) no puede estar vacía y los elementos de la lista no pueden estar vacíos.
      • callBack: devolución de llamada de resultado, code == 0 indica éxito.
List<String> values = Collections.singletonList("push rid or token"); MTMAApi.getInstance(this).setChannelValue(136L, values, new CallBack() { @Override public void onCallBack(int code, String message) { // code == 0 means success } });
              
              List<String> values = Collections.singletonList("push rid or token");
MTMAApi.getInstance(this).setChannelValue(136L, values, new CallBack() {
    @Override
    public void onCallBack(int code, String message) {
        // code == 0 means success
    }
});

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

Establecer el intervalo de datos de informes

Tiene efecto junto con la interfaz setMaxEventCacheCount y se informará siempre que se cumpla una de las condiciones.

Versiones compatibles

Versión inicial compatible: 5.0.0

Definición de interfaz

  • setReportInterval(int interval)
    • Descripción de la interfaz:
      • Establecer el intervalo de datos de informes. Cuando no se llama a esta interfaz, el valor predeterminado es 10 segundos para informar los datos del evento.
      • Memoria caché de intervalo de informe, que debe llamarse en cada ciclo de vida de la aplicación para que surta efecto
    • Descripción del parámetro
      • intervalo de informe de intervalo, unidad s (segundos)

Ejemplo de llamada

MTMAApi.getInstance(this).setReportInterval(10);
              
                  MTMAApi.getInstance(this).setReportInterval(10);

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

Establecer el límite superior de caché de eventos

Tiene efecto junto con la interfaz setReportInterval y se informará siempre que se cumpla una de las condiciones.

Versiones compatibles

Versión inicial compatible: 5.0.0

Definición de interfaz

  • setMaxEventCacheCount(int count)
    • Descripción de la interfaz:
      • Establezca el límite superior de caché de eventos, el valor predeterminado es 50, el máximo no puede exceder 500
      • Cuando se excede la cantidad de caché, se informarán todos los datos
    • Descripción del parámetro -count El límite superior del número de elementos de caché de eventos

Ejemplo de llamada

MTMAApi.getInstance(this).setMaxEventCacheCount(50);
              
                  MTMAApi.getInstance(this).setMaxEventCacheCount(50);

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

Establecer tiempo de espera de sesión

Versiones compatibles

Versión inicial compatible: 5.0.0

Definición de interfaz

  • setNoActiveSessionEndDurationTime(int duration)
    • Descripción de la interfaz:
      • Cuando la App se coloca en segundo plano, se comienza a calcular el tiempo de espera de la sesión. Si se excede el tiempo establecido (por defecto 30 minutos), la sesión finalizará.
    • Descripción del parámetro
      • duración del tiempo de espera, unidades s (segundos)

Ejemplo de llamada

MTMAApi.getInstance(this).setNoActiveSessionEndDurationTime(5*60);
              
                  MTMAApi.getInstance(this).setNoActiveSessionEndDurationTime(5*60);

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

Establecer atributos UTM

Versiones compatibles

Versión inicial compatible: 5.0.0

Definición de interfaz

  • setUtmProperties(UtmProperties utmProperties)
    • Descripción de la interfaz:
      • Establecer el atributo UTM. Si el desarrollador puede identificar desde qué anuncio salta el usuario para acceder a la aplicación, se recomienda configurar la información UTM. Pasaremos este parámetro al informar el evento.
    • Descripción del parámetro:
      • utmProperties Objeto de propiedades UTM
      • fuente de la campaña utm_source
      • utm_medium medio de campaña
      • utm_term término de campaña
      • contenido de la campaña utm_content
      • nombre de la campaña utm_campaign
      • utm_id ID de la campaña

Ejemplo de llamada

UtmProperties utmProperties = new UtmProperties(); utmProperties.setUtmSource("your_utm_source"); utmProperties.setUtmCampaign("your_utm_campaign"); utmProperties.setUtmContent("your_utm_content"); utmProperties.setUtmId("your_utm_id" ); utmProperties.setUtmMedium("your_utm_medium"); utmProperties.setUtmTerm("your_utm_term"); MTMAApi.getInstance(this).setUtmProperties(utmProperties);
              
                              UtmProperties utmProperties = new UtmProperties();
                utmProperties.setUtmSource("your_utm_source");
                utmProperties.setUtmCampaign("your_utm_campaign");
                utmProperties.setUtmContent("your_utm_content");
                utmProperties.setUtmId("your_utm_id" );
                utmProperties.setUtmMedium("your_utm_medium");
                utmProperties.setUtmTerm("your_utm_term");
                MTMAApi.getInstance(this).setUtmProperties(utmProperties);

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

Interruptor de recopilación de datos

Versiones compatibles

Versión inicial compatible: 5.5.2

Si su aplicación necesita controlar la recopilación según el consentimiento del usuario, utilice el interruptor de recopilación de datos. Si no lo necesita, no tiene que cambiar nada: la recopilación está activada de forma predeterminada y el comportamiento es el mismo que antes de la actualización.

El interruptor se guarda por separado para cada MA AppKey. En la inicialización, pase dataCollectionEnabled de forma dinámica según el estado de consentimiento del usuario. No lo fije en el código, ya que cada inicialización restablecería el estado a ese valor fijo. Cuando el usuario cambie su elección durante la ejecución, llame a setDataCollectionEnabled después de que la inicialización se complete correctamente. Ambas llamadas deben hacerse en el proceso principal.

Establecer el interruptor de recopilación de datos

Definición de interfaz

  • setDataCollectionEnabled(boolean enabled)
    • Descripción de la interfaz:
      • Establece el interruptor de recopilación de datos de la MA AppKey actual. Debe llamarse en el proceso principal, después de una inicialización correcta.
      • Surte efecto de inmediato y se guarda en el dispositivo, sin esperar a que finalice ninguna solicitud de red.
      • Si el valor coincide con el estado actual, no se repite el procesamiento de desactivación o recuperación ni se ven afectadas las estadísticas de inicio y de sesión.
      • Tras volver a activarla, el SDK reanuda la recopilación automáticamente. Los eventos, atributos de usuario y UTM llamados antes de que termine la recuperación no se conservan, y las interfaces con callback devuelven -2.
      • Para conocer el comportamiento de cada interfaz tras la desactivación, consulte Comportamiento mientras está desactivado.
    • Descripción del parámetro:
      • enabled: true para activar, false para desactivar.

Ejemplo de llamada

// enabled es el estado del interruptor que su aplicación decide según el consentimiento del usuario MTMAApi.getInstance(this).setDataCollectionEnabled(enabled);
              
              // enabled es el estado del interruptor que su aplicación decide según el consentimiento del usuario
MTMAApi.getInstance(this).setDataCollectionEnabled(enabled);

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

Consultar el interruptor de recopilación de datos

Definición de interfaz

  • isDataCollectionEnabled()
    • Descripción de la interfaz:
      • Consulta el interruptor de recopilación de datos de la MA AppKey actual. No envía ninguna solicitud de red ni desencadena un cambio o una recuperación.
    • Descripción de la devolución:
      • true significa activado y false, desactivado.
      • Antes de start, cuando aún no se ha determinado la AppKey: devuelve el valor predeterminado true, que no representa el estado de ninguna AppKey. Consúltelo después de start.
      • En un proceso no principal devuelve false, lo que solo indica que ese proceso no recopila datos y no representa el estado del interruptor del proceso principal.

Ejemplo de llamada

boolean enabled = MTMAApi.getInstance(this).isDataCollectionEnabled();
              
              boolean enabled = MTMAApi.getInstance(this).isDataCollectionEnabled();

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

Comportamiento mientras está desactivado

Se detiene mientras está desactivado

Interfaz / Capacidad Comportamiento mientras está desactivado
Informar eventos (onEvent) Se descartan en silencio, junto con los atributos adjuntos al evento.
Eventos predefinidos: inicio, cambio entre primer y segundo plano, inicio y fin de sesión, salida, actualización de la aplicación, estado del interruptor de notificaciones, clic en push, etc. No se generan. Se detiene el cronometraje de la sesión y no se actualizan marcas como primer inicio o primer día.
Todas las interfaces de atributos de usuario (property* y las interfaces de object_array) No se ejecutan; el callback devuelve -8. También devuelve -8 si la inicialización aún no ha terminado.
Establecer atributos UTM (setUtmProperties) Se descartan en silencio. Los UTM en caché se borran al desactivar y no se incorporan tras volver a activar.
Información del dispositivo: modelo, versión del sistema, pantalla, red, operador, identificadores de publicidad, etc. No se lee ni se informa, incluidos los campos controlables con setCollectControl.

Sigue disponible mientras está desactivado

Interfaz / Capacidad Comportamiento mientras está desactivado
start, getEuid, getMaRid Normal. La inicialización solo incluye los campos necesarios para el registro de identidad, sin características del dispositivo.
setUserIdentity Normal, con el callback habitual. No se generan eventos de registro.
setUserContact Normal, con el callback habitual.
setChannelValue, vinculación automática de AppPush Normal; las notificaciones push se entregan como de costumbre.
setDataCollectionEnabled, isDataCollectionEnabled Normal.
setCollectControl, setReportInterval, setMaxEventCacheCount, setNoActiveSessionEndDurationTime, configDebugMode Se pueden llamar. Mientras está desactivado no hay recopilación sobre la que actúen; tras volver a activar se aplican según lo configurado.

Al desactivar

  • Los datos generados antes del cambio se envían una vez de inmediato, sin reintentos si falla, y después se borra la caché local.
  • Los datos ya informados no se eliminan.

Solicitudes que se siguen enviando mientras está desactivado

  • Inicialización, registro de identidad (sin características del dispositivo), obtención de la configuración, vinculación del canal push y sincronización del estado del interruptor.

Push y mensajes

  • Las notificaciones push se entregan como de costumbre y pueden abrir la aplicación.
  • No se generan eventos de MA como el clic en push, por lo que no se cumplen las condiciones de journey que dependen de eventos de comportamiento de MA.
  • Los clics en notificaciones push o mensajes dentro de la aplicación no cuentan como conversión de mensajes de MA. Los registros de clics anteriores a la desactivación se borran y no se atribuyen tras volver a activar.

No controlado por este interruptor

  • Los acuses de entrega y de clic del propio canal push.
  • Los informes del propio AppPush SDK integrado de forma independiente.
  • Las interfaces REST de MA llamadas por el backend de su aplicación.
  • Este interruptor no sustituye la cancelación de la suscripción a push.

Consola y segmentos

  • Los detalles del usuario muestran el estado «Recopilación de datos», que es el último valor sincronizado con el servidor y puede tener retraso. Aparece vacío en una AppKey para la que nunca se ha establecido el interruptor.
  • En los segmentos se pueden seleccionar usuarios por «Recopilación de datos = Desactivada»: el usuario coincide si alguno de sus dispositivos está desactivado; los dispositivos que no han informado ningún estado no coinciden.

Control de adquisición de datos

setCollectControl establece el permiso de recopilación de campos concretos del dispositivo. Para detener por completo la recopilación de eventos, atributos de usuario, UTM y datos del dispositivo, utilice el Interruptor de recopilación de datos. Tras volver a activar la recopilación global, los permisos de campo anteriores siguen vigentes.

Versiones compatibles

Versión inicial compatible: 5.0.0

Definición de interfaz

  • setCollectControl(MTMACollectControl control)
    • Descripción de la interfaz: -Establecer permisos de colección. Si necesita activar o desactivar cierta recopilación de datos, llame a esta interfaz
    • Descripción del parámetro:
      • control: Configuración de permisos de colección; Las propiedades que no están establecidas explícitamente utilizan los siguientes valores predeterminados.
        • setCarrier(boolean enable): Si se debe recopilar información del operador, habilitado de forma predeterminada
        • setMacAddress(boolean enable): si se debe recopilar la dirección MAC, deshabilitada de forma predeterminada
        • setGAID(boolean enable): Si se debe recopilar GAID, cerrado de forma predeterminada
        • setOAID(boolean enable): Si se debe recopilar OAID, cerrado de forma predeterminada
        • setAAID(boolean enable): Ya sea para recolectar AAID, cerrado de forma predeterminada
        • setIMEI(boolean enable): Ya sea para recopilar IMEI, desactivado de forma predeterminada; Solo es compatible con Android 9 y versiones anteriores, la aplicación host debe declarar y obtener el permiso READ_PHONE_STATE.

Ejemplo de llamada

try { MTMACollectControl mtmaCollectControl = new MTMACollectControl(); mtmaCollectControl.setCarrier(true); mtmaCollectControl.setMacAddress(true); mtmaCollectControl.setGAID(true); mtmaCollectControl.setOAID(true); mtmaCollectControl.setIMEI(true); mtmaCollectControl.setAAID(true); MTMAApi.getInstance(this).setCollectControl(mtmaCollectControl); } catch (Throwable e) {e.printStackTrace(); }
              
              try {
MTMACollectControl mtmaCollectControl = new MTMACollectControl();
        mtmaCollectControl.setCarrier(true);
        mtmaCollectControl.setMacAddress(true);
        mtmaCollectControl.setGAID(true);
        mtmaCollectControl.setOAID(true);
        mtmaCollectControl.setIMEI(true);
        mtmaCollectControl.setAAID(true);
    MTMAApi.getInstance(this).setCollectControl(mtmaCollectControl);
} catch (Throwable e) {e.printStackTrace();
}

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

Establecer atributos de usuario

Establezca el valor del atributo de usuario. Si el atributo de usuario no existe, se creará automáticamente en segundo plano.

Sobrescribir y actualizar atributos de usuario

  • propertySet(final JSONObject properties, final CallBack callBack)
    • Descripción de la interfaz:
      • Sobrescritura por lotes y actualización de valores de atributos de usuario.
      • Solo se guardan los últimos datos informados, que cubren datos históricos, como el nivel de membresía del usuario.
      • El valor admite cadenas, números, valores booleanos, matrices de cadenas, JSONObject y JSONArray cuyos elementos son todos JSONObject.
    • Descripción del parámetro:
      • propiedades: propiedades del usuario
      • callBack: devolución de llamada de la interfaz
    • Descripción de la devolución:
      onCallBack(int code, String message)
      • código: código de retorno, 0 representa éxito, -1 representa error, consulte la descripción del código de error para obtener más detalles
      • mensaje: descripción del motivo
    • Ejemplo de llamada:
try {JSONObject properties = new JSONObject(); properties.put("your_property_name","your_property_value"); properties.put("your_property_name 2","your_property_value 2"); properties.put("your_property_name 3","your_property_value 3"); MTMAApi.getInstance(this).propertySet(properties, new CallBack() { @Override public void onCallBack(int code, String message) {}}); } catch (Throwable e) {e.printStackTrace(); }
              
              try {JSONObject properties = new JSONObject();
    properties.put("your_property_name","your_property_value");
    properties.put("your_property_name 2","your_property_value 2");
    properties.put("your_property_name 3","your_property_value 3");
    MTMAApi.getInstance(this).propertySet(properties, new CallBack() {
        @Override
        public void onCallBack(int code, String message) {}});
} catch (Throwable e) {e.printStackTrace();
}

            
Este bloque de código se muestra en una ventana flotante
  • propertySet(String property, Object value, CallBack callBack)
    • Descripción de la interfaz:
      • Una única anulación actualiza el valor de un atributo de usuario.
      • Solo se guardan los últimos datos informados, que cubren datos históricos, como el nivel de membresía del usuario.
      • Las reglas de tipo de valor son consistentes con el lote propertySet.
    • Descripción del parámetro:
      • propiedad: nombre de propiedad del usuario
      • valor: valor del atributo del usuario
      • callBack: devolución de llamada de la interfaz
    • Descripción de la devolución:
      onCallBack(int code, String message)
      • código: código de retorno, 0 representa éxito, -1 representa error, consulte la descripción del código de error para obtener más detalles
      • mensaje: descripción del motivo
    • Ejemplo de llamada:
MTMAApi.getInstance(this).propertySet("your_property_name","your_property_value", new CallBack() { @Override public void onCallBack(int code, String message) {}});
              
              MTMAApi.getInstance(this).propertySet("your_property_name","your_property_value", new CallBack() {
    @Override
    public void onCallBack(int code, String message) {}});

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

Actualizar los atributos del usuario de forma acumulativa

  • propertyIncrease(final Map<String, ? extends Number> properties, CallBack callBack)
    • Descripción de la interfaz:
      • Acumule la configuración de valores de los atributos del usuario y realice solicitudes por lotes
      • Acumular todos los datos reportados, como la cantidad de consumo acumulado.
      • Esta interfaz solo se puede llamar para atributos de usuario de tipo numérico; de lo contrario, se ignorará. Si el atributo de usuario no existía antes, el valor inicial se tratará como 0.
    • Descripción del parámetro:
      • propiedades: propiedades del usuario
      • callBack: devolución de llamada de la interfaz
    • Descripción de la devolución:
      onCallBack(int code, String message)
      • código: código de retorno, 0 representa éxito, -1 representa error, consulte la descripción del código de error para obtener más detalles
      • mensaje: descripción del motivo
    • Ejemplo de llamada:
Map<String,Number> properties = new HashMap(); properties.put("your_property_name",1); properties.put("your_property_name 2",2); properties.put("your_property_name 3",3); MTMAApi.getInstance(this).propertyIncrease(properties, new CallBack() { @Override public void onCallBack(int code, String message) {}});
              
              Map<String,Number> properties = new HashMap();
properties.put("your_property_name",1);
properties.put("your_property_name 2",2);
properties.put("your_property_name 3",3);
MTMAApi.getInstance(this).propertyIncrease(properties, new CallBack() {
    @Override
    public void onCallBack(int code, String message) {}});

            
Este bloque de código se muestra en una ventana flotante
  • propertyIncrease(final String property, final Number value, CallBack callBack)
    • Descripción de la interfaz:
      • Acumular configuración de valor de atributo de usuario, solicitud única
      • Acumular todos los datos reportados, como la cantidad de consumo acumulado.
      • Esta interfaz solo se puede llamar para atributos de usuario de tipo numérico; de lo contrario, se ignorará. Si el atributo de usuario no existía antes, el valor inicial se tratará como 0.
    • Descripción del parámetro:
      • propiedad: nombre de propiedad del usuario
      • valor: valor del atributo del usuario
      • callBack: devolución de llamada de la interfaz
    • Descripción de la devolución:
      onCallBack(int code, String message)
      • código: código de retorno, 0 representa éxito, -1 representa error, consulte la descripción del código de error para obtener más detalles
      • mensaje: descripción del motivo
    • Ejemplo de llamada:
MTMAApi.getInstance(this).propertyIncrease("your_property_name",1, new CallBack() { @Override public void onCallBack(int code, String message) {}});
              
              MTMAApi.getInstance(this).propertyIncrease("your_property_name",1, new CallBack() {
    @Override
    public void onCallBack(int code, String message) {}});

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

###Agregar atributos de usuario

  • propertyAdd(final String property, final String value, CallBack callBack)
    • Descripción de la interfaz:
      • Agregar el valor del atributo de usuario, solicitud única
      • Agregue continuamente elementos a la colección y almacene los elementos en la base de datos para su deduplicación. Si ABC ya existe, agrega CD, y finalmente será ABCD.
    • Descripción del parámetro:
      • propiedad: nombre de propiedad del usuario
      • valor: valor del atributo del usuario
      • callBack: devolución de llamada de la interfaz
    • Descripción de la devolución:
      onCallBack(int code, String message)
      • código: código de retorno, 0 representa éxito, -1 representa error, consulte la descripción del código de error para obtener más detalles
      • mensaje: descripción del motivo
    • Ejemplo de llamada:
MTMAApi.getInstance(this).propertyAdd("your_property_name","your_property_value", new CallBack() { @Override public void onCallBack(int code, String message) {}});
              
              MTMAApi.getInstance(this).propertyAdd("your_property_name","your_property_value", new CallBack() {
    @Override
    public void onCallBack(int code, String message) {}});

            
Este bloque de código se muestra en una ventana flotante
  • propertyAdd(final String property, final Set values, CallBack callBack)
    • Descripción de la interfaz:
      • Agregue el valor del atributo de usuario, agregando múltiples valores a la vez
      • Agregue continuamente elementos a la colección y almacene los elementos en la base de datos para su deduplicación. Si ABC ya existe, agrega CD, y finalmente será ABCD.
    • Descripción del parámetro:
      • propiedad: nombre de propiedad del usuario
      • valor: valor del atributo del usuario
      • callBack: devolución de llamada de la interfaz
    • Descripción de la devolución:
      onCallBack(int code, String message)
      • código: código de retorno, 0 representa éxito, -1 representa error, consulte la descripción del código de error para obtener más detalles
      • mensaje: descripción del motivo
    • Ejemplo de llamada:
Set<String> properties = new HashSet<>(); properties.add("your_property_value"); properties.add("your_property_value 2"); properties.add("your_property_value 3"); MTMAApi.getInstance(this).propertyAdd("your_property_name",properties, new CallBack() { @Override public void onCallBack(int code, String message) {}});
              
              Set<String> properties = new HashSet<>();
properties.add("your_property_value");
properties.add("your_property_value 2");
properties.add("your_property_value 3");
MTMAApi.getInstance(this).propertyAdd("your_property_name",properties, new CallBack() {
    @Override
    public void onCallBack(int code, String message) {}});

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

Manipular elementos object_array

Las siguientes interfaces son compatibles a partir de 5.5.0 y solo se utilizan para el atributo de usuario object_array. Los propertyAdd y propertyRemove originales todavía se utilizan para matrices de cadenas y el comportamiento permanece sin cambios.

  • updateObjectArrayProperty(String property, String identifierKey, Object identifierValue, JSONObject values, CallBack callBack)
    • Actualizar un subcampo de un elemento de objeto en función de un identificador único.
    • identifierValue admite cadenas o números limitados; values no puede modificar el campo de identificación.
    • Utilice JSONObject.NULL en values para eliminar el subcampo correspondiente.
JSONObject values = new JSONObject().put("enabled", false); MTMAApi.getInstance(this).updateObjectArrayProperty( "devices", "device_id", "device_1", values, callBack);
              
              JSONObject values = new JSONObject().put("enabled", false);
MTMAApi.getInstance(this).updateObjectArrayProperty(
        "devices", "device_id", "device_1", values, callBack);

            
Este bloque de código se muestra en una ventana flotante
  • addObjectArrayProperty(String property, JSONObject object, CallBack callBack)
    • Agregue un elemento de objeto no nulo a object_array.
JSONObject device = new JSONObject() .put("device_id", "device_2") .put("year", 2026); MTMAApi.getInstance(this).addObjectArrayProperty("devices", device, callBack);
              
              JSONObject device = new JSONObject()
        .put("device_id", "device_2")
        .put("year", 2026);
MTMAApi.getInstance(this).addObjectArrayProperty("devices", device, callBack);

            
Este bloque de código se muestra en una ventana flotante
  • removeObjectArrayProperty(String property, String identifierKey, Object identifierValue, CallBack callBack)
    • Eliminar elementos completos del objeto basándose en identificadores únicos.
MTMAApi.getInstance(this).removeObjectArrayProperty( "devices", "device_id", "device_2", callBack);
              
              MTMAApi.getInstance(this).removeObjectArrayProperty(
        "devices", "device_id", "device_2", callBack);

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

Eliminar atributos de usuario

  • propertyRemove(final String property, String values, final CallBack callBack)
    • Descripción de la interfaz:
      • Se eliminaron operaciones de valor en atributos de usuario.
      • Este valor es un elemento de colección y los elementos se almacenan en la base de datos para el procesamiento de deduplicación. Si ABCD ya existe, elimine D y finalmente es ABC.
    • Descripción del parámetro:
      • propiedad: nombre de propiedad del usuario
      • valor: valor del atributo del usuario
      • callBack: devolución de llamada de la interfaz
    • Descripción de la devolución:
      onCallBack(int code, String message)
      • código: código de retorno, 0 representa éxito, -1 representa error, consulte la descripción del código de error para obtener más detalles
      • mensaje: descripción del motivo
    • Ejemplo de llamada:
MTMAApi.getInstance(this).propertyRemove("your_property_name","your_property_value", new CallBack() { @Override public void onCallBack(int code, String message) {}});
              
              MTMAApi.getInstance(this).propertyRemove("your_property_name","your_property_value", new CallBack() {
    @Override
    public void onCallBack(int code, String message) {}});

            
Este bloque de código se muestra en una ventana flotante
  • propertyRemove(final String property, Set values, final CallBack callBack)
    • Descripción de la interfaz:
      • Eliminar el valor de los atributos del usuario y eliminar varios valores a la vez.
      • Este valor es un elemento de colección y los elementos se almacenan en la base de datos para el procesamiento de deduplicación. Si ABCD ya existe, se elimina el CD y finalmente es AB.
    • Descripción del parámetro:
      • propiedad: nombre de propiedad del usuario
      • valor: valor del atributo del usuario
      • callBack: devolución de llamada de la interfaz
    • Descripción de la devolución:
      onCallBack(int code, String message)
      • código: código de retorno, 0 representa éxito, -1 representa error, consulte la descripción del código de error para obtener más detalles
      • mensaje: descripción del motivo
    • Ejemplo de llamada:
Set<String> properties = new HashSet<>(); properties.add("your_property_value"); properties.add("your_property_value 2"); properties.add("your_property_value 3"); MTMAApi.getInstance(this).propertyRemove("your_property_name",properties, new CallBack() { @Override public void onCallBack(int code, String message) {}});
              
              Set<String> properties = new HashSet<>();
properties.add("your_property_value");
properties.add("your_property_value 2");
properties.add("your_property_value 3");
MTMAApi.getInstance(this).propertyRemove("your_property_name",properties, new CallBack() {
    @Override
    public void onCallBack(int code, String message) {}});

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

Eliminar atributos de usuario

Versiones compatibles

Versión inicial compatible: 5.0.0

Definición de interfaz

  • propertyDelete(final String property, final CallBack callBack)
    • Descripción de la interfaz:
      • Eliminar todos los valores de valor para un atributo de usuario
    • Descripción del parámetro:
      • propiedad: nombre de propiedad del usuario
      • callBack: devolución de llamada de la interfaz
    • Descripción de la devolución:
      onCallBack(int code, String message)
      • código: código de retorno, 0 representa éxito, -1 representa error, consulte la descripción del código de error para obtener más detalles
      • mensaje: descripción del motivo

Ejemplo de llamada

MTMAApi.getInstance(this).propertyDelete("your_property_name", new CallBack() { @Override public void onCallBack(int code, String message) {}});
              
              MTMAApi.getInstance(this).propertyDelete("your_property_name", new CallBack() {
    @Override
    public void onCallBack(int code, String message) {}});

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

Informe de incidentes

Versiones compatibles

Versión inicial compatible: 5.0.0

Definición de interfaz

  • onEvent(String eventKey, JSONObject properties)
    • Descripción de la interfaz:
      • Informe de incidentes
    • Descripción del parámetro:
      • eventKey: nombre del evento
      • propiedades: propiedades del evento, clave es el nombre de la propiedad, valor es el valor de la propiedad

Ejemplo de llamada

JSONObject properties = new JSONObject(); properties.put("key1","v1"); properties.put("key2","v2"); MTMAApi.getInstance(this).onEvent("your_event_name",properties );
              
              JSONObject properties = new JSONObject();
properties.put("key1","v1");
properties.put("key2","v2");
MTMAApi.getInstance(this).onEvent("your_event_name",properties );

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

Código de error

código valor descripción
CODE_SUCCEED 0 Éxito
CÓDIGO_DESCONOCIDO -1 Error desconocido
CODE_START_FAIL -2 La inicialización no se completa, la inicialización falla, se inicializa en un proceso no principal o la configuración de MA de la que depende la operación actual no está lista
CÓDIGO_VÁLIDO -3 Error en la verificación de parámetros
CÓDIGO_ENABLE -4 Proyecto MA cerrado
CÓDIGO_REGISTRATIONID -5 MA RID desaparecido o ilegal
CÓDIGO_CAMBIAR -6 La configuración del proyecto MA se ha cambiado y es necesario volver a llamarla start
CODE_COLLECTION_DISABLED -8 La recopilación de datos está desactivada y esta operación de recopilación normal no se ejecutó; disponible a partir de 5.5.2
Icon Solid Transparent White Qiyu
Contactar con ventas