Logo Site EngageLab Mark Colored Transparent
Documentation

API du SDK Android

Description de l'interface du SDK

  • MTMAApi : interface d'exécution de MA.
  • MTMAConfig : configuration d'initialisation transmise à start.

Instructions avant l’appel

  • start ne peut être appelé que dans le processus principal de l'application hôte.
  • À l'exception de l'interface de configuration qui peut être définie avant l'initialisation, les autres API métier MA ne peuvent être appelées qu'après une initialisation réussie.
  • Il est recommandé que toutes les API externes MA soient appelées dans le processus principal. Les processus non principaux ne partagent pas l'état d'initialisation du processus principal et les appels ne sont pas transmis au processus principal.
  • Lorsqu'un processus non principal appelle l'API métier, l'interface avec rappel renvoie CODE_START_FAIL (-2), getEuid() et getMaRid() renvoient une valeur nulle, et l'interface métier sans rappel ne sera pas exécutée.
  • configDebugMode, setCollectControl, setReportInterval, setMaxEventCacheCount et setNoActiveSessionEndDurationTime sont des configurations en cours ; les appeler dans un processus non principal ne modifiera pas la configuration du processus principal MA.

Obtenir la version du SDK

Versions prises en charge

Version de départ prise en charge : 5.5.0

Définition du champ

  • MTMAApi.SDK_VERSION_CODE : numéro de version numérique du SDK MA.
  • MTMAApi.SDK_VERSION_NAME : numéro de version de la chaîne 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;

            
Afficher ce bloc de code dans la fenêtre flottante

Définir le mode de débogage

Versions prises en charge

Version de départ prise en charge : 5.5.0

Définition de l'interface

  • configDebugMode(boolean enable)
    • Activer ou désactiver les journaux de débogage MA SDK.
    • Il est recommandé de le définir avant d'appeler start, et il est recommandé de le désactiver dans la version finale.
MTMAApi.configDebugMode(true);
              
              MTMAApi.configDebugMode(true);

            
Afficher ce bloc de code dans la fenêtre flottante

Activer la fonction MA

Versions prises en charge

Version de départ prise en charge : 5.5.0

Définition de l'interface

  • start(MTMAConfig config, MTMAInitResultCallback callback)
    • Description de l'interface : utilisez MA AppKey pour initialiser la version indépendante de MA SDK.
    • config : configuration d'initialisation, de type MTMAConfig.
      • MTMAConfig(String appKey) : définissez MA AppKey.
      • MTMAConfig(String appKey, UserIdentity userIdentity) : définissez simultanément MA AppKey et l'ID utilisateur.
      • config.dataCollectionEnabled(boolean enabled) : facultatif. Appelé sur l'objet MTMAConfig, il définit, pour cet appel à start, l'interrupteur de collecte de données de la MA AppKey actuelle. Pris en charge à partir de la version 5.5.2.
        • true active la collecte, false la désactive. Une fois appelé, la valeur transmise s'applique à chaque start et est enregistrée sur l'appareil. Transmettez le résultat de consentement actuel de l'utilisateur plutôt qu'une valeur codée en dur.
        • Voir Interrupteur de collecte de données.
    • callback : Rappel du résultat d'initialisation.
    • MTMAInitResult :
      • isSuccess() : indique si l'initialisation a réussi.
      • getCode() : Code de résultat, 0 indique le succès.
      • getMessage() : Description du résultat.
      • getEuid() : EUID obtenu après une initialisation réussie.
      • getMaRid() : MA RID obtenu après initialisation réussie.

Exemple d'appel

MTMAConfig config = new MTMAConfig("your MA AppKey"); // Facultatif (à partir de 5.5.2) : définir l'interrupteur de collecte de données selon le consentement actuel de l'utilisateur ; activé par défaut s'il n'a jamais été défini // 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");
// Facultatif (à partir de 5.5.2) : définir l'interrupteur de collecte de données selon le consentement actuel de l'utilisateur ; activé par défaut s'il n'a jamais été défini
// 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();
        }
    }
});

            
Afficher ce bloc de code dans la fenêtre flottante

