API SDK Android

Deskripsi antarmuka SDK

  • MTMAApi: antarmuka runtime MA.
  • MTMAConfig: konfigurasi inisialisasi yang diteruskan ke start.

Petunjuk sebelum pemanggilan

  • start hanya dapat dipanggil dalam proses utama aplikasi host.
  • Kecuali untuk antarmuka konfigurasi yang boleh diatur sebelum inisialisasi, API bisnis MA lainnya hanya dapat dipanggil setelah inisialisasi berhasil.
  • Direkomendasikan agar semua API eksternal MA dipanggil dalam proses utama. Proses non-utama tidak berbagi status inisialisasi dengan proses utama, dan panggilan tidak diteruskan ke proses utama.
  • Ketika proses non-utama memanggil API bisnis, antarmuka dengan panggilan balik mengembalikan CODE_START_FAIL (-2), getEuid() dan getMaRid() mengembalikan nilai nol, dan antarmuka bisnis tanpa panggilan balik tidak akan dijalankan.
  • configDebugMode, setCollectControl, setReportInterval, setMaxEventCacheCount dan setNoActiveSessionEndDurationTime adalah konfigurasi dalam proses; memanggil mereka dalam proses non-utama tidak akan mengubah konfigurasi proses utama MA.

Dapatkan versi SDK

Versi yang didukung

Versi awal yang didukung: 5.5.0

Definisi bidang

  • MTMAApi.SDK_VERSION_CODE: nomor versi digital MA SDK.
  • MTMAApi.SDK_VERSION_NAME: Nomor versi string 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;

            
Tampilkan blok kode ini di jendela mengambang

Setel mode debug

Versi yang didukung

Versi awal yang didukung: 5.5.0

Definisi antarmuka

  • configDebugMode(boolean enable)
    • Mengaktifkan atau menonaktifkan log debug MA SDK.
    • Disarankan untuk mengaturnya sebelum memanggil start, dan disarankan untuk mematikannya di versi rilis.
MTMAApi.configDebugMode(true);
              
              MTMAApi.configDebugMode(true);

            
Tampilkan blok kode ini di jendela mengambang

Aktifkan fungsi MA

Versi yang didukung

Versi awal yang didukung: 5.5.0

Definisi antarmuka

-start(MTMAConfig config, MTMAInitResultCallback callback)

  • Deskripsi antarmuka: Gunakan MA AppKey untuk menginisialisasi versi independen MA SDK.
  • config: Konfigurasi inisialisasi, bertipe MTMAConfig.
    • MTMAConfig(String appKey): Setel MA AppKey.
    • MTMAConfig(String appKey, UserIdentity userIdentity): Mengatur MA AppKey dan ID pengguna secara bersamaan.
    • config.dataCollectionEnabled(boolean enabled): Opsional. Dipanggil pada objek MTMAConfig untuk mengatur sakelar pengumpulan data MA AppKey saat ini pada pemanggilan start kali ini. Didukung mulai versi 5.5.2.
      • true mengaktifkan dan false menonaktifkan pengumpulan. Setelah dipanggil, nilai yang diteruskan berlaku pada setiap start dan disimpan di perangkat. Teruskan hasil persetujuan pengguna saat ini, jangan menuliskan nilai tetap di dalam kode.
      • Lihat Sakelar Pengumpulan Data.
  • callback: Callback hasil inisialisasi.
  • MTMAInitResult:
    • isSuccess(): Apakah inisialisasi berhasil.
    • getCode(): Kode hasil, 0 menunjukkan keberhasilan.
    • getMessage(): Deskripsi hasil.
    • getEuid(): EUID diperoleh setelah inisialisasi berhasil.
    • getMaRid(): MA RID diperoleh setelah inisialisasi berhasil.

Contoh pemanggilan

MTMAConfig config = new MTMAConfig("your MA AppKey"); // Opsional (didukung mulai 5.5.2): atur sakelar pengumpulan data sesuai persetujuan pengguna saat ini; aktif secara default jika belum pernah diatur // 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");
// Opsional (didukung mulai 5.5.2): atur sakelar pengumpulan data sesuai persetujuan pengguna saat ini; aktif secara default jika belum pernah diatur
// 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();
        }
    }
});

            
Tampilkan blok kode ini di jendela mengambang

