Beberapa waktu lalu saya dapat kerjaan yang cukup menarik. Ada toko furniture Belanda, Dutch Seating Company (dsco.nl), yang tracking Pinterest-nya bermasalah. Bukan masalah di kreatif iklan atau budget, tapi di data yang dikirim ke Pinterest. Tag statusnya Fair, CAPI-nya Needs Improvement.

Ini cerita bagaimana semua masalahnya diperbaiki.

Awalnya Dari PDF Audit

Pinterest punya tim yang namanya Scaled Performance Rep. Mereka sesekali melakukan audit terhadap akun advertiser, khususnya soal kualitas data tracking. Hasilnya dikasih dalam bentuk presentasi, dan Dutch Seating Company dapat laporan yang cukup serius.

Singkatnya, Pinterest bilang: tracking kamu bermasalah.

Ada dua cara tracking yang dipakai toko ini. Pertama, Pinterest Tag, yaitu kode JavaScript yang jalan di browser pengunjung. Kedua, Conversions API (CAPI), yaitu data yang dikirim langsung dari server WooCommerce ke Pinterest. Keduanya punya masalah masing-masing.

Nilai yang dikasih Pinterest:

  • Tag: Fair (cukup, tapi bisa lebih baik)
  • CAPI: Needs Improvement (harus segera dibenerin)

Kenapa ini penting? Pinterest punya data internal yang bilang bahwa advertiser dengan status Fair punya ROAS 66% lebih tinggi dan CPA 18% lebih rendah dibanding yang masih di Needs Improvement. Jadi ini bukan sekadar urusan teknis, ini langsung ngaruh ke duit.

Apa Saja yang Bermasalah

Pinterest cukup detail kasih laporan. Mereka bilang masalahnya ada di 9 titik berbeda.

Di sisi Tag (browser), yang kurang:

  • Email tidak dikirim waktu event Checkout
  • External ID tidak ada di beberapa event
  • Click ID (dari cookie _epik) tidak ada di AddToCart, Checkout, dan Search

Di sisi CAPI (server), yang lebih parah:

  • User Agent tidak valid di event AddToCart
  • IP Address dan User Agent kurang di event Checkout
  • Email tidak dikirim di AddToCart dan Checkout
  • External ID hilang di event-event penting
  • Source URL di AddToCart bersifat statis, seharusnya dinamis
  • Product ID tidak cocok antara WooCommerce dan Pinterest
  • Event ID antara Tag dan CAPI tidak sinkron, yang bikin data konversi dihitung dobel

Kalau dirangkum: Pinterest tidak bisa mencocokkan pengunjung toko dengan pengguna Pinterest secara akurat, karena data pengenal seperti email, ID, dan IP tidak dikirim dengan benar.

Setup Website dan Keterbatasan Akses

Website ini pakai WooCommerce dengan plugin Pinterest for WooCommerce yang sudah terpasang dan terhubung ke akun bisnis “dutchseat”. CAPI sudah aktif lewat plugin, jadi bukan custom integration tapi bawaan plugin.

Akses yang diberikan kepada saya hanya wp-admin. Jadi solusinya harus sepenuhnya jalan dari dashboard WordPress.

Pilihan yang dipilih: WPCode. Plugin ini memungkinkan inject kode PHP ke WordPress tanpa harus edit file theme atau plugin secara langsung. Relatif aman, mudah di-manage, dan bisa di-disable kapan saja kalau ada error.

Solusinya: Tiga Snippet PHP

Karena masalahnya cukup banyak dan saling berkaitan, kodenya dipecah jadi tiga snippet terpisah. Tujuannya supaya kalau ada masalah, lebih mudah diisolasi mana yang error dan mana yang tidak.

Snippet 1 – Helper Functions

Ini fondasinya. Berisi fungsi-fungsi utama yang akan dipanggil oleh dua snippet berikutnya:

  • dsco_get_hashed_email(): baca email dari session WooCommerce, entah dari akun yang login atau guest checkout, lalu hash dengan SHA-256 sesuai format yang diminta Pinterest
  • dsco_get_external_id(): buat persistent ID untuk pengunjung. Kalau sudah login, pakai user ID WordPress. Kalau guest, buat ID random yang disimpan di cookie supaya konsisten selama sesi
  • dsco_get_click_id(): baca cookie _epik yang ditanam Pinterest waktu pengunjung klik iklan
  • dsco_generate_event_id(): buat event ID yang unik dan bisa di-share antara Tag dan CAPI, supaya keduanya pakai ID yang sama dan Pinterest bisa deteksi duplikasi dengan benar

Snippet 2 – Pinterest Tag

Hook ke event-event WooCommerce di sisi browser dan inject data yang kurang: email, external_id, dan click ID ke dalam pintrk events.

Snippet 3 – CAPI

Override data yang dikirim plugin ke server Pinterest. Yang diperbaiki: User Agent dan IP Address dibaca secara real-time dari request yang masuk (termasuk support header Cloudflare), email dan external_id ditambahkan, source URL dibuat dinamis, product ID di-mapping dengan benar untuk variasi produk, dan event_id disinkronkan dengan Tag.

Cara Pasangnya

Install WPCode dulu kalau belum ada. Setelah aktif, tinggal masuk ke Code Snippets, pilih Add Snippet, pilih PHP Snippet, paste kode, set “Run Everywhere”, lalu aktifkan.

Urutan pemasangannya penting: Snippet 1 harus aktif duluan karena Snippet 2 dan 3 bergantung pada fungsi di dalamnya.

Verifikasi

Setelah semua snippet aktif, dilakukan test checkout dengan data palsu: nama, alamat Amsterdam, email test@test.com. Hasilnya dilihat lewat Pinterest Tag Helper (extension Chrome).

Yang langsung terlihat berhasil:

  • em sudah terisi dengan email yang sudah di-hash: 603e2300452a9e9600a144224224b8dc
  • event_id sudah muncul dan konsisten: checkout6a1b99bfe0e6b
  • event_source_url sudah dinamis mengikuti URL halaman
  • currency, value, order_id, dan content_ids semua terisi dengan benar

Yang belum bisa dikonfirmasi lewat Tag Helper adalah IP Address dan User Agent, karena itu data server-side yang tidak kelihatan dari browser. Konfirmasinya harus lewat Pinterest Ads Manager langsung, dan biasanya butuh 24-48 jam sebelum score EQS diperbarui.

Pelajaran dari Kasus Ini

Plugin bawaan tidak selalu cukup. Plugin Pinterest for WooCommerce sudah menghandle banyak hal, tapi ada gap yang tidak dicover, terutama soal email di guest checkout, external ID yang konsisten, dan sinkronisasi event ID antara Tag dan CAPI. Gap-gap ini kecil kelihatannya, tapi dampaknya ke tracking cukup besar.

EQS itu urusan marketing, bukan hanya IT. Banyak yang anggap ini masalah teknis saja. Padahal langsung ngaruh ke seberapa efisien budget iklan bekerja. Kalau Pinterest tidak bisa mencocokkan konversi dengan akurat, algoritmanya tidak bisa belajar dengan benar, dan biaya per hasil jadi lebih mahal.

WPCode cukup untuk pekerjaan ini. Dengan WPCode dan pemahaman yang cukup soal hooks WooCommerce, semua perbaikan bisa dilakukan hanya dari wp-admin. Tidak perlu banyak setup tambahan.