Changer AppKey au moment de l'exécution

Une fois le dernier rappel d'initialisation terminé, start peut être rappelé avec le nouveau MTMAConfig. Les autres API métier MA sont temporairement indisponibles pendant le changement. Il n'y a pas de repli automatique vers l'ancienne AppKey lorsque l'initialisation de la nouvelle AppKey échoue.

Interface obsolète

À partir de la version 5.5.0, les interfaces suivantes sont obsolètes :

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

Veuillez plutôt utiliser start(MTMAConfig config, MTMAInitResultCallback callback).

Définir l'ID utilisateur

Il est recommandé de configurer cette interface lorsque l'utilisateur se connecte et fournit des informations pertinentes pour obtenir l'EUID correspondant à l'utilisateur

Versions prises en charge

Version de départ prise en charge : 5.0.0

Définition de l'interface

  • _setUserIdentity(UserIdentity userIdentity, CallBack callBack) _
    • Description des interfaces : -Définir l'identification de l'utilisateur, telle que le numéro de carte de membre de l'utilisateur.
    • Description du paramètre :
      • userIdentity : identification de l'appelant
        • setUserId(String userId) : ne peut pas être vide après suppression des espaces de début et de fin, jusqu'à 255 caractères Unicode ; ne peut pas être 0, null, undefined, nan (en ignorant la casse)
        • setAnonymousId(String anonymousId) : ne peut pas être vide après la suppression des espaces de début et de fin, jusqu'à 256 caractères Unicode
        • setEmail(String email) : ne peut pas être vide, jusqu'à 256 caractères Unicode ; doit contenir et ne peut contenir qu'un seul @, @ ne peut pas être vide avant et après, et ne peut pas contenir d'espaces, de nouvelles lignes ou de tabulations ; pris en charge à partir de 5.5.0
        • setPhone(String phone) : doit être conforme au format E.164, commençant par +, le premier chiffre de l'indicatif du pays est de 1 à 9, puis contient de 1 à 14 chiffres ; pris en charge à partir de 5.5.0
      • callBack : rappel de l'interface
    • Description du retour :
      onCallBack(int code, String message)
      • code : code retour, 0 représente le succès, -1 représente l'échec, voir la description du paramètre du message pour plus de détails

Exemple d'appel

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);
                    }
                });

            
Afficher ce bloc de code dans la fenêtre flottante

Lorsque la vérification du champ ID utilisateur échoue, aucune demande réseau n'est envoyée et code = -3 est renvoyé via le rappel.

Définir les informations de contact de l'utilisateur

Lorsque les coordonnées de l'utilisateur changent, vous pouvez utiliser cette interface pour mettre à jour les « coordonnées » de l'utilisateur.

Versions prises en charge

Version de départ prise en charge : 5.0.0

Définition de l'interface

  • setUserContact(JSONObject contacts, CallBack callBack)
    • Description des interfaces : -Définissez les "coordonnées" de l'utilisateur.
    • Description du paramètre :
      • contacts : définissez plusieurs méthodes de contact. Key est le nom de la méthode de contact et value est la valeur de la méthode de contact. Actuellement, quatre méthodes de contact sont prises en charge : e-mail, mobile_phone, landline_phone et WhatsApp_phone.
      • callBack : rappel de l'interface
    • Description du retour :
      onCallBack(int code, String message)
      • code : code retour, 0 représente le succès, -1 représente l'échec, voir la description du paramètre du message pour plus de détails
      • message : description de la raison

Exemple d'appel

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);
                    }
                });

            
Afficher ce bloc de code dans la fenêtre flottante

Obtenir l'EUID

Versions prises en charge

Version de départ prise en charge : 5.0.0

Définition de l'interface

  • getEuid()
    • Description des interfaces :
      • Obtenez l'EUID, qui représente l'identifiant unique de l'utilisateur. Seule la valeur actuelle est renvoyée lorsque l'initialisation réussit et la valeur nulle est renvoyée dans les autres états.

