← Semua artikel

Blog

Kenapa Konversi Terhitung Dua Kali, dan Cara Memperbaikinya (Duplicate Tracking)

konversi terhitung dua kaliduplicate conversion trackingkonversi terhitung gandacara memperbaiki konversi duplikat

"Cuma satu sign-up, tapi konversinya terhitung dua atau tiga kali." Ini masalah lain yang umum terjadi dalam periklanan digital. Angka yang lebih besar mungkin terlihat seperti kabar baik pada pandangan pertama — tapi menilai bid dan laporan berdasarkan angka yang digelembungkan akan salah membaca return on ad spend Anda dan mengacaukan optimasi. Over-counting sama berbahayanya dengan under-counting.

Apakah ada yang terasa familiar berikut ini?

  • Konversi jelas lebih tinggi dari angka sebenarnya
  • Satu kali submit form, tapi laporan menunjukkan dua konversi
  • Jumlahnya terus bertambah setiap kali Anda refresh atau menekan "back"
  • Total revenue (value) digelembungkan melebihi penjualan aktual

Panduan ini membahas kenapa konversi terhitung dua kali, cara memeriksanya di DevTools, dan solusi konkret untuk duplikasi.

Sebelum memeriksa: "duplikasi" terjadi di tahap firing

Alasan diagnosis duplikasi sering salah arah adalah karena mengasumsikan ini "masalah pencatatan." Padahal, sebagian besar duplikasi berasal dari event yang sama dikirim berkali-kali di tahap ② firing. Titik awalnya adalah melihat "berapa banyak request yang terkirim per satu tindakan."

Level Bagaimana double counting terjadi
① Terpasang Tag terpasang di dua tempat (hardcoded gtag + GTM, dll.)
② Ter-fire Satu tindakan mengirim event yang sama berkali-kali (reload, revisit, navigasi SPA)
③ Tercatat Pengaturan penghitungan adalah "Setiap," sehingga setiap penyelesaian dari satu klik ikut dihitung

Di sini, ① dan ② adalah masalah "kirim terlalu banyak," sedangkan ③ adalah masalah "cara menghitung." Karena lapisannya berbeda, cara memperbaikinya pun berbeda — jadi pertama-tama pastikan dulu dari mana penggelembungan ini berasal.

5 penyebab utama konversi terhitung ganda

1. Tag dimuat di dua tempat

Penyebab paling umum. Tag GA4 / Google Ads yang sama terpasang lewat hardcoded gtag maupun GTM sekaligus, atau tema/plugin Anda secara otomatis menyisipkan tag dan Anda juga menambahkannya secara manual. Satu tindakan mengirim request yang sama dua kali.

2. Snippet event dipasang di setiap halaman

Snippet event konversi Google Ads seharusnya hanya ada di halaman tempat konversi selesai (thank-you / complete). Jika dipasang di header yang tampil di seluruh situs, snippet ini akan ter-fire di setiap page view, sehingga jumlahnya menggelembung.

3. Halaman thank-you dikunjungi ulang lewat reload atau "back"

Saat pengguna menekan F5 atau tombol back browser di halaman penyelesaian, event konversi akan ter-fire lagi. Jika satu orang me-reload dua atau tiga kali, itu berarti dua atau tiga duplikasi.

4. Re-fire pada redirect atau navigasi SPA

Setup dengan redirect setelah penyelesaian, atau SPA (single-page app) yang melakukan navigasi semu, bisa secara tidak sengaja mengirim event yang sama berkali-kali.

5. Pengaturan penghitungan adalah "Setiap"

Jika pengaturan penghitungan pada conversion action Google Ads adalah "Setiap," maka setiap penyelesaian dari satu klik akan dihitung. Jika sesuatu yang seharusnya dihitung satu kali per orang (misalnya lead) disetel ke "Setiap," angkanya akan terbaca terlalu tinggi. (Ini adalah perilaku yang memang dirancang demikian — Anda perlu memastikan apakah ini sesuai dengan maksud Anda.)

Penyebab umum lainnya: duplikasi conversion action (native tag + import GA4)

Selain tag ganda di halaman, ada bentuk double counting yang lebih halus yang terjadi sepenuhnya di dalam akun Google Ads. Jika Anda melacak goal yang sama — misalnya purchase — dengan kedua-duanya, yaitu tag konversi native Google Ads (lewat GTM atau gtag) dan key event GA4 yang diimpor ke Google Ads, dan keduanya disetel sebagai "Primary," kolom "Conversions" akan menghitungnya dua kali.

Hal ini mudah terlewat karena halamannya sendiri baik-baik saja — satu tindakan, satu fire. Duplikasinya ada di daftar conversion action Anda.

Cara memeriksa: Buka Google Ads > Goals > Conversions > Summary. Jika Anda melihat dua action untuk goal yang sama (misalnya "Purchase" dari tag Google Ads dan "purchase" dari import GA4), dan keduanya berstatus "Primary," berarti Anda punya duplikasi.

