Skip to content

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 / aktivitasEventContoh properties
Halaman dibukapage_view{}
Section / banner terlihatcomponent_impression{"position":0} untuk item berposisi
Tombol / card / menu diklikcomponent_click{"destination_type":"internal"}
Pengunjung memindah slidecarousel_navigation{"position":1,"trigger":"arrow","direction":"next"}
Accordion dibukaaccordion_open{}
Tab dipilihtab_select{}
Pencarian dikirimsearch_submit{}; tidak mengirim teks pencarian
Hasil submit formform_submit_result{"status":"success"}
Scroll halamanpage_scroll{"depth_percent":50}
Scroll artikelarticle_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_version mencatat versi yang dipakai; ini bukan tabel tracking_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.

Bumame Engineering · bmlytics · Local implementation guide