Exemple d'appel

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

            
Afficher ce bloc de code dans la fenêtre flottante

Obtenez MA RID

Versions prises en charge

Version de départ prise en charge : 5.5.0

Définition de l'interface

  • getMaRid()
    • Obtenez le MA RID actuel. Seule la valeur actuelle est renvoyée lorsque l'initialisation réussit et la valeur nulle est renvoyée dans les autres états.
String maRid = MTMAApi.getInstance(this).getMaRid();
              
              String maRid = MTMAApi.getInstance(this).getMaRid();

            
Afficher ce bloc de code dans la fenêtre flottante

Définir l'ID du contact de la chaîne

Versions prises en charge

Version de départ prise en charge : 5.5.0

Définition de l'interface

  • setChannelValue(long channelId, List values, CallBack callBack)
    • Description de l'interface : définir l'ID du contact du canal. Le canal AppPush est automatiquement lié par le SDK et il n'est pas nécessaire d'appeler ce paramètre d'interface.
    • Description du paramètre :
      • channelId : l'ID du canal Push tiers configuré sur la console MA doit être supérieur à 0.
      • values : la liste de valeurs de l'ID de contact du canal (tel que RID ou Token) ne peut pas être vide et les éléments de la liste ne peuvent pas être vides.
      • callBack : rappel du résultat, code == 0 indique le succès.
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
    }
});

            
Afficher ce bloc de code dans la fenêtre flottante

Définir l'intervalle des données de rapport

Il prend effet avec l'interface setMaxEventCacheCount et sera signalé tant qu'une des conditions est remplie.

Versions prises en charge

Version de départ prise en charge : 5.0.0

Définition de l'interface

  • setReportInterval(int interval)
    • Description des interfaces :
      • Définissez l'intervalle des données de rapport. Lorsque cette interface n'est pas appelée, la valeur par défaut est de 10 secondes pour signaler les données d'événement.
      • Cache mémoire d'intervalle de rapport, qui doit être appelé à chaque cycle de vie de l'application pour prendre effet -Description des paramètres
      • intervalle de rapport intervalle, unité s (secondes)

Exemple d'appel

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

            
Afficher ce bloc de code dans la fenêtre flottante

Définir la limite supérieure du cache d'événements

Il prend effet avec l'interface setReportInterval et sera signalé tant qu'une des conditions est remplie.

Versions prises en charge

Version de départ prise en charge : 5.0.0

Définition de l'interface

  • setMaxEventCacheCount(int count)
    • Description des interfaces :
      • Définissez la limite supérieure du cache d'événements, la valeur par défaut est 50, le maximum ne peut pas dépasser 500
      • Lorsque la quantité de cache est dépassée, toutes les données seront signalées -Description des paramètres
      • count La limite supérieure du nombre d'éléments du cache d'événements

Exemple d'appel

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

            
Afficher ce bloc de code dans la fenêtre flottante

Définir le délai d'expiration de la session

Versions prises en charge

Version de départ prise en charge : 5.0.0

Définition de l'interface

  • setNoActiveSessionEndDurationTime(int duration)
    • Description des interfaces :
      • Lorsque l'application est placée en arrière-plan, le délai d'expiration de la session commence à être calculé. Si la durée définie est dépassée (30 minutes par défaut), la session se terminera. -Description des paramètres
      • durée durée d'expiration, unité s (secondes)

Exemple d'appel

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

            
Afficher ce bloc de code dans la fenêtre flottante

Définir les attributs UTM

Versions prises en charge

Version de départ prise en charge : 5.0.0