Ganti AppKey saat runtime

Setelah panggilan balik inisialisasi terakhir selesai, start dapat dipanggil kembali dengan MTMAConfig yang baru. API bisnis MA lainnya untuk sementara tidak tersedia selama peralihan. Tidak ada penggantian otomatis ke AppKey lama ketika inisialisasi AppKey baru gagal.

Antarmuka tidak digunakan lagi

Mulai versi 5.5.0, antarmuka berikut tidak digunakan lagi:

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

Silakan gunakan start(MTMAConfig config, MTMAInitResultCallback callback) sebagai gantinya.

Tetapkan ID pengguna

Disarankan untuk mengatur antarmuka ini saat pengguna masuk dan memberikan informasi yang relevan untuk mendapatkan EUID yang cocok dengan pengguna

Versi yang didukung

Versi awal yang didukung: 5.0.0

Definisi antarmuka

-_setUserIdentity(UserIdentity userIdentity, CallBack callBack) _

  • Deskripsi antarmuka: -Mengatur identifikasi pengguna, seperti nomor kartu keanggotaan pengguna.
  • Deskripsi parameter:
    • userIdentity: identifikasi panggilan
      • setUserId(String userId): tidak boleh kosong setelah menghapus spasi awal dan akhir, hingga 255 karakter Unicode; tidak boleh 0, null, undefined, nan (abaikan huruf besar/kecil)
      • setAnonymousId(String anonymousId): Tidak boleh kosong setelah menghapus spasi awal dan akhir, hingga 256 karakter Unicode
      • setEmail(String email): tidak boleh kosong, maksimal 256 karakter Unicode; harus berisi dan hanya dapat berisi satu @, @ tidak boleh kosong sebelum dan sesudah, dan tidak boleh berisi spasi, baris baru, atau Tab; didukung mulai dari 5.5.0
      • setPhone(String phone): harus sesuai dengan format E.164, dimulai dengan +, digit pertama kode negara adalah 1–9, kemudian berisi 1–14 digit; didukung mulai dari 5.5.0
    • panggilan Balik: panggilan balik antarmuka
  • Deskripsi pengembalian:
    onCallBack(int code, String message)
    • kode: kode pengembalian, 0 mewakili keberhasilan, -1 mewakili kegagalan, lihat deskripsi parameter pesan untuk detailnya

Contoh pemanggilan

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

            
Tampilkan blok kode ini di jendela mengambang

Ketika verifikasi bidang ID pengguna gagal, tidak ada permintaan jaringan yang dikirim, dan code = -3 dikembalikan melalui panggilan balik.

Tetapkan informasi kontak pengguna

Ketika informasi kontak pengguna berubah, Anda dapat menggunakan antarmuka ini untuk memperbarui "informasi kontak" pengguna.

Versi yang didukung

Versi awal yang didukung: 5.0.0

Definisi antarmuka

  • setUserContact(JSONObject contacts, CallBack callBack)
    • Deskripsi antarmuka: -Mengatur "informasi kontak" pengguna.
    • Deskripsi parameter:
      • kontak: Mengatur beberapa metode kontak. Kunci adalah nama metode kontak, dan nilai adalah nilai metode kontak. Saat ini, empat metode kontak yang didukung: email, ponsel_ponsel, telepon_rumah, dan whatsapp_telepon.
      • panggilan Balik: panggilan balik antarmuka
    • Deskripsi pengembalian:
      onCallBack(int code, String message)
      • kode: kode pengembalian, 0 mewakili keberhasilan, -1 mewakili kegagalan, lihat deskripsi parameter pesan untuk detailnya
      • pesan: deskripsi alasan

Contoh pemanggilan

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

            
Tampilkan blok kode ini di jendela mengambang

Dapatkan EUID

Versi yang didukung

Versi awal yang didukung: 5.0.0

Definisi antarmuka

  • getEuid()
    • Deskripsi antarmuka:
      • Dapatkan EUID, yang mewakili ID unik pengguna. Hanya nilai saat ini yang dikembalikan ketika inisialisasi berhasil, dan nilai nol dikembalikan di negara bagian lain.

