People Analytics (MPAA / MPA2)
Analitik real-time untuk mendeteksi, menghitung, dan menganalisis orang dalam video — counting, dwelling, kepadatan, dan atribut demografis. Tersedia dalam dua varian: NFV4-MPAA dan NFV4-MPA2.
People Analytics (MPAA / MPA2)
People Analytics adalah modul analitik video real-time untuk mendeteksi orang, menghitung pergerakan, mengukur durasi tinggal, mengestimasi kepadatan, serta mengklasifikasi atribut visual seperti usia, gender, dan warna pakaian. Modul ini tersedia dalam dua varian publik: NFV4-MPAA (model atribut generasi pertama) dan NFV4-MPA2 (model atribut generasi baru dengan cakupan atribut yang jauh lebih luas).
Pada akhir halaman ini Anda akan memahami kemampuan People Analytics, perbedaan kedua varian, cara kerjanya, serta persyaratan kamera dan konfigurasi yang diperlukan. Untuk referensi endpoint REST API secara lengkap, lihat API Reference.
Pilih Varian
Kedua varian memiliki kemampuan analitik dasar yang identik (counting, ROI counting, dwelling, density) dan berbagi konfigurasi inti yang sama. Perbedaan utama terletak pada model klasifikasi atribut yang digunakan.
| Aspek | NFV4-MPAA | NFV4-MPA2 |
|---|---|---|
| Pipeline name (internal) | People Analytic With Attribute | People Analytic With Attribute 2 |
| Model atribut | Generasi pertama | Generasi baru (lebih banyak atribut) |
| Jumlah kelas atribut | 7 | 14 |
| Atribut dasar | age, gender, mask, glasses, head_covering, upper_color, lower_color | semua atribut MPAA |
| Atribut tambahan | — | gloves, upper_cloth, lower_cloth, body_type, face_expression, footwear_color, belonging |
| Kelas usia | Child, Adult, Elderly | Child, Teen, Adult, Elderly |
| Palet warna pakaian | 11 warna | 13 warna (menambah Beige + reorganisasi label) |
Label head_covering | Hat, Hijab, None | Hat, Hijab, Helmet, Hoodie cap, Other, No head covering, Unknown |
| Resolusi input deteksi | 512 × 352 | 512 × 352 |
| FPS internal pipeline | 7 | 7 |
object_confidence_threshold default | 0.53 | 0.53 |
Kapan memilih NFV4-MPAA: ketika kebutuhan atribut terbatas pada demografi dasar (usia, gender) dan informasi pakaian sederhana, dan Anda ingin tetap kompatibel dengan integrasi yang sudah dirancang untuk skema atribut versi pertama.
Kapan memilih NFV4-MPA2: ketika Anda membutuhkan atribut visual yang lebih kaya — misalnya jenis pakaian (T-shirt, Jacket, Dress), warna alas kaki, ekspresi wajah, atau deteksi barang bawaan (belonging seperti Backpack, Handbag, Handphone, Carrying child, dll.). MPA2 juga memiliki granularitas usia lebih baik (memisahkan Teen dari Adult) dan label head_covering yang lebih lengkap (termasuk Helmet untuk konteks keselamatan kerja).
Kedua varian sama-sama mendukung empat sub-analytics. Memilih MPA2 tidak mengubah cara Anda menyusun konfigurasi sub-analytics; hanya payload attributes di output yang lebih kaya.
Kemampuan
| Sub-Analytic | Deskripsi | Contoh Penggunaan |
|---|---|---|
| Counting | Menghitung orang yang melewati garis virtual | Hitung pengunjung masuk/keluar pintu |
| ROI Counting | Menghitung orang yang masuk/keluar area polygon | Monitor zona tertentu dalam ruangan |
| Dwelling | Mendeteksi orang yang berdiam di area tertentu | Alert loitering, pantau antrian |
| Density | Estimasi jumlah orang dalam area secara periodik | Monitor occupancy ruangan atau zona publik |
Atribut yang Didukung
Kedua varian memberikan setiap deteksi orang sekumpulan atribut. Bila confidence atribut di bawah threshold yang dikonfigurasi, label otomatis menjadi Unknown (untuk multi-class) atau dinegasikan menjadi No <label> (untuk binary seperti mask/glasses/gloves).
Atribut bersama (MPAA dan MPA2):
| Atribut | MPAA — Nilai yang Didukung | MPA2 — Nilai yang Didukung |
|---|---|---|
| Age | Child, Adult, Elderly | Child, Teen, Adult, Elderly |
| Gender | Male, Female | Male, Female |
| Mask | Mask, No mask | Mask, No mask |
| Glasses | Glasses, No glasses | Glasses, No glasses |
| Head Covering | Hat, Hijab, None | Hat, Hijab, Helmet, Hoodie cap, Other, No head covering, Unknown |
| Upper Color | Yellow, White, Red, Grey, Blue, Brown, Green, Pink, Purple, Orange, Black | Black, White, Grey, Red, Green, Blue, Brown, Pink, Purple, Orange, Yellow, Beige, Unknown |
| Lower Color | (sama dengan Upper Color) | (sama dengan Upper Color) |
Atribut tambahan eksklusif MPA2:
| Atribut | Nilai yang Didukung |
|---|---|
| Gloves | Gloves, No gloves |
| Upper Cloth | T-shirt, Shirt, Jacket, Hoodie, Sweater, Dress, Robe, Safety vest, Other, Unknown |
| Lower Cloth | Trousers, Shorts, Short skirt, Long skirt, Other, Unknown |
| Body Type | Slim, Average, Heavy-set |
| Face Expression | Happy, Angry, Sad, Neutral, Unknown |
| Footwear Color | (sama dengan palet warna MPA2 di atas) |
| Belonging | Backpack, Handbag, Shoulder bag, Suitcase, Box, Carrying baby, Accompanying baby, Carrying child, Accompanying child, Firearms, Sharp weapon, Handphone, Other (multi-label: array berisi semua item yang terdeteksi di atas threshold) |
Yang TIDAK Dilakukan
- Identifikasi atau pengenalan wajah — gunakan Face Recognition untuk itu
- Pelacakan orang lintas kamera (cross-camera tracking)
- Pengenalan plat kendaraan — gunakan License Plate Recognition
- Analisis kendaraan — gunakan Vehicle Analytics
Use Cases
Retail — Foot Traffic
Hitung pengunjung masuk/keluar toko dan analisis tren kunjungan harian atau mingguan.
Mall & Pusat Perbelanjaan
Pahami demografi pengunjung (usia, gender) untuk targeting tenant dan perencanaan marketing.
Keamanan — Loitering Detection
Deteksi orang yang berdiam terlalu lama di area ATM, lobi, atau zona restricted dan kirim alert otomatis.
Gedung & Office — Occupancy
Monitor kepadatan meeting room, lobby, atau area kerja secara periodik untuk optimasi penggunaan ruang.
Pabrik — Zona Berbahaya
Deteksi entry ke area restricted dan kirim alert segera saat seseorang masuk ke zona berbahaya.
Cara Kerja
Setiap frame video didekode dan dilewatkan ke komponen deteksi orang. Tracker kemudian melacak identitas setiap individu lintas frame menggunakan bounding box dan confidence score. Setiap deteksi dikirim ke attribute classifier yang menghasilkan nilai atribut beserta confidence-nya — model yang digunakan ditentukan oleh varian (MPAA atau MPA2).
Hasil tracking kemudian diproses secara paralel oleh empat sub-analytics: Counting (crossing garis virtual), ROI Counting (masuk/keluar polygon), Dwelling (durasi tinggal di area), dan Density (estimasi jumlah orang periodik). Event dihasilkan sesuai logic yang aktif dan dikirim melalui event bus ke sistem downstream.
Persyaratan
Kamera
| Requirement | Minimum | Rekomendasi |
|---|---|---|
| Resolusi | 480 × 360 px | 720p atau lebih |
| Frame Rate | 7 fps | 15–30 fps |
| Codec | H.264 | H.264 / H.265 |
Pemasangan untuk Counting:
- Sudut kamera 30–45 derajat dari horizontal — hindari top-down penuh karena mengurangi akurasi tracking
- Tinggi optimal 2,5–3,5 meter
- Pastikan seluruh lebar jalur masuk/keluar terlihat tanpa obstruksi
Pemasangan untuk Density / Crowd:
- Posisi lebih tinggi (3–5 meter) dengan sudut lebih curam untuk cakupan area lebih luas
- Hindari backlight atau sumber cahaya langsung ke lensa
- Pencahayaan minimal 100 lux di area yang dimonitor
Lingkungan
- GPU NVIDIA (TensorRT) atau Intel (OpenVINO) untuk akselerasi inferensi
- RAM minimal 2 GB per pipeline
- GPU memory: ~700 MB per pipeline (kedua varian membundel deteksi orang + classifier atribut). MPA2 menggunakan model atribut generasi baru — pantau penggunaan memori aktual saat deployment, terutama bila menjalankan banyak pipeline paralel.
- CPU: minimal 3 core per pipeline
Dependencies
- Visionaire API berjalan di port default
4004 - Stream video sudah terdaftar dan dapat diakses oleh Visionaire
Setting Up
Siapkan Stream Video
Pastikan stream video sudah terdaftar di Visionaire dan dapat diakses. Catat stream_id yang akan digunakan.
Pilih Varian Pipeline
Pilih antara NFV4-MPAA atau NFV4-MPA2 berdasarkan kebutuhan atribut Anda. Gunakan MPAA jika cukup dengan atribut dasar (usia, gender, mask, glasses, head_covering, upper/lower color). Gunakan MPA2 jika Anda membutuhkan atribut tambahan seperti jenis pakaian, ekspresi wajah, warna alas kaki, atau deteksi barang bawaan.
Lihat tabel di bagian Pilih Varian untuk daftar perbedaan lengkap antara kedua model.
Rancang Konfigurasi Sub-Analytics
Tentukan sub-analytics mana yang akan diaktifkan dan konfigurasinya:
- Counting: tentukan posisi garis virtual (
areasberisi dua titik) dalam koordinat normalized (0.0–1.0) - ROI Counting / Dwelling / Density: tentukan polygon zona (
areasdengan minimal 3 titik) - Nonaktifkan sub-analytics yang tidak dibutuhkan dengan
"is_active": falseuntuk menghemat resource
Lihat bagian Konfigurasi di bawah untuk detail semua parameter.
Buat Pipeline via API
Kirim request POST /pipeline/{node_num}/{stream_id}/{analytic_id} dengan konfigurasi yang telah dirancang. analytic_id adalah NFV4-MPAA atau NFV4-MPA2.
Detail endpoint dan contoh request ada di halaman API Reference.
Verifikasi dengan MJPEG Stream
Akses endpoint /pipeline/{node_num}/{stream_id}/{analytic_id}/mjpeg di browser untuk memverifikasi pipeline berjalan dan overlay garis/ROI sudah benar.
Konfigurasi
Parameter API
Global
| Setting | Apa yang Dilakukan | Default | Kapan Disesuaikan |
|---|---|---|---|
object_confidence_threshold | Confidence minimum untuk deteksi orang | 0.53 | Turunkan ke 0.4 jika banyak miss detection; naikkan ke 0.7 untuk mengurangi false positive |
colordet_crop_w | Rasio lebar crop untuk deteksi warna pakaian | 0.4 | Jarang perlu diubah |
colordet_crop_h | Rasio tinggi crop untuk deteksi warna pakaian | 0.4 | Jarang perlu diubah |
Counting Logic
| Setting | Apa yang Dilakukan | Default | Kapan Disesuaikan |
|---|---|---|---|
dumping_sampling_time | Interval agregasi event (ms) | 500 | Naikkan ke 1000ms untuk traffic lambat; turunkan untuk respon lebih cepat |
dump_ignore_iou_threshold | Threshold IoU untuk deduplication crossing | 0.8 | Naikkan ke 0.9 jika terjadi double count |
enable_group_tracking | Aktifkan group/crowd tracking | false | Aktifkan untuk area padat |
minimum_tracking_height | Tinggi minimum bbox (rasio terhadap frame) | 0.05 | Turunkan jika orang terlihat kecil di frame |
maximum_tracking_objects | Jumlah maksimum objek yang di-track | 30 | Naikkan ke 50–100 untuk area ramai |
Konfigurasi garis (field areas di dalam logic counting):
| Setting | Apa yang Dilakukan | Default |
|---|---|---|
name | Nama tampilan garis | — |
points | Dua titik garis [{"x":x1,"y":y1},{"x":x2,"y":y2}] dalam koordinat normalized 0–1 | — |
direction | Arah yang dihitung: "in", "out", atau "both" | "both" |
bidirection | true jika menghitung kedua arah | true |
Contoh ringkas:
{
"name": "counting",
"is_active": true,
"areas": [
{
"name": "Main Entrance",
"points": [{"x": 0.2, "y": 0.5}, {"x": 0.8, "y": 0.5}],
"direction": "both"
}
]
}Untuk roi_counting, dwelling, dan density, gunakan field areas berisi polygon (minimal 3 titik) dengan format points yang sama.
Dwelling Logic
| Setting | Apa yang Dilakukan | Default | Kapan Disesuaikan |
|---|---|---|---|
dwelling_treshold_alert_sec | Durasi (detik) sebelum alert dikirim (0 = nonaktif) | 0 | Set 30–120 untuk security alert |
minimum_dwelling_sec | Durasi minimum dwelling untuk generate event | 2 | Naikkan untuk filter gerakan singkat |
idle_time_sec | Grace period setelah keluar ROI sebelum timer direset | 1 | Naikkan ke 3–5 untuk toleransi gerakan kecil |
object_intersect_threshold | Threshold interseksi orang dengan ROI | 0.85 | Turunkan ke 0.7 jika orang di tepi ROI tidak terdeteksi |
minimum_object_area_size | Area minimum bbox dalam piksel² | 2000 | Turunkan jika orang jauh dari kamera |
Penulisan dwelling_treshold_alert_sec dengan typo (treshold bukan threshold) sesuai dengan kunci konfigurasi yang diterima oleh source code.
Density Logic
| Setting | Apa yang Dilakukan | Default | Kapan Disesuaikan |
|---|---|---|---|
interval | Interval pelaporan kepadatan (detik) | 10 | Naikkan ke 60 untuk occupancy monitoring; turunkan untuk respon cepat |
inside | Hitung orang di dalam ROI (true) atau di luar (false) | true | Ubah ke false untuk menghitung orang di luar zona tertentu |
dump_attributes | Sertakan ringkasan atribut per objek dalam event | true | Nonaktifkan untuk hemat bandwidth |
Attribute Thresholds
Semua threshold di bawah ini berlaku untuk kedua varian dengan default 0.5. Naikkan threshold untuk hasil lebih konservatif (lebih banyak label menjadi Unknown atau dinegasikan); turunkan untuk recall lebih tinggi.
Threshold bersama (MPAA & MPA2):
| Setting | Apa yang Dilakukan | Default |
|---|---|---|
age_confidence_threshold | Threshold confidence klasifikasi usia | 0.5 |
gender_confidence_threshold | Threshold confidence deteksi gender | 0.5 |
mask_confidence_threshold | Threshold confidence deteksi masker | 0.5 |
glasses_confidence_threshold | Threshold confidence deteksi kacamata | 0.5 |
head_covering_confidence_threshold | Threshold confidence penutup kepala | 0.5 |
upper_color_confidence_threshold | Threshold confidence warna pakaian atas | 0.5 |
lower_color_confidence_threshold | Threshold confidence warna pakaian bawah | 0.5 |
Threshold tambahan eksklusif MPA2:
| Setting | Apa yang Dilakukan | Default |
|---|---|---|
gloves_confidence_threshold | Threshold confidence deteksi sarung tangan | 0.5 |
upper_cloth_confidence_threshold | Threshold confidence jenis pakaian atas | 0.5 |
lower_cloth_confidence_threshold | Threshold confidence jenis pakaian bawah | 0.5 |
body_type_confidence_threshold | Threshold confidence body type | 0.5 |
face_expression_confidence_threshold | Threshold confidence ekspresi wajah | 0.5 |
footwear_color_confidence_threshold | Threshold confidence warna alas kaki | 0.5 |
belonging_confidence_threshold | Threshold confidence item bawaan (item dengan confidence di bawah threshold akan difilter dari array) | 0.5 |
Mengirim threshold MPA2 ke pipeline MPAA tidak akan error tetapi diabaikan, karena MPAA tidak memiliki kelas atribut tersebut. Sebaliknya, threshold dasar (age, gender, mask, dst.) berlaku di kedua varian.
Output yang Dihasilkan
Setiap event memiliki struktur top-level berikut, dengan detail spesifik logic berada di field pipeline_data:
| Field Top-Level | Tipe | Deskripsi |
|---|---|---|
analytic_id | string | NFV4-MPAA atau NFV4-MPA2 |
stream_id | string | ID stream yang diproses |
stream_name | string | Nama stream |
node_num | integer | Nomor node yang memproses |
timestamp | integer (ms) | Unix timestamp event (millisecond) |
primary_text | string | Teks utama event (mis. label objek atau nama area) |
secondary_text | string | Teks pelengkap (mis. arah, durasi, atau jumlah) |
image_jpeg | string (base64) | Cuplikan frame saat event terjadi |
pipeline_data | object | Payload utama hasil sub-analytic (lihat di bawah) |
Field pipeline_data per Logic
Setiap event mewakili satu hasil dari sub-analytic — bukan array. Misalnya satu event counting berisi satu orang yang melewati garis.
| Field | Tipe | Tersedia Pada |
|---|---|---|
logic | string | semua (counting, roi_counting, dwelling, density) |
label | string | counting, roi_counting, dwelling (selalu "person") |
confidence | float | counting, roi_counting, dwelling |
tracker_id | integer | counting, roi_counting, dwelling |
group_id | integer | counting, roi_counting, dwelling |
area_name | string | counting, roi_counting, dwelling |
direction | string | counting, roi_counting ("in" / "out") |
time_in / time_out / time_alert | integer (ms) | dwelling |
duration | float (detik) | dwelling |
attributes | object | counting, roi_counting, dwelling (cakupan field bergantung pada varian — MPA2 menyertakan field tambahan) |
area | string | density (nama ROI) |
estimation | integer | density (jumlah orang dalam ROI) |
interval | integer (detik) | density |
detected | array | density (rincian per objek dengan tracker_id, bbox, label, confidence, dan attributes saat dump_attributes: true) |
event_id | string | semua (hash unik per event) |
Contoh Event
{
"analytic_id": "NFV4-MPAA",
"stream_id": "stream_001",
"timestamp": 1705314600000,
"primary_text": "person",
"secondary_text": "in",
"pipeline_data": {
"logic": "counting",
"label": "person",
"confidence": 0.85,
"tracker_id": 5,
"area_name": "Main Entrance",
"direction": "in",
"attributes": {
"person": { "label": "person", "confidence": 0.85 },
"age": { "label": "Adult", "confidence": 0.88 },
"gender": { "label": "Male", "confidence": 0.92 },
"mask": { "label": "No mask", "confidence": 0.95 },
"glasses": { "label": "No glasses", "confidence": 0.88 },
"head_covering": { "label": "None", "confidence": 0.81 },
"upper_color": { "label": "Blue", "confidence": 0.79 },
"lower_color": { "label": "Black", "confidence": 0.84 }
},
"event_id": "1705314600000-3a1f9d4c"
}
}{
"analytic_id": "NFV4-MPA2",
"stream_id": "stream_001",
"timestamp": 1705314600000,
"primary_text": "person",
"secondary_text": "in",
"pipeline_data": {
"logic": "counting",
"label": "person",
"confidence": 0.85,
"tracker_id": 5,
"area_name": "Main Entrance",
"direction": "in",
"attributes": {
"person": { "label": "person", "confidence": 0.85 },
"age": { "label": "Adult", "confidence": 0.88 },
"gender": { "label": "Male", "confidence": 0.92 },
"mask": { "label": "No mask", "confidence": 0.95 },
"glasses": { "label": "No glasses", "confidence": 0.88 },
"gloves": { "label": "No gloves", "confidence": 0.91 },
"head_covering": { "label": "No head covering", "confidence": 0.83 },
"upper_color": { "label": "Blue", "confidence": 0.79 },
"lower_color": { "label": "Black", "confidence": 0.84 },
"upper_cloth": { "label": "T-shirt", "confidence": 0.77 },
"lower_cloth": { "label": "Trousers", "confidence": 0.81 },
"body_type": { "label": "Average", "confidence": 0.74 },
"face_expression": { "label": "Neutral", "confidence": 0.69 },
"footwear_color": { "label": "Black", "confidence": 0.72 },
"belonging": [
{ "label": "Backpack", "confidence": 0.82 },
{ "label": "Handphone", "confidence": 0.66 }
]
},
"event_id": "1705314600000-3a1f9d4c"
}
}{
"analytic_id": "NFV4-MPAA",
"stream_id": "stream_001",
"timestamp": 1705314600000,
"primary_text": "Restricted Zone",
"secondary_text": "45.000 s",
"pipeline_data": {
"logic": "dwelling",
"label": "person",
"confidence": 0.75,
"tracker_id": 12,
"area_name": "Restricted Zone",
"time_in": 1705314555000,
"time_out": null,
"time_alert": null,
"duration": 45.0,
"attributes": {
"person": { "label": "person", "confidence": 0.75 },
"from": { "label": "", "confidence": 0 },
"to": { "label": "", "confidence": 0 }
}
}
}{
"analytic_id": "NFV4-MPA2",
"stream_id": "stream_001",
"timestamp": 1705314600000,
"primary_text": "Lobby",
"secondary_text": "25",
"pipeline_data": {
"logic": "density",
"interval": 10,
"area": "Lobby",
"estimation": 25,
"detected": [
{
"tracker_id": 7,
"label": "person",
"confidence": 0.82,
"bbox": { "top": 150, "left": 100, "width": 80, "height": 220 }
}
]
}
}Best Practices
Penempatan Kamera
- Gunakan sudut 30–45 derajat dari horizontal — top-down penuh menurunkan akurasi tracking
- Tinggi optimal 2,5–3,5 meter untuk counting; 3–5 meter untuk density/crowd coverage
- Pastikan coverage area tanpa blind spot dan hindari backlight atau cahaya langsung ke lensa
- Resolusi objek terkecil yang dimonitor minimal 50×100 piksel di frame
Konfigurasi Counting
- Letakkan garis 1–2 meter di dalam ruangan dari pintu untuk menghindari false count dari orang yang hanya lewat di depan
- Gunakan
direction: "both"untuk pintu dua arah; pisahkan garis in/out untuk jalur searah - Sesuaikan
dumping_sampling_timedengan kecepatan jalan rata-rata di area tersebut
Konfigurasi Dwelling
- ROI harus mencakup seluruh area target — margin sedikit lebih besar lebih baik
- Set
minimum_dwelling_secsesuai definisi "loitering" untuk konteks Anda - Gunakan
idle_time_secyang cukup agar orang yang bergerak sedikit tidak mereset timer
Akurasi Atribut
- Atribut wajah (age, gender, mask, glasses, face_expression) membutuhkan resolusi wajah minimal 50×50 piksel — kamera tidak boleh terlalu jauh
- Atribut pakaian dan body_type bekerja optimal pada bbox orang penuh (tidak ter-occlude di bawah pinggang)
- Pastikan pencahayaan frontal dan merata; hindari situasi backlit
- Filter hasil dengan attribute threshold yang sesuai konteks (mis. naikkan threshold mask untuk compliance monitoring ketat)
Limitations
- Occlusion parah: Jika lebih dari 50% tubuh tertutup (oleh orang lain atau objek), akurasi tracking menurun dan dapat menyebabkan ID tracker berganti
- Kerumunan sangat padat (>50 orang): Tracking individual menjadi tidak andal; pertimbangkan menggunakan Crowd Estimation (NFV4-CE) untuk estimasi kepadatan tinggi
- Top-down penuh (bird's eye view): Angle ini menyulitkan tracker untuk mempertahankan identity linkage; gunakan sudut miring 30–45 derajat
- Atribut dalam kondisi pencahayaan rendah: Akurasi attribute classification turun signifikan di bawah 100 lux
- Warna pakaian bermotif: Warna pattern/motif akan dideteksi sebagai warna dominan yang mungkin tidak selalu akurat
- Memilih varian: Setelah pipeline dibuat, varian tidak bisa diubah — Anda harus menghapus pipeline dan membuat ulang dengan
analytic_idbaru. Pilih varian sejak awal sesuai kebutuhan atribut (lihat Pilih Varian) - Atribut MPA2 lanjutan:
body_type,face_expression, danbelongingmemiliki keandalan yang bervariasi tergantung sudut dan kualitas frame; selalu validasi dengan threshold yang sesuai sebelum digunakan untuk decision-making otomatis
Modul Terkait
API Reference — License Plate Recognition
Referensi lengkap endpoint REST API Visionaire4 untuk manajemen pipeline License Plate Recognition — spawn, status, konfigurasi, streaming, dan format event output.
API Reference — People Analytics
Endpoint REST API untuk membuat, mengelola, dan memantau pipeline People Analytics (MPA/MPAA).