Définition de l'interface

  • setUtmProperties(UtmProperties utmProperties)
    • Description des interfaces :
      • Définissez l'attribut UTM. Si le développeur peut identifier la publicité à partir de laquelle l'utilisateur accède à l'application, il est recommandé de définir les informations UTM. Nous transmettrons ce paramètre lors du rapport de l'événement.
    • Description du paramètre :
      • Objet de propriétés UTM utmProperties
      • source de la campagne utm_source
      • support de campagne utm_medium
      • terme de campagne utm_term
      • contenu de la campagne utm_content
      • nom de la campagne utm_campaign
      • utm_id ID de la campagne

Exemple d'appel

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

            
Afficher ce bloc de code dans la fenêtre flottante

Interrupteur de collecte de données

Versions prises en charge

Version de départ prise en charge : 5.5.2

Si votre application doit contrôler la collecte en fonction du consentement de l'utilisateur, utilisez l'interrupteur de collecte de données. Sinon, aucune modification n'est nécessaire : la collecte est activée par défaut et le comportement reste identique à celui d'avant la mise à niveau.

L'interrupteur est enregistré séparément pour chaque MA AppKey. Lors de l'initialisation, transmettez dataCollectionEnabled de façon dynamique selon l'état de consentement de l'utilisateur. Ne le codez pas en dur, sinon chaque initialisation réinitialiserait l'état à cette valeur fixe. Lorsque l'utilisateur modifie son choix en cours d'exécution, appelez setDataCollectionEnabled après la réussite de l'initialisation. Ces deux appels doivent être effectués dans le processus principal.

Définir l'interrupteur de collecte de données

Définition de l'interface

  • setDataCollectionEnabled(boolean enabled)
    • Description de l'interface :
      • Définit l'interrupteur de collecte de données de la MA AppKey actuelle. À appeler dans le processus principal, après la réussite de l'initialisation.
      • Prend effet immédiatement et est enregistré sur l'appareil, sans attendre la fin d'une requête réseau.
      • Si la valeur est identique à l'état actuel, le traitement de désactivation ou de reprise n'est pas réexécuté et les statistiques de démarrage et de session ne sont pas affectées.
      • Après réactivation, le SDK reprend automatiquement la collecte. Les événements, attributs utilisateur et UTM appelés avant la fin de la reprise ne sont pas conservés, et les interfaces avec callback renvoient -2.
      • Pour le comportement de chaque interface après la désactivation, voir Comportement pendant la désactivation.
    • Description du paramètre :
      • enabled : true pour activer, false pour désactiver.

Exemple d'appel

// enabled est l'état de l'interrupteur que votre application détermine selon le consentement de l'utilisateur MTMAApi.getInstance(this).setDataCollectionEnabled(enabled);
              
              // enabled est l'état de l'interrupteur que votre application détermine selon le consentement de l'utilisateur
MTMAApi.getInstance(this).setDataCollectionEnabled(enabled);

            
Afficher ce bloc de code dans la fenêtre flottante

Consulter l'interrupteur de collecte de données

Définition de l'interface

  • isDataCollectionEnabled()
    • Description de l'interface :
      • Consulte l'interrupteur de collecte de données de la MA AppKey actuelle. Aucune requête réseau n'est envoyée et aucun basculement ni reprise n'est déclenché.
    • Description du retour :
      • true signifie activé, false désactivé.
      • Avant start, lorsque l'AppKey n'est pas encore déterminée : renvoie la valeur par défaut true, qui ne représente l'état d'aucune AppKey. Effectuez la consultation après start.
      • Dans un processus non principal, renvoie false, ce qui indique seulement que ce processus ne collecte pas de données et ne représente pas l'état de l'interrupteur du processus principal.

Exemple d'appel

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

            
Afficher ce bloc de code dans la fenêtre flottante

Comportement pendant la désactivation

Arrêté pendant la désactivation

