Mengenal DataLayer dan Custom Event
Sampai chapter sebelumnya, semua tracking yang kamu buat mengandalkan interaksi yang bisa dideteksi GTM secara otomatis: pageview, klik, scroll, dan form submission. Tapi ada banyak situasi di mana GTM tidak bisa “melihat” apa yang terjadi, misalnya setelah transaksi berhasil diproses oleh sistem backend. Di sinilah dataLayer berperan.
Apa Itu DataLayer?
DataLayer adalah sebuah objek JavaScript yang berfungsi sebagai “papan pengumuman” antara website kamu dan GTM. Website menulis informasi ke dataLayer, dan GTM membacanya.
Secara teknis, dataLayer itu array JavaScript yang sudah otomatis dibuat oleh GTM saat container dimuat:
window.dataLayer = window.dataLayer || [];
Kamu bisa “mengirim pesan” ke dataLayer dengan cara:
dataLayer.push({
'event': 'nama_event',
'key1': 'value1',
'key2': 'value2'
});
Setiap kali dataLayer.push() dipanggil dengan properti event, GTM langsung tahu ada sesuatu yang terjadi dan akan mengevaluasi trigger yang sesuai.
Analogi DataLayer
Bayangkan GTM itu satpam di lobi gedung. Satpam ini cuma bisa melihat apa yang terjadi di lobi (klik, scroll, pageview). Tapi kalau ada kejadian di lantai 5 (misalnya transaksi pembayaran berhasil diproses server), satpam tidak tahu.
DataLayer itu seperti interkom. Orang di lantai 5 pencet interkom dan bilang: “Pak, ada tamu yang baru bayar Rp 500.000 untuk produk XYZ.” Sekarang satpam punya informasinya dan bisa mencatat ke log.
Praktek: Tracking Pembelian (Purchase Event)
Skenario: kamu punya toko online yang memproses pembayaran. Setelah pembayaran berhasil, halaman “Terima Kasih” ditampilkan. Kamu ingin mengirim data transaksi ke GA4.
Langkah 1: Tambahkan dataLayer.push() di halaman “Terima Kasih”
Minta developer untuk menambahkan kode ini di halaman sukses pembayaran, sebelum kode GTM container:
<script>
dataLayer.push({
'event': 'purchase',
'transaction_id': 'TRX-20260313-001',
'value': 350000,
'currency': 'IDR',
'items': [
{
'item_name': 'Kelas Online SEO Dasar',
'price': 350000,
'quantity': 1
}
]
});
</script>
Dalam implementasi nyata, nilai-nilai seperti transaction_id, value, dan items diisi secara dinamis oleh backend berdasarkan data transaksi yang sebenarnya.
Langkah 2: Buat Trigger Custom Event di GTM
- Triggers > New
- Nama:
Trigger - Purchase - Tipe: Custom Event
- Event Name:
purchase(harus sama persis dengan nama event didataLayer.push()) - Simpan
Langkah 3: Buat Data Layer Variables
Untuk mengambil data dari dataLayer, kamu perlu membuat variable:
- Variables > New (User-Defined)
- Nama:
DLV - Transaction ID - Tipe: Data Layer Variable
- Data Layer Variable Name:
transaction_id - Simpan
Ulangi untuk variable lain yang dibutuhkan (value, currency).
Langkah 4: Buat Tag GA4 Event
- Tags > New
- Nama:
GA4 Event - Purchase - Tag Configuration: Google Analytics: GA4 Event
- Event Name:
purchase - Event Parameters:
transaction_id/ Value:{{DLV - Transaction ID}}value/ Value:{{DLV - Value}}currency/ Value:{{DLV - Currency}}
- Triggering: pilih
Trigger - Purchase - Simpan
Custom Event untuk Kasus Lain
DataLayer dan custom event tidak hanya untuk pembelian. Berikut beberapa contoh penggunaan yang sering saya implementasikan:
Login berhasil:
dataLayer.push({
'event': 'user_login',
'method': 'google'
});
Add to cart:
dataLayer.push({
'event': 'add_to_cart',
'item_name': 'Jaket Outdoor Premium',
'item_price': 750000,
'item_category': 'Outerwear'
});
Video selesai ditonton:
dataLayer.push({
'event': 'video_complete',
'video_title': 'Tutorial GTM Dasar',
'video_duration': 480
});
Penamaan Event yang Konsisten
Ini hal kecil yang dampaknya besar. Punya konvensi penamaan dari awal akan menyelamatkan kamu di kemudian hari saat melihat data di GA4.
Rekomendasi saya:
- Pakai huruf kecil semua dan underscore sebagai pemisah:
klik_whatsapp, bukanKlikWhatsAppatauKlik WhatsApp - Gunakan format
aksi_objek:submit_form,klik_cta,lihat_produk - Hindari nama yang terlalu generik seperti
clickatauevent1 - Kalau untuk GA4, sebisa mungkin pakai recommended event names dari Google seperti
purchase,add_to_cart,sign_up
Debugging DataLayer
Cara cek apakah dataLayer sudah berjalan benar:
- Buka Preview Mode di GTM
- Lakukan aksi yang memicu
dataLayer.push()(misalnya selesaikan pembelian test) - Di panel Tag Assistant, cari event dengan nama yang sesuai (misalnya
purchase) - Klik event tersebut, lalu buka tab Data Layer untuk melihat isi datanya
- Pastikan semua key-value pair muncul sesuai yang diharapkan
Kalau event tidak muncul di Tag Assistant, kemungkinan besar dataLayer.push() tidak terpanggil. Buka Console di browser (F12 > Console), ketik dataLayer, dan periksa isinya secara manual.
Chapter terakhir akan membahas debugging secara menyeluruh dan best practice untuk mengelola GTM di dunia nyata.