API SDK Android

Deskripsi Antarmuka SDK

  • MTMAApi, berisi seluruh antarmuka terkait fungsionalitas MA pada SDK.

Mengaktifkan Fungsi MA

Versi yang Didukung

Didukung mulai versi 5.0.0

Definisi Antarmuka

  • start(UserIdentity userIdentity, CallBack callBack)
    • Deskripsi:
      • Mengaktifkan fungsi MA. Informasi identifikasi pengguna dapat diatur sekaligus saat aktivasi.
    • Parameter:
      • userIdentity: Identitas pengguna, bisa null jika tidak ada.
        • setUserId(String userId): userId, atur identitas unik pengguna yang login.
        • setAnonymousId(String anonymousId): anonymousId, jika pengguna belum login tapi memberikan info identitas lain, bisa diatur sebagai anonymous ID, misal email atau ID pihak ketiga.
      • callBack: Callback hasil data.
    • Return:
      onCallBack(int code, String message)
      • code: Kode return. 0 = berhasil, -1 = gagal. Lihat deskripsi message untuk detailnya.
      • message: Penjelasan alasan.

Contoh Pemanggilan

MTMAApi.getInstance(this).start(new CallBack() { @Override public void onCallBack(int code, String message) { Log.e(TAG, "start code:" + code); Log.e(TAG, "startmessage:" + message); } });
              
              MTMAApi.getInstance(this).start(new CallBack() {
    @Override
    public void onCallBack(int code, String message) {
        Log.e(TAG, "start code:" + code);
        Log.e(TAG, "startmessage:" + message);
    }
});

            
Tampilkan blok kode ini di jendela mengambang

Mengatur Identifikasi Pengguna

Disarankan dipanggil saat pengguna login atau memberikan info identitas agar EUID sesuai dengan pengguna.

Versi yang Didukung

Didukung mulai versi 5.0.0

Definisi Antarmuka

  • setUserIdentity(UserIdentity userIdentity, CallBack callBack)
    • Deskripsi:
      • Mengatur identifikasi pengguna, seperti nomor kartu member.
    • Parameter:
      • userIdentity: Identitas pengguna.
        • setUserId(String userId): userId, atur identitas unik pengguna yang login.
        • setAnonymousId(String anonymousId): anonymousId, jika belum login tapi ada info identitas lain, bisa diatur sebagai anonymous ID.
      • callBack: Callback antarmuka.
    • Return:
      onCallBack(int code, String message)
      • code: 0 = berhasil, -1 = gagal. Lihat deskripsi message.

Contoh Pemanggilan

UserIdentity userIdentity = new UserIdentity(); userIdentity.setUserId("Your userId"); userIdentity.setAnonymousId("Your AnonymousId"); 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 userId");
userIdentity.setAnonymousId("Your AnonymousId");
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

Mengatur Informasi Kontak Pengguna

Jika informasi kontak pengguna berubah, gunakan antarmuka ini untuk memperbarui detail kontak pengguna.

Versi yang Didukung

Didukung mulai versi 5.0.0

Definisi Antarmuka

  • setUserContact(JSONObject contacts, CallBack callBack)
    • Deskripsi:
      • Mengatur informasi kontak pengguna.
    • Parameter:
      • contacts: Beberapa informasi kontak. Key adalah nama kontak, value adalah nilainya. Mendukung: email, mobile_phone, landline_phone, whatsapp_phone.
      • callBack: Callback antarmuka.
    • Return:
      onCallBack(int code, String message)
      • code: 0 = berhasil, -1 = gagal. Lihat deskripsi message.
      • message: Penjelasan 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

Mendapatkan EUID

Versi yang Didukung

Didukung mulai versi 5.0.0

Definisi Antarmuka

  • getEuid()
    • Deskripsi:
      • Mendapatkan EUID, yaitu ID unik pengguna.

Contoh Pemanggilan

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

            
Tampilkan blok kode ini di jendela mengambang

Mengatur Interval Pelaporan Data yang Diunggah

Digunakan bersama setMaxEventCacheCount. Pelaporan dilakukan jika salah satu kondisi terpenuhi.

Versi yang Didukung

Didukung mulai versi 5.0.0

Definisi Antarmuka

  • setReportInterval(int interval)
    • Deskripsi:
      • Mengatur interval pelaporan data yang diunggah. Default 10 detik jika tidak dipanggil.
      • Interval disimpan di memori dan perlu dipanggil setiap siklus hidup aplikasi.
    • Parameter
      • interval: Interval pelaporan (detik).