Interface / Capacité Comportement pendant la désactivation
Signaler des événements (onEvent) Ignorés silencieusement, ainsi que les attributs associés à l'événement.
Événements prédéfinis : démarrage, passage au premier plan ou à l'arrière-plan, début et fin de session, sortie, mise à jour de l'application, état de l'interrupteur de notification, clic sur un push, etc. Non générés. Le chronométrage de la session s'arrête et les marqueurs tels que premier démarrage ou premier jour ne sont pas mis à jour.
Toutes les interfaces d'attributs utilisateur (property* et les interfaces object_array) Non exécutées ; le callback renvoie -8, y compris lorsque l'initialisation n'est pas encore terminée.
Définir les attributs UTM (setUtmProperties) Ignorés silencieusement. Les UTM en cache sont effacés lors de la désactivation et ne sont pas repris après la réactivation.
Informations sur l'appareil : modèle, version du système, écran, réseau, opérateur, identifiants publicitaires, etc. Ni lues ni signalées, y compris les champs contrôlables par setCollectControl.

Toujours disponible pendant la désactivation

Interface / Capacité Comportement pendant la désactivation
start, getEuid, getMaRid Normal. L'initialisation ne transmet que les champs nécessaires à l'enregistrement de l'identité, sans caractéristiques de l'appareil.
setUserIdentity Normal, le callback est appelé comme d'habitude. Aucun événement d'inscription n'est généré.
setUserContact Normal, le callback est appelé comme d'habitude.
setChannelValue, liaison automatique d'AppPush Normal, les notifications push sont distribuées comme d'habitude.
setDataCollectionEnabled, isDataCollectionEnabled Normal.
setCollectControl, setReportInterval, setMaxEventCacheCount, setNoActiveSessionEndDurationTime, configDebugMode Peuvent être appelées. Pendant la désactivation, il n'y a aucune collecte sur laquelle agir ; après la réactivation, les réglages s'appliquent.

Lors de la désactivation

  • Les données générées avant le basculement sont envoyées une fois immédiatement, sans nouvelle tentative en cas d'échec, puis le cache local est effacé.
  • Les données déjà signalées ne sont pas supprimées.

Requêtes toujours envoyées pendant la désactivation

  • Initialisation, enregistrement de l'identité (sans caractéristiques de l'appareil), récupération de la configuration, liaison du canal push, synchronisation de l'état de l'interrupteur.

Push et messages

  • Les notifications push sont distribuées comme d'habitude et peuvent ouvrir l'application.
  • Les événements MA tels que le clic sur un push ne sont pas générés ; les conditions de parcours qui dépendent d'événements comportementaux MA ne sont donc pas remplies.
  • Les clics sur les notifications push ou les messages in-app ne sont pas comptabilisés dans les conversions de messages MA. Les enregistrements de clics antérieurs à la désactivation sont effacés et ne sont plus attribués après la réactivation.

Non contrôlé par cet interrupteur

  • Les accusés de distribution et de clic du canal push lui-même.
  • Les remontées du SDK AppPush intégré séparément.
  • Les interfaces REST MA appelées par le backend de votre application.
  • Cet interrupteur ne remplace pas le désabonnement aux notifications push.

Console et segments

  • Les détails de l'utilisateur affichent l'état « Collecte de données », c'est-à-dire la dernière valeur synchronisée avec le serveur, qui peut être en retard. Il est vide pour une AppKey dont l'interrupteur n'a jamais été défini.
  • Dans les segments, vous pouvez sélectionner des utilisateurs avec « Collecte de données = Désactivée » : un utilisateur correspond dès qu'un de ses appareils est désactivé ; les appareils n'ayant signalé aucun état ne correspondent pas.

Contrôle d'acquisition de données

setCollectControl définit l'autorisation de collecte de champs précis de l'appareil. Pour arrêter globalement la collecte des événements, des attributs utilisateur, des UTM et des données de l'appareil, utilisez l'Interrupteur de collecte de données. Après la réactivation de la collecte globale, les autorisations de champ précédentes restent en vigueur.

Versions prises en charge

Version de départ prise en charge : 5.0.0