Contoh pemanggilan

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

            
Tampilkan blok kode ini di jendela mengambang

Dapatkan MA RID

Versi yang didukung

Versi awal yang didukung: 5.5.0

Definisi antarmuka

  • getMaRid()
    • Dapatkan MA RID saat ini. Hanya nilai saat ini yang dikembalikan ketika inisialisasi berhasil, dan nilai nol dikembalikan di negara bagian lain.
String maRid = MTMAApi.getInstance(this).getMaRid();
              
              String maRid = MTMAApi.getInstance(this).getMaRid();

            
Tampilkan blok kode ini di jendela mengambang

Tetapkan ID kontak saluran

Versi yang didukung

Versi awal yang didukung: 5.5.0

Definisi antarmuka

  • setChannelValue(long channelId, List values, CallBack callBack)
    • Deskripsi antarmuka: Tetapkan ID kontak saluran. Saluran AppPush secara otomatis terikat oleh SDK, dan tidak perlu memanggil pengaturan antarmuka ini.
    • Deskripsi parameter:
      • channelId: ID saluran Push pihak ketiga yang dikonfigurasi pada konsol MA harus lebih besar dari 0.
      • values: Daftar nilai ID kontak saluran (seperti RID atau Token) tidak boleh kosong, dan elemen daftar tidak boleh kosong.
      • callBack: Hasil panggilan balik, code == 0 menunjukkan keberhasilan.
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
    }
});

            
Tampilkan blok kode ini di jendela mengambang

Tetapkan interval data pelaporan

Ini berlaku bersamaan dengan antarmuka setMaxEventCacheCount, dan akan dilaporkan selama salah satu kondisi terpenuhi.

Versi yang didukung

Versi awal yang didukung: 5.0.0

Definisi antarmuka

  • setReportInterval(int interval)
    • Deskripsi antarmuka:
      • Atur interval data pelaporan. Ketika antarmuka ini tidak dipanggil, defaultnya adalah 10 detik untuk melaporkan data peristiwa.
      • Laporkan cache memori interval, yang perlu dipanggil di setiap siklus hidup aplikasi agar dapat diterapkan
    • Deskripsi parameter
      • interval pelaporan interval, satuan s (detik)

Contoh pemanggilan

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

            
Tampilkan blok kode ini di jendela mengambang

Tetapkan batas atas cache acara

Ini berlaku bersamaan dengan antarmuka setReportInterval, dan akan dilaporkan selama salah satu kondisi terpenuhi.

Versi yang didukung

Versi awal yang didukung: 5.0.0

Definisi antarmuka

  • setMaxEventCacheCount(int count)
    • Deskripsi antarmuka:
      • Tetapkan batas atas cache acara, defaultnya adalah 50, maksimum tidak boleh melebihi 500
      • Bila jumlah cache terlampaui, semua data akan dilaporkan
    • Deskripsi parameter
      • hitung Batas atas jumlah item cache acara

Contoh pemanggilan

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

            
Tampilkan blok kode ini di jendela mengambang

Tetapkan batas waktu sesi

Versi yang didukung

Versi awal yang didukung: 5.0.0

Definisi antarmuka

  • setNoActiveSessionEndDurationTime(int duration)
    • Deskripsi antarmuka:
      • Ketika Aplikasi ditempatkan di latar belakang, batas waktu sesi mulai dihitung. Jika waktu yang ditentukan terlampaui (default 30 menit), sesi akan berakhir.
    • Deskripsi parameter
      • durasi batas waktu durasi, satuan s (detik)

Contoh pemanggilan

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

            
Tampilkan blok kode ini di jendela mengambang

Tetapkan atribut UTM

Versi yang didukung

Versi awal yang didukung: 5.0.0

Definisi antarmuka

  • setUtmProperties(UtmProperties utmProperties)
    • Deskripsi antarmuka:
      • Atur atribut UTM. Jika pengembang dapat mengidentifikasi iklan mana yang digunakan pengguna untuk mengakses Aplikasi, disarankan untuk mengatur informasi UTM. Kami akan meneruskan parameter ini saat melaporkan peristiwa tersebut.
    • Deskripsi parameter:
      • Objek properti UTM utmProperties
      • utm_source sumber kampanye
      • utm_medium media kampanye
      • utm_term istilah kampanye
      • konten kampanye utm_content
      • utm_campaign nama kampanye
      • utm_id ID kampanye

