# Google Analytics 4 (GA4)

## Perbedaan mendasar dari Universal Analytics

GA4 **berbasis peristiwa**, bukan sesi. Semua yang terjadi dicatat sebagai event: `page_view`, `scroll`, `click`, `session_start`, dan event buatan kita. Dari event-event itu laporan dibentuk. Konsekuensi praktisnya: kalau sebuah perbuatan pengunjung tidak dikirim sebagai event, perbuatan itu **tidak akan pernah muncul** di laporan — sekalipun jelas terjadi di lapangan.

## Istilah yang wajib dibedakan

| Istilah | Arti |
|---|---|
| Event | Peristiwa yang tercatat, mis. `page_view`, `click`, `klik_wa` |
| Parameter | Keterangan pada event, mis. `link_url`, `page_location` |
| Peristiwa utama (key event) | Event yang ditandai bernilai bisnis — inilah "konversi" di GA4 |
| Kanal | Pengelompokan sumber kedatangan, mis. Organic Search, Direct, Paid Search |
| Atribusi | Aturan pembagian nilai pada lintasan menuju konversi |

Yang sering keliru: **konversi GA4 = peristiwa utama.** Kalau belum ada peristiwa utama yang benar, akun itu sebenarnya tidak mengukur apa pun yang berharga.

## Event yang otomatis tersedia (pengukuran yang disempurnakan)

`page_view`, `scroll` (kedalaman 90%), `click` (klik tautan keluar), `file_download`, `form_start`, `form_submit`, `video_*`, `site_search`, `first_visit`, `session_start`, `user_engagement`.

Catatan penting dari pengalaman lapangan: pada situs yang tag-nya dipasang lewat **Google Tag Site Kit (GT-)**, event buatan sendiri kadang **tidak sampai** ke properti, sementara event otomatis tetap masuk. Yang terjadi di DAS: klik WhatsApp justru terekam sebagai event `click` dengan parameter `link_url` — bukan sebagai event kustom `klik_wa` yang kami tanam.

**Jalan keluar tanpa mengubah situs:** buat **event turunan** di GA4 (Admin → Events → Create event), misalnya `klik_wa` dari event `click` dengan syarat `linkUrl` mengandung `wa.me`. Lalu tandai sebagai peristiwa utama dan impor ke Google Ads sebagai konversi.

## Data API

GA4 Data API memungkinkan penarikan laporan secara terjadwal. Yang berguna untuk kita:
- `runReport` — laporan agregat (kanal, halaman masuk, kota, perangkat).
- `runRealtimeReport` — memeriksa apakah sebuah event benar-benar masuk (dipakai untuk menguji pelacakan klik WhatsApp).
- Dimensi `sessionCampaignName` — membaca jejak kampanye Google Ads tanpa akses API Ads.

Izin yang dibutuhkan: `analytics.readonly` untuk membaca, `analytics.edit` untuk membuat event dan menandai peristiwa utama. **Token kita saat ini hanya baca** — itu sebabnya pembuatan event turunan harus dilakukan di antarmuka.

## Jebakan yang sudah kita alami

1. **Properti tertukar.** TSC pernah dibaca dari properti situs saudara (`surabaya-skincentre.com`). Selalu cocokkan properti dengan hostname, jangan mengandalkan kesamaan nama.
2. **Bot menggelembungkan angka.** Di StudioSoft, kota besar justru kota pusat data (Virginia, Council Bluffs). Baca **Organic Search dengan penyaring Indonesia**, bukan All traffic.
3. **Klik WhatsApp tanpa event khusus.** Umum terjadi; untuk sementara baca event `click` dengan parameter tautan.
4. **Pemuatan halaman bukan konversi.** Di DAS, satu-satunya "konversi" yang tercatat adalah pemuatan halaman — itu tidak menunjukkan orang menghubungi bengkel.

## Sumber resmi

- Menyiapkan Analytics: https://support.google.com/analytics/answer/9304153
- Tentang peristiwa: https://support.google.com/analytics/answer/9322688
- Tentang peristiwa utama (konversi): https://support.google.com/analytics/answer/9267568
- Membuat audiens: https://support.google.com/analytics/answer/9267572
- GA4 Data API: https://developers.google.com/analytics/devguides/reporting/data/v1

## Catatan penerapan

- Setiap situs klien sebaiknya punya **satu peristiwa utama yang benar** (klik WhatsApp, kirim formulir, telepon) sebelum dana iklan dibesarkan.
- Untuk bengkel dan klinik, klik WhatsApp adalah konversi paling dekat dengan uang.
- Laporan mingguan sebaiknya selalu menampilkan pasangan **tayangan + klik**, karena tayangan naik sementara klik turun bisa berarti masalah cuplikan, bukan masalah peringkat.