Définition de l'interface

  • setCollectControl(MTMACollectControl control)
    • Description des interfaces : -Définir les autorisations de collecte. Si vous devez activer/désactiver certaines collectes de données, veuillez appeler cette interface
    • Description du paramètre :
      • control : paramètres d'autorisation de collecte ; les propriétés qui ne sont pas explicitement définies utilisent les valeurs par défaut suivantes
        • setCarrier(boolean enable) : s'il faut collecter des informations sur l'opérateur, activé par défaut
        • setMacAddress(boolean enable) : s'il faut collecter l'adresse MAC, désactivé par défaut
        • setGAID(boolean enable) : s'il faut collecter le GAID, fermé par défaut
        • setOAID(boolean enable) : s'il faut collecter l'OAID, fermé par défaut
        • setAAID(boolean enable) : s'il faut collecter l'AAID, fermé par défaut
        • setIMEI(boolean enable) : s'il faut collecter l'IMEI, désactivé par défaut ; Uniquement pris en charge par Android 9 et versions antérieures, l'application hôte doit déclarer et obtenir l'autorisation READ_PHONE_STATE.

Exemple d'appel

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();
}

            
Afficher ce bloc de code dans la fenêtre flottante

Définir les attributs utilisateur

Définissez la valeur de l'attribut utilisateur. Si l'attribut utilisateur n'existe pas, il sera automatiquement créé en arrière-plan.

Écraser et mettre à jour les attributs utilisateur

  • propertySet(final JSONObject properties, final CallBack callBack)
    • Description des interfaces :
      • Écrasement par lots et mise à jour des valeurs d'attribut utilisateur
      • Seules les dernières données signalées sont enregistrées, couvrant les données historiques, telles que le niveau d'adhésion des utilisateurs.
      • La valeur prend en charge les chaînes, les nombres, les valeurs booléennes, les tableaux de chaînes, JSONObject et JSONArray dont les éléments sont tous JSONObject.
    • Description du paramètre :
      • propriétés : propriétés utilisateur
      • callBack : rappel de l'interface
    • Description du retour :
      onCallBack(int code, String message)
      • code : code retour, 0 représente le succès, -1 représente l'échec, voir la description du code d'erreur pour plus de détails
      • message : description de la raison
    • Exemple d'appel :
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();
}

            
Afficher ce bloc de code dans la fenêtre flottante
  • propertySet(String property, Object value, CallBack callBack)
    • Description des interfaces :
      • Un seul remplacement met à jour la valeur d'un attribut utilisateur
      • Seules les dernières données signalées sont enregistrées, couvrant les données historiques, telles que le niveau d'adhésion des utilisateurs.
      • Les règles de type valeur sont cohérentes avec le lot propertySet.
    • Description du paramètre :
      • property : nom de la propriété utilisateur
      • valeur : valeur de l'attribut utilisateur
      • callBack : rappel de l'interface
    • Description du retour :
      onCallBack(int code, String message)
      • code : code retour, 0 représente le succès, -1 représente l'échec, voir la description du code d'erreur pour plus de détails
      • message : description de la raison
    • Exemple d'appel :
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) {}});

            
Afficher ce bloc de code dans la fenêtre flottante

Mettre à jour les attributs des utilisateurs de manière cumulative

  • propertyIncrease(final Map<String, ? extends Number> properties, CallBack callBack)
    • Description des interfaces :
      • Accumuler les paramètres de valeur des attributs utilisateur et effectuer des demandes par lots
      • Accumulez toutes les données déclarées, telles que le montant de la consommation accumulée.
      • Cette interface ne peut être appelée que pour des attributs utilisateur de type numérique, sinon elle sera ignorée. Si l'attribut utilisateur n'existe pas auparavant, la valeur initiale sera traitée comme 0.
    • Description du paramètre :
      • propriétés : propriétés utilisateur
      • callBack : rappel de l'interface
    • Description du retour :
      onCallBack(int code, String message)
      • code : code retour, 0 représente le succès, -1 représente l'échec, voir la description du code d'erreur pour plus de détails
      • message : description de la raison
    • Exemple d'appel :
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) {}});

            
Afficher ce bloc de code dans la fenêtre flottante
  • propertyIncrease(final String property, final Number value, CallBack callBack)
    • Description des interfaces :
      • Accumuler les paramètres de valeur d'attribut utilisateur, demande unique
      • Accumulez toutes les données déclarées, telles que le montant de la consommation accumulée.
      • Cette interface ne peut être appelée que pour des attributs utilisateur de type numérique, sinon elle sera ignorée. Si l'attribut utilisateur n'existe pas auparavant, la valeur initiale sera traitée comme 0.
    • Description du paramètre :
      • property : nom de la propriété utilisateur
      • valeur : valeur de l'attribut utilisateur
      • callBack : rappel de l'interface
    • Description du retour :
      onCallBack(int code, String message)
      • code : code retour, 0 représente le succès, -1 représente l'échec, voir la description du code d'erreur pour plus de détails
      • message : description de la raison
    • Exemple d'appel :
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) {}});

            
Afficher ce bloc de code dans la fenêtre flottante