Contoh pemanggilan

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

            
Tampilkan blok kode ini di jendela mengambang

Sakelar Pengumpulan Data

Versi yang didukung

Versi awal yang didukung: 5.5.2

Jika aplikasi Anda perlu mengontrol pengumpulan berdasarkan persetujuan pengguna, gunakan sakelar pengumpulan data. Jika tidak diperlukan, tidak ada yang perlu diubah: pengumpulan aktif secara default dan perilakunya sama seperti sebelum peningkatan versi.

Sakelar disimpan terpisah untuk setiap MA AppKey. Saat inisialisasi, teruskan nilai dataCollectionEnabled secara dinamis sesuai status persetujuan pengguna. Jangan menuliskannya sebagai nilai tetap, karena setiap inisialisasi akan mengatur ulang status ke nilai tetap tersebut. Ketika pengguna mengubah pilihannya saat aplikasi berjalan, panggil setDataCollectionEnabled setelah inisialisasi berhasil. Keduanya dijalankan di proses utama.

Mengatur Sakelar Pengumpulan Data

Definisi antarmuka

  • setDataCollectionEnabled(boolean enabled)
    • Deskripsi antarmuka:
      • Mengatur sakelar pengumpulan data MA AppKey saat ini. Panggil di proses utama setelah inisialisasi berhasil.
      • Langsung berlaku dan disimpan di perangkat, tanpa menunggu permintaan jaringan selesai.
      • Jika nilainya sama dengan status saat ini, pemrosesan penonaktifan atau pemulihan tidak dijalankan ulang, dan statistik peluncuran serta sesi tidak terpengaruh.
      • Setelah diaktifkan kembali, SDK otomatis melanjutkan pengumpulan. Event, atribut pengguna, dan UTM yang dipanggil sebelum pemulihan selesai tidak disimpan, dan antarmuka yang memiliki callback mengembalikan -2.
      • Untuk perilaku setiap antarmuka setelah dinonaktifkan, lihat Perilaku Saat Dinonaktifkan.
    • Deskripsi parameter:
      • enabled: true untuk mengaktifkan, false untuk menonaktifkan.

Contoh pemanggilan

// enabled adalah status sakelar yang ditentukan aplikasi Anda berdasarkan persetujuan pengguna MTMAApi.getInstance(this).setDataCollectionEnabled(enabled);
              
              // enabled adalah status sakelar yang ditentukan aplikasi Anda berdasarkan persetujuan pengguna
MTMAApi.getInstance(this).setDataCollectionEnabled(enabled);

            
Tampilkan blok kode ini di jendela mengambang

Memeriksa Sakelar Pengumpulan Data

Definisi antarmuka

  • isDataCollectionEnabled()
    • Deskripsi antarmuka:
      • Memeriksa sakelar pengumpulan data MA AppKey saat ini. Tidak mengirim permintaan jaringan dan tidak memicu peralihan atau pemulihan.
    • Deskripsi pengembalian:
      • true berarti aktif, false berarti nonaktif.
      • Sebelum start, ketika AppKey belum ditentukan: mengembalikan nilai default true, yang tidak mewakili status AppKey mana pun. Lakukan pemeriksaan setelah start.
      • Pada proses non-utama mengembalikan false, yang hanya berarti proses tersebut tidak mengumpulkan data dan tidak mewakili status sakelar proses utama.

Contoh pemanggilan

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

            
Tampilkan blok kode ini di jendela mengambang

Perilaku Saat Dinonaktifkan

Berhenti saat dinonaktifkan