Cara memperbaiki: Pilih satu sumber per goal. Pertahankan yang Anda percaya untuk bidding sebagai "Primary" dan ubah yang lain menjadi "Secondary" (atau pause/hapus). Action Secondary tetap mengumpulkan data, tapi tidak masuk ke kolom "Conversions" atau Smart Bidding.

Cara memeriksa: hitung "fire per tindakan" di DevTools

Cara paling pasti untuk memeriksa duplikasi adalah dengan menghitung, di DevTools (Network) browser Anda, berapa banyak request yang terkirim per satu tindakan.

  1. Buka halaman tempat konversi selesai dan buka tab "Network"
  2. Terapkan filter:
    • GA4 … collect
    • Google Ads … conversion atau googleadservices
    • Meta … facebook.com/tr atau tr?
  3. Lakukan tindakan konversi (submit, purchase) tepat satu kali
  4. Hitung apakah event yang sama ter-fire satu kali atau dua kali lebih

Jebakan umum: uji langsung di tempat apakah reload atau "back" menambah jumlahnya. Jika me-reload halaman penyelesaian menambah angka, berarti ada re-fire saat dikunjungi ulang.

Cross-check dengan GTM Preview Mode dan Tag Assistant

DevTools Network adalah cara paling andal untuk menghitung request mentah, tapi jika Anda menggunakan Google Tag Manager, fitur bawaannya, Preview Mode, memberi Anda gambaran level lebih tinggi tentang tag mana yang ter-fire dan kenapa.

  1. Di GTM, klik Preview (kanan atas) — panel debug akan terbuka berdampingan dengan situs Anda
  2. Jalani alur konversi (submit, purchase)
  3. Di tab Tags pada panel debug, periksa apakah tag konversi Anda muncul satu kali di bawah "Tags Fired" untuk event yang relevan
  4. Jika tag yang sama muncul di beberapa event (misalnya, baik di "DOM Ready" maupun "Window Loaded"), berarti trigger Anda terlalu longgar — persempit trigger tersebut atau tambahkan blocking trigger

Anda juga bisa menggunakan ekstensi Chrome Tag Assistant di luar GTM untuk merekam sesi, memutarnya ulang, dan menemukan tag yang ter-fire lebih dari yang seharusnya. Ini sangat berguna ketika Anda mencurigai plugin atau tema CMS menyisipkan tag yang tidak Anda konfigurasi sendiri.

Tip: Preview Mode dan DevTools Network saling melengkapi. Preview Mode menunjukkan "tag GTM mana yang ter-fire dan triggernya"; DevTools menunjukkan "apa yang benar-benar sampai ke jaringan." Gunakan keduanya saat penyebabnya tidak jelas.

Cara memperbaiki double counting

Cara memperbaikinya tergantung pada lapisan penyebabnya.

Memperbaiki "kirim terlalu banyak" (① ②)

  • Selesaikan instalasi tag ganda: standarkan pada salah satu, hardcoded gtag atau GTM. Periksa apakah plugin/tema menyisipkan tag secara otomatis.
  • Tinjau ulang lokasi snippet event: letakkan snippet konversi hanya di halaman penyelesaian.
  • Cegah re-fire saat reload/revisit: hapus parameter URL atau flag setelah penyelesaian, atau lacak "sudah diproses" di sisi server, untuk mencegah penghitungan ulang penyelesaian yang sama.
  • Gunakan deduplikasi:
    • Untuk GA4 / ecommerce, menambahkan transaction ID (transaction_id) akan men-dedup transaksi yang sama
    • Meta melakukan dedup berdasarkan event_id. Jika Anda menjalankan Pixel browser dan server Conversions API (CAPI) sekaligus, dedup hanya bekerja jika baik nama event maupun event_id cocok (verifikasi Meta Pixel Anda)

Waspadai duplikasi dengan Enhanced Conversions dan server-side tagging

Setup modern sering melapisi beberapa jalur konversi: tag browser GTM, Enhanced Conversions (yang mengirim data first-party yang di-hash seperti email), dan terkadang container GTM server-side atau import GA4. Setiap jalur bisa secara independen melaporkan konversi yang sama ke Google Ads.

Google men-dedup jalur-jalur ini hanya jika transaction_id ada dan konsisten di semua jalur tersebut. Jika bahkan satu jalur saja mengirim ID yang berbeda — atau tanpa ID sama sekali — Google akan menganggapnya sebagai konversi terpisah.

Checklist untuk setup multi-jalur:

  • Setiap jalur (tag browser, Enhanced Conversions, server container, import GA4) harus mengirim transaction_id yang sama untuk event yang sama
  • Jika Anda menggunakan server-side GTM, pastikan ID-nya tidak dibuat ulang oleh server container — periksa request yang keluar di Preview Mode server container tersebut
  • Jika Enhanced Conversions diaktifkan, pastikan fitur ini melengkapi tag yang sudah ada, bukan membuat conversion action kedua