###Ajouter les attributs utilisateur

  • propertyAdd(final String property, final String value, CallBack callBack)
    • Description des interfaces :
      • Ajouter la valeur de l'attribut utilisateur, requête unique
      • Ajoutez continuellement des éléments à la collection et stockez les éléments dans la base de données pour la déduplication. Si ABC existe déjà, ajoutez CD, et finalement ce sera ABCD.
    • Description du paramètre :
      • property : nom de la propriété utilisateur
      • valeur : valeur de l'attribut utilisateur
      • callBack : rappel de l'interface
    • Description du retour :
      onCallBack(int code, String message)
      • code : code retour, 0 représente le succès, -1 représente l'échec, voir la description du code d'erreur pour plus de détails
      • message : description de la raison
    • Exemple d'appel :
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) {}});

            
Afficher ce bloc de code dans la fenêtre flottante
  • propertyAdd(final String property, final Set values, CallBack callBack)
    • Description des interfaces :
      • Ajouter la valeur de l'attribut utilisateur, en ajoutant plusieurs valeurs à la fois
      • Ajoutez continuellement des éléments à la collection et stockez les éléments dans la base de données pour la déduplication. Si ABC existe déjà, ajoutez CD, et finalement ce sera ABCD.
    • Description du paramètre :
      • property : nom de la propriété utilisateur
      • valeur : valeur de l'attribut utilisateur
      • callBack : rappel de l'interface
    • Description du retour :
      onCallBack(int code, String message)
      • code : code retour, 0 représente le succès, -1 représente l'échec, voir la description du code d'erreur pour plus de détails
      • message : description de la raison
    • Exemple d'appel :
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) {}});

            
Afficher ce bloc de code dans la fenêtre flottante

Manipuler les éléments object_array

Les interfaces suivantes sont prises en charge à partir de la version 5.5.0 et sont utilisées uniquement pour l'attribut utilisateur object_array. Les propertyAdd et propertyRemove d'origine sont toujours utilisés pour les tableaux de chaînes et le comportement reste inchangé.

  • updateObjectArrayProperty(String property, String identifierKey, Object identifierValue, JSONObject values, CallBack callBack)
    • Mettre à jour un sous-champ d'un élément d'objet en fonction d'un identifiant unique.
    • identifierValue prend en charge les chaînes ou les nombres limités ; values ne peut pas modifier le champ d'identification.
    • Utilisez JSONObject.NULL dans values pour supprimer le sous-champ correspondant.
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);

            
Afficher ce bloc de code dans la fenêtre flottante
  • addObjectArrayProperty(String property, JSONObject object, CallBack callBack)
    • Ajoutez un élément d'objet non nul à 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);

            
Afficher ce bloc de code dans la fenêtre flottante
  • removeObjectArrayProperty(String property, String identifierKey, Object identifierValue, CallBack callBack)
    • Supprimez des éléments d'objet entiers en fonction d'identifiants uniques.