Antarmuka / Kemampuan Perilaku saat dinonaktifkan
Melaporkan event (onEvent) Dibuang secara diam-diam, termasuk atribut yang menyertai event.
Event bawaan: peluncuran, peralihan latar depan/latar belakang, awal dan akhir sesi, keluar, pembaruan aplikasi, status sakelar notifikasi, klik push, dan sebagainya Tidak dibuat. Penghitungan waktu sesi berhenti, dan penanda seperti peluncuran pertama dan hari pertama tidak diperbarui.
Semua antarmuka atribut pengguna (property* dan antarmuka object_array) Tidak dijalankan; callback mengembalikan -8. Juga mengembalikan -8 ketika inisialisasi belum selesai.
Mengatur atribut UTM (setUtmProperties) Dibuang secara diam-diam. UTM yang sudah di-cache dihapus saat dinonaktifkan dan tidak dibawa setelah diaktifkan kembali.
Informasi perangkat: model, versi sistem, layar, jaringan, operator, pengenal iklan, dan sebagainya Tidak dibaca dan tidak dilaporkan, termasuk bidang yang dapat dikontrol dengan setCollectControl.

Tetap tersedia saat dinonaktifkan

Antarmuka / Kemampuan Perilaku saat dinonaktifkan
start, getEuid, getMaRid Normal. Inisialisasi hanya membawa bidang yang diperlukan untuk pendaftaran identitas, tanpa karakteristik perangkat.
setUserIdentity Normal, callback berjalan seperti biasa. Tidak menghasilkan event pendaftaran.
setUserContact Normal, callback berjalan seperti biasa.
setChannelValue, pengikatan otomatis AppPush Normal, push tetap terkirim seperti biasa.
setDataCollectionEnabled, isDataCollectionEnabled Normal.
setCollectControl, setReportInterval, setMaxEventCacheCount, setNoActiveSessionEndDurationTime, configDebugMode Dapat dipanggil. Saat dinonaktifkan tidak ada pengumpulan yang dapat dipengaruhi; setelah diaktifkan kembali, pengaturan tersebut berlaku.

Pada saat penonaktifan

  • Data yang dihasilkan sebelum peralihan langsung dikirim satu kali, tidak dicoba ulang jika gagal, lalu cache lokal dihapus.
  • Data yang sudah dilaporkan tidak dihapus.

Permintaan yang tetap dikirim saat dinonaktifkan

  • Inisialisasi, pendaftaran identitas (tanpa karakteristik perangkat), pengambilan konfigurasi, pengikatan saluran push, dan sinkronisasi status sakelar.

Push dan pesan

  • Push tetap terkirim seperti biasa dan dapat membuka aplikasi.
  • Event MA seperti klik push tidak dihasilkan, sehingga kondisi journey yang bergantung pada event perilaku MA tidak terpenuhi.
  • Klik pada push atau pesan dalam aplikasi tidak dihitung sebagai konversi pesan MA. Catatan klik sebelum dinonaktifkan dihapus dan tidak lagi diatribusikan setelah diaktifkan kembali.

Tidak dikontrol oleh sakelar ini

  • Tanda terima pengiriman dan klik dari saluran push itu sendiri.
  • Pelaporan dari AppPush SDK yang diintegrasikan secara terpisah.
  • Antarmuka REST MA yang dipanggil oleh backend aplikasi Anda.
  • Sakelar ini tidak menggantikan berhenti berlangganan push.

Konsol dan segmen

  • Detail pengguna menampilkan status “Pengumpulan Data”, yaitu nilai terakhir yang disinkronkan ke server dan mungkin tertunda. Status ini kosong pada AppKey yang sakelarnya belum pernah diatur.
  • Pada segmen, pengguna dapat dipilih dengan “Pengumpulan Data = Nonaktif”: pengguna cocok jika salah satu perangkatnya nonaktif; perangkat yang belum melaporkan status tidak cocok.

Kontrol akuisisi data

setCollectControl mengatur izin pengumpulan untuk bidang perangkat tertentu. Untuk menghentikan pengumpulan event, atribut pengguna, UTM, dan data perangkat secara keseluruhan, gunakan Sakelar Pengumpulan Data. Setelah pengumpulan keseluruhan diaktifkan kembali, izin bidang sebelumnya tetap berlaku.

Versi yang didukung

Versi awal yang didukung: 5.0.0

