"Di GTM preview tag-nya fire dengan sempurna, tapi di situs live tidak ada yang terlacak." Jika Anda menggunakan Tag Manager, ini adalah pola paling umum — sekaligus paling membingungkan. Preview yang hijau (fired) membuat Anda merasa setupnya sudah benar, tapi situs live tidak menunjukkan angka apa pun setelah dipublikasikan. Dan jika Anda tidak bisa melihat di mana perbedaan antara preview dan production, Anda akan terus-menerus mengutak-atik pengaturan tanpa henti.
Apakah salah satu dari ini terdengar familiar?
- GTM preview menunjukkan tag fire, tapi production tidak terlacak
- Anda mengira sudah publish (Submit), tapi perubahannya belum live
- Hanya halaman atau tombol tertentu yang gagal memicu tag
- Di DevTools, request pengukuran bahkan tidak terkirim sama sekali
- Event tidak pernah sampai ke GA4 atau Google Ads
Panduan ini menyusun apa yang harus diperiksa, dan dalam urutan apa, ketika GTM tidak melacak — dibagi menjadi enam penyebab umum. Sebelum Anda membangun ulang tag dan trigger secara acak, telusuri dari atas ke bawah terlebih dahulu.
Prinsip dasar: "berfungsi di preview" dan "berfungsi di production" itu berbeda
Alasan terbesar diagnosis jadi salah arah adalah memperlakukan preview yang hijau (fired) sebagai bukti bahwa itu berfungsi di production. GTM preview memuat versi Anda yang belum dipublikasikan dan masih dalam proses (in-progress) ke browser Anda sendiri lalu menjalankannya. Jadi meskipun preview fire, perubahan itu belum tentu sedang disajikan ke pengunjung sungguhan.
Pertama, pahami dulu status mana yang sebenarnya sedang Anda lihat.
| Status | Konten milik siapa yang Anda lihat | Terlacak? |
|---|---|---|
| Preview (Tag Assistant) | Versi kerja yang belum dipublikasikan | Hanya di browser Anda |
| Published (setelah Submit) | Versi yang dipublikasikan dari container | Semua pengunjung |
| Edit yang belum dipublikasikan | Draft workspace | Tidak disajikan ke siapa pun |
Poin kuncinya: "fire di preview" tidak sama dengan "terlacak di production." Penyebab 1–6 di bawah ini diurutkan dari yang paling umum dan paling mudah diisolasi, mengikuti persis dari kesenjangan ini.
Penyebab 1: Anda belum mempublikasikan (Submit) perubahannya
Ini adalah penyebab paling umum dan paling sering terlewat. Di GTM, membuat dan menyimpan tag atau trigger tidak langsung membuatnya live. Perubahan baru masuk ke production hanya setelah Anda menekan "Submit" di kanan atas dan mempublikasikan versi baru. Preview menjalankan draft workspace Anda, jadi ia tetap fire tanpa perlu dipublikasikan — inilah tepatnya kenapa "berfungsi di preview tapi tidak di production" terjadi.
Cara memeriksa: buka layar "Versions" di kanan atas GTM dan pastikan apakah perubahan terbaru Anda sudah termasuk dalam "published version." Jika timestamp versi "Published..." lebih lama dari edit Anda, berarti Anda belum publish.
Jebakan umum: sebagian besar kasus "hijau di preview tapi nol di production" adalah Penyebab 1 ini. Jangan berhenti hanya karena preview fire — pastikan dulu Anda sudah menekan Submit dan perubahannya ada di published version. Lihat juga Saat konversi fire tapi tidak tercatat.
Penyebab 2: Kondisi trigger tidak cocok dengan situasi production yang sebenarnya
Apakah tag fire atau tidak ditentukan oleh trigger-nya. Jika kondisi tersebut sedikit saja berbeda dari halaman sebenarnya, tag tidak akan fire di production.
- Ketidakcocokan kondisi URL: Anda membuat kondisi "Page URL mengandung
/thanks," tapi halaman completion di live sedikit berbeda —/complete,/thank-you/, ada trailing slash, atau query string (?id=...) - Ketidakcocokan elemen klik: class atau ID tombol berbeda di production, atau di SPA (situs yang tidak reload antar tampilan) elemen klik diganti secara dinamis
- Trigger form-submit: tergantung implementasinya, form submit standar tidak terdeteksi sehingga tidak fire
Cara memeriksa: di preview (Tag Assistant), lihat apakah trigger menunjukkan "Fired" atau "Not Fired" saat Anda melakukan aksi tersebut. Jika Not Fired, cocokkan kondisi trigger dengan nilai sebenarnya (URL, elemen klik).
Jebakan umum: saat "hanya halaman tertentu yang tidak terlacak," curigai dulu kondisi URL pada trigger. Salin URL live dan bandingkan karakter demi karakter dengan kondisinya untuk memastikan.
Penyebab 3: Salah published version atau container ID (GTM-XXXX)
Yang mengejutkan, ini cukup sering terjadi: tempat yang Anda lihat berbeda dengan tempat yang live.
- Container ID tertukar: production menggunakan
GTM-AAAA, tapi Anda mengeditGTM-BBBB(container test, milik situs lain, atau yang dibuat ulang) — sebanyak apa pun Anda konfigurasi, tidak akan pernah muncul di production - Kode lama atau instalasi ganda: kode GTM lama masih tertinggal di situs, atau beberapa GTM terpasang dua kali dan yang berjalan bukan yang Anda maksud
Cara memeriksa: buka DevTools di halaman live, cari di source untuk ID yang dimulai dengan GTM-, dan pastikan cocok dengan container ID yang sedang Anda edit. Juga perhatikan jika ada lebih dari satu GTM- (instalasi ganda).
Jebakan umum: agensi dan tim marketing masing-masing memasang GTM yang berbeda, dan "saya sudah setup tapi tidak muncul" berlarut-larut selama berminggu-minggu. Pastikan dulu container ID yang sebenarnya ada di HTML live.
Penyebab 4: Tag "dijeda (paused)" atau tidak terhubung
Terkadang tag itu sendiri yang berhenti.
- Tag diset ke "Pause" dalam konfigurasinya
- Tag tidak punya trigger yang terpasang (tanpa kondisi firing, tag tidak akan pernah fire)
- Tag dependensi yang diandalkan (tag settings/inisialisasi) tidak fire
Cara memeriksa: di daftar tag GTM, pastikan tag target tidak memiliki ikon pause dan kolom trigger-nya tidak kosong.
Jebakan umum: cukup umum terjadi men-pause tag untuk testing, lalu publish saat masih paused, dan lupa mengaktifkannya kembali. Tinjau status tag Anda di daftar sebelum publish.
Penyebab 5: Diblokir oleh pengaturan consent
Sinyal pengukuran bisa dihentikan tepat sebelum dikirim. Dengan GTM consent mode atau integrasi dengan banner cookie consent, firing tag bisa ditahan atau diblokir selama pengguna belum memberikan izin.
- Sebelum banner memberikan izin, tag pengukuran menunggu atau tidak fire
- Pengukuran dibatasi untuk pengguna yang memilih "hanya cookie esensial"
Cara memeriksa: tinjau status consent di preview dan lihat apakah firing berubah sebelum vs. sesudah consent diberikan. Di production, pastikan pengukuran berjalan setelah Anda benar-benar memberikan izin di banner.
Jebakan umum: jika "berfungsi di preview (dianggap sudah consent) tapi tidak untuk pengunjung sungguhan," pengaturan consent mungkin memblokirnya. Mudah lupa bahwa Anda-di-preview sudah consent sementara banyak pengunjung sungguhan belum.
Penyebab 6: Variabel (data layer) kosong
Meskipun tag fire, jika payload-nya kosong pengukuran bisa gagal selesai, atau nilainya salah. GTM membaca amount, order ID, nama event, dan sebagainya dari mekanisme handoff yang disebut data layer. Jika ini tidak terisi di production, tag tetap fire tapi mengirim "tanpa nilai."
- Tag fire sebelum situs menulis nilai ke data layer (mismatch timing)
- Nama variabel dieja berbeda di sisi situs vs. sisi GTM
- Di preview seorang developer mengisi nilai secara manual, sementara di production tidak terisi
Cara memeriksa: di tab "Variables" dan "Data Layer" pada preview, pastikan variabel target berisi nilai yang Anda harapkan pada saat firing. Jika kosong atau undefined, tinjau timing penulisan di sisi situs dan nama variabelnya.
Jebakan umum: amount pembelian e-commerce yang datang sebagai "0" atau kosong hampir selalu karena timing data layer ini atau ketidakcocokan nama variabel. Melakukan cross-check dengan verifikasi tag GA4 dan verifikasi konversi Google Ads memudahkan isolasi masalah.
Sering terlewat: blocking trigger diam-diam mencegah firing
Meskipun semua kondisi firing trigger pada sebuah tag terpenuhi, GTM punya fitur bernama blocking trigger (exception trigger) yang bisa diam-diam mencegah tag fire. Jika seseorang menambahkan blocking trigger — misalnya untuk mengecualikan traffic internal atau halaman tertentu — dan kondisinya cocok, tag tidak akan fire terlepas dari firing trigger-nya.
Cara memeriksa: Buka tag di GTM, gulir melewati firing trigger, dan cari apakah ada blocking trigger yang terdaftar di bawahnya. Di preview, tag yang menunjukkan "Not Fired" meskipun semua kondisi trigger hijau seringkali disebabkan oleh blocking trigger yang menimpanya.
Jebakan umum: Blocking trigger secara visual kurang menonjol dibanding firing trigger dan mudah terlupakan. Jika sebuah tag secara misterius tidak mau fire meskipun kondisi trigger-nya terlihat benar, periksa blocking trigger dulu sebelum membangun ulang tag-nya. Ini juga sumber masalah umum saat konversi fire tapi tidak tercatat.
Urutan pemeriksaan untuk mengetahui apakah GTM penyebabnya
Memeriksa dari atas ke bawah membawa Anda ke penyebab dengan paling cepat.
- Di tab "Network" DevTools, apakah request pengukuran terkirim sama sekali? (Jika tidak, ini masalah firing = Penyebab 1–4)
- Di preview (Tag Assistant), apakah trigger target Fired, dan apakah variabelnya berisi nilai?
- Di layar Versions GTM, apakah perubahan terbaru Anda ada di published version?
- Apakah container ID (GTM-XXXX) di HTML live cocok dengan yang sedang Anda edit?
- Dengan izin diberikan di banner consent, apakah tag tetap fire dan terlacak di production juga?
Yang tidak bisa diketahui hanya dengan memeriksa di komputer sendiri
Memeriksa Penyebab 1–6 semuanya berguna, tapi preview sekali di komputer Anda sendiri memiliki dua batasan struktural.
- Lingkungan Anda bukan lingkungan pengunjung Anda. Preview memuat versi yang belum dipublikasikan ke browser Anda, dan status consent, status login, ekstensi, serta cache Anda berbeda dari pengunjung sungguhan. Bisa saja fire di komputer Anda tapi hilang di kondisi pengunjung sungguhan (belum consent, browser berbeda, jalur navigasi SPA).
- Konversi yang melibatkan klik iklan sulit diverifikasi. Untuk benar-benar melihat "apakah ini benar-benar terlacak lewat iklan," Anda perlu mengklik iklan live untuk mereplikasi jalurnya — yang membawa risiko pelanggaran kebijakan iklan karena dianggap self-click.
Menyimpulkan "fire di preview, jadi pasti baik-baik saja" cenderung melewatkan masalah data yang hilang di jalur nyata yang dilalui pengunjung Anda.
Ad blocker dan alat privasi: titik buta yang hanya muncul di production
Semakin banyak pengunjung menggunakan ad blocker, browser yang mengutamakan privasi, atau ekstensi anti-tracking yang memblokir GTM atau request pengukuran yang dikirimnya. Ini menciptakan kesenjangan yang tidak terlihat saat testing Anda sendiri jika Anda tidak menggunakan alat-alat tersebut.
- Ekstensi browser seperti uBlock Origin atau Privacy Badger bisa memblokir script
googletagmanager.comsepenuhnya, sehingga GTM tidak pernah dimuat - Browser yang mengutamakan privasi (Brave, Firefox dengan Enhanced Tracking Protection) bisa memblokir request keluar ke
google-analytics.comataugoogleads.g.doubleclick.net - Firewall perusahaan atau pemblokir tingkat DNS bisa menghapus request tracking sebelum meninggalkan jaringan
Artinya dalam praktik: Anda tidak akan melihat hit yang diblokir ini di GA4 atau Google Ads — hit tersebut begitu saja lenyap. Tidak ada perbaikan dari sisi GTM untuk pengguna yang secara aktif memblokir tracking, tapi memahami kesenjangan ini mencegah Anda mengejar masalah konfigurasi yang sebenarnya tidak ada. Untuk info lebih lanjut tentang bagaimana alat privasi memengaruhi pengukuran, lihat ad blocker dan pixel blocking dan kehilangan konversi akibat Safari ITP.
Tip: Jika angka konversi keseluruhan Anda lebih rendah dari yang diharapkan tapi setupnya sudah dipastikan benar lewat Penyebab 1–6, penggunaan ad blocker di kalangan audiens Anda mungkin menjelaskan sebagian dari kesenjangan itu. Server-side GTM bisa memulihkan sebagian data yang hilang ini dengan merutekan request pengukuran melalui domain Anda sendiri.
Singkirkan dulu keterlambatan laporan sebelum membangun ulang
Setelah memastikan tag fire dengan benar, jangan panik jika angka tidak langsung muncul di GA4 atau Google Ads. Keterlambatan laporan itu normal dan bisa menyesatkan Anda untuk berpikir tracking-nya rusak.
- Laporan real-time GA4: Event biasanya muncul dalam hitungan detik hingga menit, tapi laporan standar bisa butuh 24-48 jam untuk diproses sepenuhnya
- Konversi Google Ads: Conversion action baru bisa butuh hingga 24 jam untuk mulai muncul, dan jendela pelaporan mengaitkan konversi ke tanggal klik iklan, bukan tanggal konversi
- Conversion linker: Jika tag conversion linker Google Ads tidak fire, konversi mungkin tetap terlacak tapi tidak teratribusi ke campaign yang benar — lihat GCLID dan click ID untuk detailnya
Cara memeriksa: Gunakan Realtime report GA4 (Reports > Realtime) untuk memastikan event masuk dalam hitungan menit setelah testing Anda. Untuk Google Ads, periksa timestamp "Last recorded" pada conversion action di bawah Tools > Conversions. Jika timestamp-nya baru, tracking-nya berfungsi — laporan standar hanya belum mengejar ketertinggalannya.
Checklist verifikasi
- Anda sudah publish (Submit), dan perubahan terbaru ada di published version
- Kondisi trigger (URL, elemen klik) cocok dengan nilai sebenarnya di production
- Container ID (GTM-XXXX) di HTML live cocok dengan container yang sedang Anda edit
- Tag target tidak dijeda (paused), dan trigger sudah terpasang
- Dengan izin diberikan di banner consent, tag tetap fire dan terlacak di production
- Pada saat firing, data layer (variabel) berisi nilai yang diharapkan
- Di DevTools "Network," request pengukuran production benar-benar terkirim
Untuk info lebih lanjut, gunakan juga checklist verifikasi pelacakan konversi.
Pertanyaan yang sering diajukan
T. Tag fire di GTM preview tapi tidak terlacak di production. J. Paling umum, Anda belum mempublikasikan (Submit) perubahannya (Penyebab 1). Preview menunjukkan versi yang belum dipublikasikan, jadi tetap fire tanpa perlu publish. Selanjutnya, curigai container ID production yang berbeda dari yang sedang Anda edit (Penyebab 3), atau pengaturan consent yang memblokirnya (Penyebab 5).
T. Hanya halaman atau tombol tertentu yang gagal memicu tag. J. Ketidakcocokan kondisi trigger (Penyebab 2) adalah tersangka utama. Periksa apakah trailing slash dan query pada URL live, atau class/ID tombolnya, benar-benar cocok dengan kondisi trigger — cocokkan sambil memperhatikan Fired/Not Fired di preview.
T. Tag fire, tapi amount dan order ID datang kosong. J. Kemungkinan besar variabel (data layer) kosong (Penyebab 6). Periksa timing kapan situs menulis nilai ke data layer, dan ejaan nama variabelnya. Membaca nilai pada saat firing di tab "Variables" dan "Data Layer" pada preview adalah cara yang paling dapat diandalkan.
T. Saya kira sudah setup — di mana saya periksa apakah sudah dipublikasikan? J. Di layar "Versions" GTM di kanan atas, pastikan perubahan terbaru Anda termasuk dalam "published version." Jika timestamp published version lebih lama dari edit Anda, berarti Anda belum publish (Submit).
T. Bagaimana cara memastikan container ID-nya benar?
J. Buka halaman live, cari GTM- di source lewat DevTools, dan lihat apakah ID yang muncul cocok dengan container ID yang sedang Anda edit. Jika muncul beberapa GTM-, Anda mungkin punya instalasi ganda.
Kesimpulan: pastikan Anda sudah publish, lalu verifikasi di jalur nyata
"GTM tidak melacak" hampir selalu berujung pada salah satu dari: ① belum publish (lupa Submit), ② ketidakcocokan kondisi trigger, ③ container ID yang salah, ④ tag yang di-pause, ⑤ diblokir pengaturan consent, atau ⑥ data layer yang kosong. Jangan lengah hanya karena preview hijau — isolasi dari atas ke bawah dan Anda akan sampai ke penyebabnya tanpa membangun ulang tag secara acak.
Tapi pengecekan preview di komputer sendiri punya batasan. Melangkah lebih jauh — memastikan data benar-benar terlacak, di jalur nyata yang dilalui pengunjung Anda, di production — itulah arti sebenarnya dari "sudah terlacak."
ConversionOK menjalankan halaman live Anda di browser independen dan terisolasi, lalu mencegat request pengukuran tag yang benar-benar terkirim untuk memverifikasinya — tanpa perlu mengklik iklan Anda sendiri dan tanpa gangguan dari lingkungan kantor Anda. Mulai dengan pemeriksaan statis gratis untuk memastikan titik masuk pengukuran Anda.