MTMAApi.getInstance(this).removeObjectArrayProperty( "devices", "device_id", "device_2", callBack);
              
              MTMAApi.getInstance(this).removeObjectArrayProperty(
        "devices", "device_id", "device_2", callBack);

            
Afficher ce bloc de code dans la fenêtre flottante

Supprimer les attributs utilisateur

  • propertyRemove(final String property, String values, final CallBack callBack)
    • Description des interfaces :
      • Suppression des opérations de valeur sur les attributs utilisateur.
      • Cette valeur est un élément de collection et les éléments sont stockés dans la base de données pour le traitement de la déduplication. Si ABCD existe déjà, supprimez D, et finalement c'est ABC.
    • Description du paramètre :
      • property : nom de la propriété utilisateur
      • valeur : valeur de l'attribut utilisateur
      • callBack : rappel de l'interface
    • Description du retour :
      onCallBack(int code, String message)
      • code : code retour, 0 représente le succès, -1 représente l'échec, voir la description du code d'erreur pour plus de détails
      • message : description de la raison
    • Exemple d'appel :
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) {}});

            
Afficher ce bloc de code dans la fenêtre flottante
  • propertyRemove(final String property, Set values, final CallBack callBack)
    • Description des interfaces :
      • Supprimez la valeur des attributs utilisateur et supprimez plusieurs valeurs à la fois.
      • Cette valeur est un élément de collection et les éléments sont stockés dans la base de données pour le traitement de la déduplication. Si ABCD existe déjà, CD est supprimé et finalement c'est AB.
    • Description du paramètre :
      • property : nom de la propriété utilisateur
      • valeur : valeur de l'attribut utilisateur
      • callBack : rappel de l'interface
    • Description du retour :
      onCallBack(int code, String message)
      • code : code retour, 0 représente le succès, -1 représente l'échec, voir la description du code d'erreur pour plus de détails
      • message : description de la raison
    • Exemple d'appel :
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) {}});

            
Afficher ce bloc de code dans la fenêtre flottante

Supprimer les attributs utilisateur

Versions prises en charge

Version de départ prise en charge : 5.0.0

Définition de l'interface

  • propertyDelete(final String property, final CallBack callBack)
    • Description des interfaces :
      • Supprimer toutes les valeurs d'un attribut utilisateur
    • Description du paramètre :
      • property : nom de la propriété utilisateur
      • callBack : rappel de l'interface
    • Description du retour :
      onCallBack(int code, String message)
      • code : code retour, 0 représente le succès, -1 représente l'échec, voir la description du code d'erreur pour plus de détails
      • message : description de la raison

Exemple d'appel

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) {}});

            
Afficher ce bloc de code dans la fenêtre flottante

Rapport d'incident

Versions prises en charge

Version de départ prise en charge : 5.0.0

Définition de l'interface

  • onEvent(String eventKey, JSONObject properties)
    • Description des interfaces :
      • Reporting d'incidents
    • Description du paramètre :
      • eventKey : nom de l'événement
      • propriétés : propriétés de l'événement, Key est le nom de la propriété, value est la valeur de la propriété

Exemple d'appel

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

            
Afficher ce bloc de code dans la fenêtre flottante

Code d'erreur

codes valeur descriptif
CODE_SUCCEED 0 Succès
CODE_INCONNU -1 Erreur inconnue
CODE_START_FAIL -2 L'initialisation n'est pas terminée, l'initialisation échoue, est initialisée dans un processus non principal ou la configuration MA dont dépend l'opération en cours n'est pas prête
CODE_VALID -3 La vérification des paramètres a échoué
CODE_ENABLE -4 Projet de maîtrise clôturé
CODE_REGISTRATIONID -5 MA RID manquant ou illégal
CODE_COMMUTATEUR -6 La configuration du projet MA a été modifiée et doit être rappelée start
CODE_COLLECTION_DISABLED -8 La collecte de données est désactivée et cette opération de collecte ordinaire n'a pas été exécutée ; disponible à partir de 5.5.2
Icon Solid Transparent White Qiyu
Contacter l'équipe