Definisi antarmuka

  • setCollectControl(MTMACollectControl control)
    • Deskripsi antarmuka: Izin pengumpulan -Set. Jika Anda perlu mengaktifkan/menonaktifkan pengumpulan data tertentu, hubungi antarmuka ini
    • Deskripsi parameter:
      • control: Pengaturan izin pengumpulan; properti yang tidak disetel secara eksplisit menggunakan nilai default berikut
        • setCarrier(boolean enable): Apakah akan mengumpulkan informasi operator, diaktifkan secara default
        • setMacAddress(boolean enable): Apakah akan mengumpulkan alamat MAC, dinonaktifkan secara default
        • setGAID(boolean enable): Apakah akan mengumpulkan GAID, ditutup secara default
        • setOAID(boolean enable): Apakah akan mengumpulkan OAID, ditutup secara default
        • setAAID(boolean enable): Apakah akan mengumpulkan AAID, ditutup secara default
        • setIMEI(boolean enable): Apakah akan mengumpulkan IMEI, dinonaktifkan secara default; hanya didukung oleh Android 9 dan di bawahnya, aplikasi host perlu mendeklarasikan dan mendapatkan izin READ_PHONE_STATE.

Contoh pemanggilan

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

            
Tampilkan blok kode ini di jendela mengambang

Tetapkan atribut pengguna

Tetapkan nilai atribut pengguna. Jika atribut pengguna tidak ada, maka secara otomatis akan dibuat di latar belakang.

Timpa dan perbarui atribut pengguna

  • propertySet(final JSONObject properties, final CallBack callBack)
    • Deskripsi antarmuka:
      • Batch menimpa dan memperbarui nilai atribut pengguna
      • Hanya data laporan terbaru yang disimpan, mencakup data historis, seperti tingkat keanggotaan pengguna.
      • Nilai mendukung string, angka, nilai Boolean, array string, JSONObject, dan JSONArray yang elemennya semuanya JSONObject.
    • Deskripsi parameter:
      • properti: properti pengguna
      • panggilan Balik: panggilan balik antarmuka
    • Deskripsi pengembalian:
      onCallBack(int code, String message)
      • kode: kode kembali, 0 mewakili keberhasilan, -1 mewakili kegagalan, lihat deskripsi kode kesalahan untuk detailnya
      • pesan: deskripsi alasan
    • Contoh panggilan:
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();
}

            
Tampilkan blok kode ini di jendela mengambang
  • propertySet(String property, Object value, CallBack callBack)
    • Deskripsi antarmuka:
      • Satu override memperbarui nilai atribut pengguna
      • Hanya data laporan terbaru yang disimpan, mencakup data historis, seperti tingkat keanggotaan pengguna.
      • Aturan tipe nilai konsisten dengan batch propertySet.
    • Deskripsi parameter:
      • properti: nama properti pengguna
      • nilai: nilai atribut pengguna
      • panggilan Balik: panggilan balik antarmuka
    • Deskripsi pengembalian:
      onCallBack(int code, String message)
      • kode: kode kembali, 0 mewakili keberhasilan, -1 mewakili kegagalan, lihat deskripsi kode kesalahan untuk detailnya
      • pesan: deskripsi alasan
    • Contoh panggilan:
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) {}});

            
Tampilkan blok kode ini di jendela mengambang

Perbarui atribut pengguna secara kumulatif

  • propertyIncrease(final Map<String, ? extends Number> properties, CallBack callBack)
    • Deskripsi antarmuka:
      • Akumulasi pengaturan nilai atribut pengguna dan membuat permintaan batch
      • Akumulasi semua data yang dilaporkan, seperti jumlah akumulasi konsumsi.
      • Antarmuka ini hanya dapat dipanggil untuk atribut pengguna bertipe numerik, jika tidak maka akan diabaikan. Jika atribut pengguna tidak ada sebelumnya, nilai awal akan diperlakukan sebagai 0.
    • Deskripsi parameter:
      • properti: properti pengguna
      • panggilan Balik: panggilan balik antarmuka
    • Deskripsi pengembalian:
      onCallBack(int code, String message)
      • kode: kode kembali, 0 mewakili keberhasilan, -1 mewakili kegagalan, lihat deskripsi kode kesalahan untuk detailnya
      • pesan: deskripsi alasan
    • Contoh panggilan:
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) {}});

            
Tampilkan blok kode ini di jendela mengambang
  • propertyIncrease(final String property, final Number value, CallBack callBack)
    • Deskripsi antarmuka:
      • Akumulasi pengaturan nilai atribut pengguna, permintaan tunggal
      • Akumulasi semua data yang dilaporkan, seperti jumlah akumulasi konsumsi.
      • Antarmuka ini hanya dapat dipanggil untuk atribut pengguna bertipe numerik, jika tidak maka akan diabaikan. Jika atribut pengguna tidak ada sebelumnya, nilai awal akan diperlakukan sebagai 0.
    • Deskripsi parameter:
      • properti: nama properti pengguna
      • nilai: nilai atribut pengguna
      • panggilan Balik: panggilan balik antarmuka
    • Deskripsi pengembalian:
      onCallBack(int code, String message)
      • kode: kode kembali, 0 mewakili keberhasilan, -1 mewakili kegagalan, lihat deskripsi kode kesalahan untuk detailnya
      • pesan: deskripsi alasan
    • Contoh panggilan:
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) {}});

            
Tampilkan blok kode ini di jendela mengambang