Memperbaiki "cara menghitung" (③)

  • Sesuaikan pengaturan penghitungan (Setiap / Satu) pada conversion action Google Ads dengan tujuan Anda. Lead/sign-up biasanya "Satu," purchase biasanya "Setiap."

Checklist untuk memverifikasi dengan yakin

  • Apakah satu tindakan mengirim request yang sama hanya satu kali (diukur di DevTools)?
  • Apakah tag terpasang ganda lewat hardcoded gtag dan GTM?
  • Apakah snippet event konversi hanya ada di halaman penyelesaian?
  • Apakah jumlahnya bertambah saat reload / "back"?
  • Apakah ada re-firing pada redirect atau navigasi SPA?
  • Untuk GA4 / ecommerce, apakah Anda melakukan dedup dengan transaction_id?
  • Untuk Meta, apakah dedup event_id bekerja (nama event + event_id)?
  • Apakah ada conversion action yang duplikat (native tag + import GA4 keduanya disetel Primary)?
  • Pada setup multi-jalur (Enhanced Conversions, server-side), apakah transaction_id konsisten di semua jalur?
  • Bisakah modeling Consent Mode menjelaskan penggelembungan ini, bukan tag duplikat?
  • Apakah pengaturan penghitungan Google Ads sesuai dengan tujuan Anda (Satu / Setiap)?

Pertanyaan yang sering diajukan (FAQ)

T. Apa bedanya double counting dengan "selisih normal"? J. Double counting adalah penggelembungan — menghitung satu event dua kali dengan penggaris yang sama. Google Ads dan GA4 yang tidak cocok adalah hal yang berbeda — keduanya menghitung dengan penggaris yang berbeda (kenapa jumlahnya tidak cocok). Periksa dulu "satu tindakan = satu fire" di DevTools untuk membedakan apakah ini benar-benar double counting.

T. Apakah menambahkan transaction_id selalu menghilangkan duplikasi? J. Duplikasi dengan transaction_id yang sama akan dihapus, tapi ini tidak akan bekerja jika ID yang berbeda dibuat setiap kali, atau kosong. Pastikan ID yang sama benar-benar dikirim untuk transaksi yang sama.

T. Kenapa dedup Meta tidak bekerja? J. Biasanya karena nama event tidak cocok antara Pixel dan CAPI, event_id hanya ada di salah satu sisi, atau aturan pembuatan ID-nya berbeda. Keduanya perlu nama event yang sama plus event_id yang sama.

T. Bisakah modeling Consent Mode menggelembungkan angka saya alih-alih duplikasi asli? J. Ya — jika Anda menggunakan Consent Mode v2, Google memodelkan konversi untuk pengguna yang menolak izin pelacakan. Konversi hasil modeling ini muncul di laporan Anda dan bisa membuat total terlihat lebih tinggi dari jumlah mentah yang Anda lihat di DevTools. Ini bukan duplikasi dalam arti firing; ini adalah estimasi. Periksa kolom "Conversions (by time)" untuk anotasi "modeled," atau bandingkan dengan catatan server-side Anda. Jika penggelembungan hilang saat Anda memfilter ke data observed-only, penyebabnya adalah modeling Consent Mode — bukan tag duplikat.

T. Bagaimana jika di saya cuma satu kali tapi di laporan tinggi? J. Penggelembungan mungkin terjadi di jalur yang tidak direproduksi oleh pengujian tunggal Anda. Re-fire pada browser, sumber, atau perangkat tertentu tidak bisa sepenuhnya ditemukan hanya dengan pemeriksaan lokal. Anda perlu verifikasi di bawah kondisi pengguna produksi nyata.

Kesimpulan: "terlalu banyak" juga kegagalan tracking, bukan cuma "terlalu sedikit"

Double counting mudah terlewat karena angkanya naik — tapi menilai berdasarkan angka yang digelembungkan akan salah membaca ROI Anda, sehingga ini benar-benar kegagalan tracking. Ukur dulu "satu tindakan = satu request" di DevTools, dan pisahkan apakah penyebabnya kirim terlalu banyak (instalasi / re-fire) atau cara menghitung (pengaturan penghitungan).

Meski begitu, satu pemeriksaan lokal saja tidak bisa sepenuhnya menangkap duplikasi yang hanya terjadi di jalur pengguna nyata. ConversionOK menjalankan halaman live Anda di browser independen dan terisolasi, lalu mencegat request konversi yang benar-benar terkirim — memverifikasi berapa kali request itu ter-fire dan apa isinya. Tidak perlu mengeklik iklan Anda sendiri, dan tidak ada gangguan dari lingkungan kantor Anda. Mulai dengan static check gratis untuk memastikan titik masuk pengukuran Anda.