Contoh Pemanggilan

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

            
Tampilkan blok kode ini di jendela mengambang

Mengatur Batas Maksimal Cache Event

Digunakan bersama setReportInterval. Pelaporan dilakukan jika salah satu kondisi terpenuhi.

Versi yang Didukung

Didukung mulai versi 5.0.0

Definisi Antarmuka

  • setMaxEventCacheCount(int count)
    • Deskripsi:
      • Mengatur batas maksimal cache event, default 50, maksimal 500.
      • Jika cache melebihi batas, semua data akan dilaporkan.
    • Parameter
      • count: Batas maksimal cache event.

Contoh Pemanggilan

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

            
Tampilkan blok kode ini di jendela mengambang

Mengatur Timeout Sesi

Versi yang Didukung

Didukung mulai versi 5.0.0

Definisi Antarmuka

  • setNoActiveSessionEndDurationTime(int duration)
    • Deskripsi:
      • Saat aplikasi ke background, timer timeout sesi mulai. Jika melebihi waktu yang ditetapkan (default 30 menit), sesi berakhir.
    • Parameter
      • duration: Durasi timeout (detik).

Contoh Pemanggilan

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

            
Tampilkan blok kode ini di jendela mengambang

Mengatur Properti UTM

Versi yang Didukung

Didukung mulai versi 5.0.0

Definisi Antarmuka

  • setUtmProperties(UtmProperties utmProperties)
    • Deskripsi:
      • Mengatur properti UTM. Jika developer dapat mengidentifikasi dari iklan mana pengguna masuk aplikasi, disarankan mengatur info UTM. Properti UTM yang bisa diatur:
        • utm_source: Sumber kampanye iklan.
        • utm_medium: Media kampanye iklan.
        • utm_term: Kata kunci kampanye iklan.
        • utm_content: Konten kampanye iklan.
        • utm_campaign: Nama kampanye iklan.

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

Mengatur Izin Pengumpulan Data

Versi yang Didukung

Didukung mulai versi 5.0.0

Definisi Antarmuka

  • setCollectControl(MTMACollectControl control)
    • Deskripsi:
      • Mengatur izin pengumpulan data. Aktifkan/nonaktifkan pengumpulan data tertentu sesuai kebutuhan.
    • Parameter
      • control: Pengaturan izin, default aktif.

Contoh Pemanggilan

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

            
Tampilkan blok kode ini di jendela mengambang

Mengatur Properti Pengguna

Mengatur nilai properti pengguna. Jika properti belum ada, akan otomatis dibuat di backend.

Timpa dan Perbarui Properti Pengguna

  • propertySet(final JSONObject properties, final CallBack callBack)
    • Deskripsi:

      • Memperbarui nilai properti pengguna secara batch, menimpa data lama.
      • Hanya data terbaru yang disimpan, menimpa data historis, misal level member.
    • Parameter:

      • properties: Properti pengguna.
      • callBack: Callback antarmuka.
    • Return:
      onCallBack(int code, String message)

      • code: 0 = berhasil, -1 = gagal. Lihat kode error untuk detailnya.
      • message: Penjelasan alasan.
    • Contoh Pemanggilan:

try { JSONObject properties = new JSONObject(); properties.put("Nama properti pengguna Anda", "Nilai properti Anda"); properties.put("Nama properti pengguna Anda 2", "Nilai properti Anda 2"); properties.put("Nama properti pengguna Anda 3", "Nilai properti Anda 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("Nama properti pengguna Anda", "Nilai properti Anda");
    properties.put("Nama properti pengguna Anda 2", "Nilai properti Anda 2");
    properties.put("Nama properti pengguna Anda 3", "Nilai properti Anda 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:

      • Memperbarui satu nilai properti pengguna, menimpa data lama.
      • Hanya data terbaru yang disimpan, menimpa data historis.
    • Parameter:

      • property: Nama properti.
      • value: Nilai properti.
      • callBack: Callback antarmuka.
    • Return:
      onCallBack(int code, String message)

      • code: 0 = berhasil, -1 = gagal. Lihat kode error untuk detailnya.
      • message: Penjelasan alasan.
    • Contoh Pemanggilan:

MTMAApi.getInstance(this).propertySet("Nama properti pengguna Anda", "Nilai properti Anda", new CallBack() { @Override public void onCallBack(int code, String message) { } });
              
              MTMAApi.getInstance(this).propertySet("Nama properti pengguna Anda", "Nilai properti Anda", new CallBack() {
    @Override
    public void onCallBack(int code, String message) {
    }
});

            
Tampilkan blok kode ini di jendela mengambang

Tambah Nilai Properti Pengguna (Increment)

  • propertyIncrease(final Map<String, ? extends Number> properties, CallBack callBack)
    • Deskripsi:

      • Menambah nilai properti pengguna secara batch.
      • Semua data dilaporkan akan diakumulasi, misal total transaksi.
      • Hanya untuk properti numerik, selain itu diabaikan. Jika belum ada, nilai awal 0.
    • Parameter:

      • properties: Properti pengguna.
      • callBack: Callback antarmuka.
    • Return:
      onCallBack(int code, String message)

      • code: 0 = berhasil, -1 = gagal. Lihat kode error untuk detailnya.
      • message: Penjelasan alasan.
    • Contoh Pemanggilan:

Map<String, Number> properties = new HashMap<>(); properties.put("Nama properti pengguna Anda", 1); properties.put("Nama properti pengguna Anda 2", 2); properties.put("Nama properti pengguna Anda 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("Nama properti pengguna Anda", 1);
properties.put("Nama properti pengguna Anda 2", 2);
properties.put("Nama properti pengguna Anda 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:

      • Menambah nilai satu properti pengguna.
      • Semua data dilaporkan akan diakumulasi.
      • Hanya untuk properti numerik, selain itu diabaikan. Jika belum ada, nilai awal 0.
    • Parameter:

      • property: Nama properti.
      • value: Nilai properti.
      • callBack: Callback antarmuka.
    • Return:
      onCallBack(int code, String message)

      • code: 0 = berhasil, -1 = gagal. Lihat kode error untuk detailnya.
      • message: Penjelasan alasan.
    • Contoh Pemanggilan:

MTMAApi.getInstance(this).propertyIncrease("Nama properti pengguna Anda", 1, new CallBack() { @Override public void onCallBack(int code, String message) { } });
              
              MTMAApi.getInstance(this).propertyIncrease("Nama properti pengguna Anda", 1, new CallBack() {
    @Override
    public void onCallBack(int code, String message) {
    }
});

            
Tampilkan blok kode ini di jendela mengambang

Menambahkan Nilai Properti Pengguna (Append)

  • propertyAdd(final String property, final String value, CallBack callBack)
    • Deskripsi:

      • Menambahkan nilai pada properti pengguna untuk satu permintaan.
      • Elemen dapat terus ditambahkan, elemen duplikat dihapus saat disimpan di database.
    • Parameter:

      • property: Nama properti.
      • value: Nilai properti.
      • callBack: Callback antarmuka.
    • Return:
      onCallBack(int code, String message)

      • code: 0 = berhasil, -1 = gagal. Lihat kode error untuk detailnya.
      • message: Penjelasan alasan.
    • Contoh Pemanggilan:

MTMAApi.getInstance(this).propertyAdd("Nama properti pengguna Anda", "Nilai properti pengguna Anda", new CallBack() { @Override public void onCallBack(int code, String message) { } });
              
              MTMAApi.getInstance(this).propertyAdd("Nama properti pengguna Anda", "Nilai properti pengguna Anda", 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:

      • Menambahkan beberapa nilai sekaligus pada properti pengguna.
      • Elemen dapat terus ditambahkan, elemen duplikat dihapus saat disimpan di database.
    • Parameter:

      • property: Nama properti.
      • value: Nilai properti.
      • callBack: Callback antarmuka.
    • Return:
      onCallBack(int code, String message)

      • code: 0 = berhasil, -1 = gagal. Lihat kode error untuk detailnya.
      • message: Penjelasan alasan.
    • Contoh Pemanggilan:

Set<String> properties = new HashSet<>(); properties.add("Nilai properti pengguna Anda"); properties.add("Nilai properti pengguna Anda 2"); properties.add("Nilai properti pengguna Anda 3"); MTMAApi.getInstance(this).propertyAdd("Nama properti pengguna Anda", properties, new CallBack() { @Override public void onCallBack(int code, String message) { } });
              
              Set<String> properties = new HashSet<>();
properties.add("Nilai properti pengguna Anda");
properties.add("Nilai properti pengguna Anda 2");
properties.add("Nilai properti pengguna Anda 3");
MTMAApi.getInstance(this).propertyAdd("Nama properti pengguna Anda", properties, new CallBack() {
    @Override
    public void onCallBack(int code, String message) {
    }
});

            
Tampilkan blok kode ini di jendela mengambang

Menghapus Nilai Properti Pengguna

  • propertyRemove(final String property, String values, final CallBack callBack)
    • Deskripsi:

      • Menghapus nilai pada properti pengguna.
      • Nilai adalah elemen dari set, elemen duplikat dihapus saat disimpan di database.
    • Parameter:

      • property: Nama properti.
      • value: Nilai properti.
      • callBack: Callback antarmuka.
    • Return:
      onCallBack(int code, String message)

      • code: 0 = berhasil, -1 = gagal. Lihat kode error untuk detailnya.
      • message: Penjelasan alasan.
    • Contoh Pemanggilan:

MTMAApi.getInstance(this).propertyRemove("Nama properti pengguna Anda", "Nilai properti pengguna Anda", new CallBack() { @Override public void onCallBack(int code, String message) { } });
              
              MTMAApi.getInstance(this).propertyRemove("Nama properti pengguna Anda", "Nilai properti pengguna Anda", 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:

      • Menghapus beberapa nilai sekaligus pada properti pengguna.
      • Nilai-nilai adalah elemen dari set, elemen duplikat dihapus saat disimpan di database.
    • Parameter:

      • property: Nama properti.
      • value: Nilai properti.
      • callBack: Callback antarmuka.
    • Return:
      onCallBack(int code, String message)

      • code: 0 = berhasil, -1 = gagal. Lihat kode error untuk detailnya.
      • message: Penjelasan alasan.
    • Contoh Pemanggilan:

Set<String> properties = new HashSet<>(); properties.add("Nilai properti pengguna Anda"); properties.add("Nilai properti pengguna Anda 2"); properties.add("Nilai properti pengguna Anda 3"); MTMAApi.getInstance(this).propertyRemove("Nama properti pengguna Anda", properties, new CallBack() { @Override public void onCallBack(int code, String message) { } });
              
              Set<String> properties = new HashSet<>();
properties.add("Nilai properti pengguna Anda");
properties.add("Nilai properti pengguna Anda 2");
properties.add("Nilai properti pengguna Anda 3");
MTMAApi.getInstance(this).propertyRemove("Nama properti pengguna Anda", properties, new CallBack() {
    @Override
    public void onCallBack(int code, String message) {
    }
});

            
Tampilkan blok kode ini di jendela mengambang

Menghapus Properti Pengguna

Versi yang Didukung

Didukung mulai versi 5.0.0

Definisi Antarmuka

  • propertyDelete(final String property, final CallBack callBack)
    • Deskripsi:
      • Menghapus seluruh nilai dari suatu properti pengguna.
    • Parameter:
      • property: Nama properti.
      • callBack: Callback antarmuka.
    • Return:
      onCallBack(int code, String message)
      • code: 0 = berhasil, -1 = gagal. Lihat kode error untuk detailnya.
      • message: Penjelasan alasan.

Contoh Pemanggilan

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

            
Tampilkan blok kode ini di jendela mengambang

Pelaporan Event Kustom

Versi yang Didukung

Didukung mulai versi 5.0.0

Definisi Antarmuka

  • onEvent(String eventKey, JSONObject properties)
    • Deskripsi:
      • Melaporkan event kustom.
    • Parameter:
      • eventKey: Nama event.
      • properties: Properti event (key: nama properti, value: nilainya).

Contoh Pemanggilan

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

            
Tampilkan blok kode ini di jendela mengambang

Kode Error:

code Value Deskripsi
CODE_SUCCEED 0 Sukses
CODE_UNKNOWN -1 Error tidak diketahui
CODE_START_FAIL -2 Metode start belum dipanggil, atau pemanggilan start gagal, atau proyek telah diganti. Silakan panggil start kembali.
CODE_VALID -3 Validasi parameter gagal
CODE_ENABLE -4 Proyek ditutup
CODE_REGISTRATIONID -5 Registrasi push gagal
CODE_SWITCH -6 Proyek telah diganti. Silakan panggil start kembali.
icon
Hubungi Sales