###Tambahkan atribut pengguna

  • propertyAdd(final String property, final String value, CallBack callBack)
    • Deskripsi antarmuka:
      • Tambahkan nilai atribut pengguna, permintaan tunggal
      • Terus menambahkan elemen ke koleksi, dan menyimpan elemen dalam database untuk deduplikasi. Jika ABC sudah ada, tambahkan CD, dan akhirnya menjadi ABCD.
    • Deskripsi parameter:
      • properti: nama properti pengguna
      • nilai: nilai atribut pengguna
      • panggilan Balik: panggilan balik antarmuka
    • Deskripsi pengembalian:
      onCallBack(int code, String message)
      • kode: kode kembali, 0 mewakili keberhasilan, -1 mewakili kegagalan, lihat deskripsi kode kesalahan untuk detailnya
      • pesan: deskripsi alasan
    • Contoh panggilan:
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) {}});

            
Tampilkan blok kode ini di jendela mengambang
  • propertyAdd(final String property, final Set values, CallBack callBack)
    • Deskripsi antarmuka:
      • Tambahkan nilai atribut pengguna, tambahkan beberapa nilai sekaligus
      • Terus menambahkan elemen ke koleksi, dan menyimpan elemen dalam database untuk deduplikasi. Jika ABC sudah ada, tambahkan CD, dan akhirnya menjadi ABCD.
    • Deskripsi parameter:
      • properti: nama properti pengguna
      • nilai: nilai atribut pengguna
      • panggilan Balik: panggilan balik antarmuka
    • Deskripsi pengembalian:
      onCallBack(int code, String message)
      • kode: kode kembali, 0 mewakili keberhasilan, -1 mewakili kegagalan, lihat deskripsi kode kesalahan untuk detailnya
      • pesan: deskripsi alasan
    • Contoh panggilan:
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) {}});

            
Tampilkan blok kode ini di jendela mengambang

Memanipulasi elemen object_array

Antarmuka berikut didukung mulai dari 5.5.0 dan hanya digunakan untuk atribut pengguna object_array. propertyAdd asli, propertyRemove masih digunakan untuk array string dan perilakunya tetap tidak berubah.

  • updateObjectArrayProperty(String property, String identifierKey, Object identifierValue, JSONObject values, CallBack callBack)
    • Perbarui subbidang elemen objek berdasarkan pengidentifikasi unik.
    • identifierValue mendukung string atau nomor terbatas; values tidak dapat mengubah bidang identifikasi.
    • Gunakan JSONObject.NULL di values untuk menghapus subbidang yang sesuai.
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);

            
Tampilkan blok kode ini di jendela mengambang
  • addObjectArrayProperty(String property, JSONObject object, CallBack callBack)
    • Tambahkan elemen objek non-null ke 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);

            
Tampilkan blok kode ini di jendela mengambang
  • removeObjectArrayProperty(String property, String identifierKey, Object identifierValue, CallBack callBack)
    • Hapus seluruh elemen objek berdasarkan pengidentifikasi unik.
MTMAApi.getInstance(this).removeObjectArrayProperty( "devices", "device_id", "device_2", callBack);
              
              MTMAApi.getInstance(this).removeObjectArrayProperty(
        "devices", "device_id", "device_2", callBack);

            
