Appearance
Read events and payloads
One batch, multiple events
Browser mengirim POST /api/tracking/events dengan bentuk { "events": [...] }. Contoh berikut sintetis; ID dan waktu hanya ilustrasi.
json
{
"events": [{
"schema_version": 1,
"config_version": 12,
"event_id": "a76b24ce-2db0-4a6e-93e0-84be3e7fc521",
"anonymous_id": "4de376a5-70cc-4818-9a44-201c68883da1",
"session_id": "7a284f01-a611-4b54-8c31-8d05b617fb80",
"page_view_id": "0a4e4384-cfc9-427f-8551-a90489f54414",
"occurred_at": "2026-09-17T03:00:00.000Z",
"event_name": "component_click",
"page_key": "home",
"component_id": "btn-home-overview-services",
"analytics_consent": true,
"acquisition": {
"utm_source": "instagram",
"utm_medium": "paid_social",
"utm_campaign": "september_checkup"
},
"properties": { "destination_type": "internal" }
}]
}Event-specific data
Setiap baris di bawah memakai envelope identitas yang sama. Properties yang tidak relevan tidak perlu dikirim.
| UI / aktivitas | Event | Contoh properties |
|---|---|---|
| Halaman dibuka | page_view | {} |
| Section / banner terlihat | component_impression | {"position":0} untuk item berposisi |
| Tombol / card / menu diklik | component_click | {"destination_type":"internal"} |
| Pengunjung memindah slide | carousel_navigation | {"position":1,"trigger":"arrow","direction":"next"} |
| Accordion dibuka | accordion_open | {} |
| Tab dipilih | tab_select | {} |
| Pencarian dikirim | search_submit | {}; tidak mengirim teks pencarian |
| Hasil submit form | form_submit_result | {"status":"success"} |
| Scroll halaman | page_scroll | {"depth_percent":50} |
| Scroll artikel | article_scroll | {"depth_percent":75} |
Tabel ini adalah kontrak tipe event yang didukung runtime, bukan klaim bahwa semua komponen memiliki semua event. Milestone scroll: 25, 50, 75, 90. Status form: success, validation_error, server_error.
Identity and labels
component_id: Tracking ID tombol atau ID section untuk event section.entity_id: item yang berinteraksi jika relevan;page_entity_id: record halaman detail seperti artikel/klinik.ga_client_id,ga_session_id: opsional, jika identitas GA tersedia.bm_click_id: konteks journey WhatsApp jika tersedia; bukan identitas semua button clicks.- Component name dan CTA Title tidak menjadi field teks bebas pada payload event.
config_versionmencatat versi yang dipakai; ini bukan tabeltracking_settings_history. History pengaturan tidak ditambahkan dalam rancangan sekarang.
Google Analytics mirror
GA bridge memakai nama bm_ + nama event, misalnya bm_component_click, dengan bm_event_id untuk menghubungkan ke event first-party. Export GA menyimpan parameter di struktur event_params; bentuknya berbeda dari envelope collector.
Consent, pemblokiran script, retry, dan batas session dapat membuat data kedua sumber berbeda. Jangan menganggap jumlah keduanya wajib identik.