Tampilkan blok kode ini di jendela mengambang

Hapus atribut pengguna

  • propertyRemove(final String property, String values, final CallBack callBack)
    • Deskripsi antarmuka:
      • Menghapus operasi nilai pada atribut pengguna.
      • Nilai ini adalah elemen koleksi, dan elemen tersebut disimpan dalam database untuk pemrosesan deduplikasi. Jika ABCD sudah ada, hapus D, dan terakhir menjadi ABC.
    • Deskripsi parameter:
      • properti: nama properti pengguna
      • nilai: nilai atribut pengguna
      • panggilan Balik: panggilan balik antarmuka
    • Deskripsi pengembalian:
      onCallBack(int code, String message)
      • kode: kode kembali, 0 mewakili keberhasilan, -1 mewakili kegagalan, lihat deskripsi kode kesalahan untuk detailnya
      • pesan: deskripsi alasan
    • Contoh panggilan:
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) {}});

            
Tampilkan blok kode ini di jendela mengambang
  • propertyRemove(final String property, Set values, final CallBack callBack)
    • Deskripsi antarmuka:
      • Hapus nilai atribut pengguna dan hapus beberapa nilai sekaligus.
      • Nilai ini adalah elemen koleksi, dan elemen tersebut disimpan dalam database untuk pemrosesan deduplikasi. Jika ABCD sudah ada, CD terhapus, dan terakhir menjadi AB.
    • Deskripsi parameter:
      • properti: nama properti pengguna
      • nilai: nilai atribut pengguna
      • panggilan Balik: panggilan balik antarmuka
    • Deskripsi pengembalian:
      onCallBack(int code, String message)
      • kode: kode kembali, 0 mewakili keberhasilan, -1 mewakili kegagalan, lihat deskripsi kode kesalahan untuk detailnya
      • pesan: deskripsi alasan
    • Contoh panggilan:
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) {}});

            
Tampilkan blok kode ini di jendela mengambang

Hapus atribut pengguna

Versi yang didukung

Versi awal yang didukung: 5.0.0

Definisi antarmuka

  • propertyDelete(final String property, final CallBack callBack)
    • Deskripsi antarmuka:
      • Hapus semua nilai nilai untuk atribut pengguna
    • Deskripsi parameter:
      • properti: nama properti pengguna
      • panggilan Balik: panggilan balik antarmuka
    • Deskripsi pengembalian:
      onCallBack(int code, String message)
      • kode: kode kembali, 0 mewakili keberhasilan, -1 mewakili kegagalan, lihat deskripsi kode kesalahan untuk detailnya
      • pesan: deskripsi alasan

Contoh pemanggilan

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

            
Tampilkan blok kode ini di jendela mengambang

Pelaporan insiden

Versi yang didukung

Versi awal yang didukung: 5.0.0

Definisi antarmuka

  • onEvent(String eventKey, JSONObject properties)
    • Deskripsi antarmuka:
      • Pelaporan insiden
    • Deskripsi parameter:
      • eventKey: nama acara
      • properti: properti acara, Kunci adalah nama properti, nilai adalah nilai properti

Contoh pemanggilan

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

            
Tampilkan blok kode ini di jendela mengambang

Kode kesalahan

kode nilai deskripsi
KODE_BERHASIL 0 Sukses
KODE_TIDAK DIKETAHUI -1 Kesalahan tidak diketahui
CODE_START_FAIL -2 Inisialisasi tidak selesai, inisialisasi gagal, diinisialisasi dalam proses non-utama, atau konfigurasi MA yang menjadi sandaran operasi saat ini belum siap
KODE_VALID -3 Verifikasi parameter gagal
KODE_ENABLE -4 Proyek MA ditutup
KODE_REGISTRASIID -5 MA RID hilang atau ilegal
KODE_SWITCH -6 Konfigurasi proyek MA telah dialihkan dan perlu dipanggil lagi start
CODE_COLLECTION_DISABLED -8 Pengumpulan data dinonaktifkan dan operasi pengumpulan biasa ini tidak dijalankan; tersedia mulai 5.5.2
Icon Solid Transparent White Qiyu
Hubungi Sales