Tips untuk penerapan alternatif, menggunakan Pixel dengan aplikasi web satu halaman, dan melacak konversi dengan klik tombol dan pengguliran halaman.
Jika Anda menjalankan bisnis di negara yang tunduk pada Peraturan Perlindungan Data Umum (GDPR), bacalah dokumen GDPR kami untuk mempelajari cara mematuhinya.
Meskipun Anda dapat menggunakan tanda IMG untuk menginstal Pixel, kami sarankan Anda merujuk ke Panduan penerapan kami untuk alternatif.
Jika Anda perlu menginstal Pixel menggunakan penerapan ringan, Anda dapat menginstalnya dengan tanda <img>
. Untuk melakukan ini, tambahkan kode di bawah ini antara tanda <noscript>
pembuka dan penutup dalam header atau badan situs web Anda, lalu ganti {pixel-id}
dengan ID pixel Anda dan {standard-event}
dengan Peristiwa Standar.
<img src="https://www.facebook.com/tr?id={pixel-id}&ev={standard-event}" height="1" width="1" style="display:none"/>
Pixel yang diinstal menggunakan tanda <img>
juga mendukung parameter, yang dapat Anda sertakan dalam string kueri. Contoh:
<img src="https://www.facebook.com/tr?id=12345 &ev=ViewContent &cd[content_name]=ABC%20Leather%20Sandal &cd[content_category]=Shoes &cd[content_type]=product &cd[content_ids]=1234 &cd[value]=0.50 &cd[currency]=USD" height="1" width="1" style="display:none"/>
Berikut adalah contoh penginstalan tanda IMG Meta Pixel di seluruh halaman utama situs web fiktif menggunakan Pixel fiktif (12345
) dan parameter khusus (misalnya: cd[currency]=USD
).
Di halaman produk, satu Pixel untuk melacak peristiwa PageView
dan Pixel lain untuk melacak peristiwa ViewContent
:
<img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=12345&ev=PageView"/>
<img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=12345&ev=ViewContent"/>
Di halaman masukkan ke keranjang, satu Pixel untuk melacak peristiwa PageView
dan Pixel lain untuk melacak peristiwa AddToCard
, dengan data khusus:
<img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=12345&ev=PageView"/>
<img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=12345&ev=AddToCart&cd[currency]=USD&cd[value]=0.00"/>
Di halaman pembelian, satu Pixel untuk melacak peristiwa PageView
dan Pixel lain untuk melacak peristiwa Purchase
, dengan data tentang pembelian:
<img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=12345&ev=PageView"/>
<img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=12345&ev=Purchase&cd[currency]=USD&cd[value]=0.00"/>
Pengukuran Peristiwa Agregat Meta adalah protokol yang memungkinkan pengukuran peristiwa web dan aplikasi dari pengguna perangkat iOS 14.5 atau yang lebih baru. Model statistik dapat digunakan dan dirancang untuk memberikan tampilan hasil yang lebih lengkap ketika data hilang atau parsial.
Kami sangat merekomendasikan untuk mengikuti bagian Instal Pixel menggunakan tanda IMG dari dokumen ini saat menggunakan tanda IMG Pixel IMG atau untuk melupakan penggunaan tanda IMG dan mengikuti Panduan penerapan kami.
Jika Anda menyiapkan Pixel IMG Anda dengan menggunakan runtime JavaScript untuk membuat kelas Gambar JavaScript tanpa menambahkan kelas Gambar itu ke pohon DOM situs web, contoh: menggunakan pustaka JavaScript pihak ketiga untuk mengirim Pixel IMG Anda, Anda harus menambahkan kode berikut atau Facebook tidak akan menerima data Pixel IMG Anda.
var nativeBridge = window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.receiveImgPixel; if (nativeBridge) { const postObj = { id: {pixel-id}, ev: {standard-event}, cd: {stringified-custom-data}, dpo: {data-processing-options}, // Optional CCPA param dpoco: {data-processing-option-country}, // Optional CCPA param dpost: {data-processing-option-state}, // Optional CCPA param }; nativeBridge.postMessage(JSON.stringify(postObj)); }
Jika Anda menempatkan IMG Pixel Anda dalam iframe yang memiliki atribut sandbox
, Anda harus menambahkan nilai allow-scripts
atau Facebook tidak akan menerima data Pixel IMG Anda.
Kami telah memperluas fungsi AEM untuk mempertimbangkan konversi dari semua halaman web terkait pengiklan tempat peristiwa Pixel yang dioptimalkan pengiklan diaktifkan (seperti dalam skenario tertentu di mana pengiklan dapat mengandalkan penyingkat URL atau pengalihan berbasis geografis, mungkin memiliki beberapa lini bisnis atau mungkin bergantung pada agensi untuk menjalankan iklan mereka). Jika Anda termasuk dalam salah satu skenario ini dan ingin mengaktifkan AEM, kami rekomendasikan Anda melakukan hal berikut:
Setelah pengunjung menekan tombol, kode JavaScript Meta Pixel secara otomatis mendeteksi dan meneruskan kolom formulir yang relevan ke Meta.
Misalnya Anda memiliki sebuah situs web e-commerce dan tombol "Tambahkan ke Keranjang Belanja" Anda tidak membawa pengguna situs web tersebut ke halaman baru. Anda mungkin ingin mengaktifkan peristiwa saat tombol diklik.
Dalam contoh ini, kami akan mengaktifkan peristiwa standar ViewContent
pada pemuatan halaman. Saat seseorang mengeklik tombol "Tambahkan ke Keranjang Belanja", kami akan mengaktifkan peristiwa standar AddToCart
.
Untuk melakukan ini, pertama-tama muat kode Meta Pixel yang ingin Anda aktifkan pada pemuatan halaman:
<!-- Facebook Pixel Code --> <script> fbq('track', 'ViewContent', { content_name: 'Really Fast Running Shoes', content_category: 'Apparel & Accessories > Shoes', content_ids: ['1234'], content_type: 'product', value: 0.50, currency: 'USD' }); </script> <!-- End Facebook Pixel Code -->
Selanjutnya aktifkan AddToCart
, baik saat halaman baru dimuat maupun saat tombol Tambahkan ke Keranjang Belanja diklik. Ada beberapa cara untuk menangani klik tombol. Berikut adalah contoh penambahan eventListener
ke tombol.
<!-- Somewhere there is a button that performs Add to Cart --> <button id="addToCartButton">Add To Cart</button> <!-- Add Pixel Events to the button's click handler --> <script type="text/javascript"> var button = document.getElementById('addToCartButton'); button.addEventListener( 'click', function() { fbq('track', 'AddToCart', { content_name: 'Really Fast Running Shoes', content_category: 'Apparel & Accessories > Shoes', content_ids: ['1234'], content_type: 'product', value: 4.99, currency: 'USD' }); }, false ); </script>
Ada banyak cara untuk menangani peristiwa klik; pastikan untuk selalu memanggil fungsi fbq
setelah klik.
Bergantung pada bagaimana Anda menerapkan Pixel, Bantuan Pixel mungkin menunjukkan kesalahan sebelum tombol diklik. Anda dapat memverifikasi bahwa pengaktifan Pixel Anda sudah benar dengan mengeklik tombol, yang menutup kesalahan bantuan.
Untuk contoh ini, misalnya Anda memiliki sebuah blog dan ingin melacak pengguna yang membaca keseluruhan konten artikel. Pengguna tidak melakukan tindakan apa pun selain menggulir hingga akhir halaman.
Berikut adalah contoh HTML untuk halaman tempat Pixel dimuat:
<!DOCTYPE html> <html> <head> <!-- Facebook Pixel Code --> <script> !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n; n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, document,'script','https://connect.facebook.net/en_US/fbevents.js'); fbq('init', '<FB_PIXEL_ID>'); fbq('track', "PageView"); </script> <noscript><img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=<FB_PIXEL_ID>&ev=PageView&noscript=1" /></noscript> <!-- End Facebook Pixel Code --> </head> <body> <h1>Scroll Page until the Lead event is fired</h1> <div style="height: 120vh; width: 100vw; background-color: #00f;"></div> <h1 id="fb-fire-pixel">Lead event will fire when this phrase enters the screen</h1> <div style="height: 120vh; width: 100vw; background-color: #000;"></div> </body> </html>
Saat elemen h1
dengan id=fb-fire-pixel
muncul, kami akan mengaktifkan peristiwa standar Lead
. Untuk memastikan apakah elemen terlihat di layar, kami menambahkan kode berikut ke halaman:
// This code should be loaded together with Meta Pixel var executeWhenElementIsVisible = function(dom_element, callback) { if (!(dom_element instanceof HTMLElement)) { console.error('dom_element must be a valid HTMLElement'); } if (typeof callback !== 'function') { console.error( 'Second parameter must be a function, got', typeof callback, 'instead', ); } function isOnViewport(elem) { var rect = elem.getBoundingClientRect(); var docElem = document.documentElement; return ( rect.top >= 0 && rect.left >= 0 && rect.bottom <= (window.innerHeight || docElem.clientHeight) && rect.right <= (window.innerWidth || docElem.clientWidth) ); } var executeCallback = (function() { var wasExecuted = false; return function() { if (!wasExecuted && isOnViewport(dom_element)) { wasExecuted = true; callback(); } }; })(); window.addEventListener('scroll', executeCallback, false); };
Setelah itu, perlu ditentukan cara mengaktifkan Pixel tersebut saat elemen terlihat di layar:
// Get the element that should be visible to trigger the pixel fire var element = document.getElementById('fb-fire-pixel'); // Then, set the event to be tracked when element is visible // Note that second parameter is a function, not a function call executeWhenElementIsVisible(element, function() { fbq('track', 'Lead'); });
Untuk contoh ini, misalnya Anda ingin melacak pengguna yang membaca hingga panjang atau persentase halaman tertentu. Pengguna tidak melakukan tindakan apa pun selain menggulir hingga panjang atau persentase halaman yang diinginkan.
Contoh pertama ini adalah untuk melacak panjang halaman yang sudah dibaca oleh pengguna. Dalam contoh ini, kami mengaktifkan Pixel prospek saat pengguna sudah membaca hingga sepanjang 500px di halaman.
var executeWhenReachedPageLength = function(length, callback) { if (typeof length !== 'number') { console.error( 'First parameter must be a number, got', typeof length, 'instead', ); } if (typeof callback !== 'function') { console.error( 'Second parameter must be a function, got', typeof callback, 'instead', ); } function getWindowLength() { return window.innerHeight || (document.documentElement || document.body).clientHeight; } function getCurrentScrolledLengthPosition() { return window.pageYOffset || (document.documentElement || document.body.parentNode || document.body).scrollTop; } var executeCallback = (function() { var wasExecuted = false; return function() { if (!wasExecuted && getCurrentScrolledLengthPosition() > length) { wasExecuted = true; callback(); } }; })(); if (getWindowLength() >= length) { callback(); } else { window.addEventListener('scroll', executeCallback, false); } }; executeWhenReachedPageLength(10, function() { fbq('track', 'Lead'); });
Contoh kedua ini adalah untuk melacak persentase halaman yang sudah dibaca oleh pengguna. Dalam contoh ini, kami mengaktifkan Pixel prospek saat pengguna sudah membaca hingga 75% dari halaman.
var executeWhenReachedPagePercentage = function(percentage, callback) { if (typeof percentage !== 'number') { console.error( 'First parameter must be a number, got', typeof percentage, 'instead', ); } if (typeof callback !== 'function') { console.error( 'Second parameter must be a function, got', typeof callback, 'instead', ); } function getDocumentLength() { var D = document; return Math.max( D.body.scrollHeight, D.documentElement.scrollHeight, D.body.offsetHeight, D.documentElement.offsetHeight, D.body.clientHeight, D.documentElement.clientHeight ) } function getWindowLength() { return window.innerHeight || (document.documentElement || document.body).clientHeight; } function getScrollableLength() { if (getDocumentLength() > getWindowLength()) { return getDocumentLength() - getWindowLength(); } else { return 0; } } var scrollableLength = getScrollableLength(); window.addEventListener("resize", function(){ scrollableLength = getScrollableLength(); }, false) function getCurrentScrolledLengthPosition() { return window.pageYOffset || (document.documentElement || document.body.parentNode || document.body).scrollTop; } function getPercentageScrolled() { if (scrollableLength == 0) { return 100; } else { return getCurrentScrolledLengthPosition() / scrollableLength * 100; } } var executeCallback = (function() { var wasExecuted = false; return function() { if (!wasExecuted && getPercentageScrolled() > percentage) { wasExecuted = true; callback(); } }; })(); if (getDocumentLength() == 0 || (getWindowLength()/getDocumentLength() * 100 >= percentage)) { callback(); } else { window.addEventListener('scroll', executeCallback, false); } }; executeWhenReachedPagePercentage(75, function() { fbq('track', 'Lead'); });
Misalnya Anda ingin melacak pengguna yang berinteraksi dengan situs web Anda beberapa detik sebelum mengaktifkan peristiwa Pixel. Anda dapat melakukannya dengan fungsi setTimeout
.
// Delay pixel fire by 3 seconds var seconds = 3; setTimeout(function() { fbq('track', 'Lead'); }, seconds * 1000);
Ini dapat digunakan untuk melacak kunjungan “berinteraksi” ke sebuah halaman, ketika orang tidak beralih terlalu cepat dan benar-benar membaca konten.
Jika Anda ingin tahu siapa yang melihat sejumlah artikel tertentu dari situs Anda, Anda dapat menggunakan penghitung sesi dan memuat kode Meta Pixel ketika peristiwa ini terjadi.
Kita tahu bahwa sesi adalah sekelompok interaksi pengguna dengan situs web Anda yang dapat berlangsung dalam kerangka waktu tertentu per permintaan situs. Anda dapat meningkatkan jumlah tayangan halaman jika Anda mendeteksi aktivitas pengguna memberikan kerangka waktu.
Anggaplah Anda memiliki variabel sessionCountViews
per site_request
, Anda dapat menambahkan kode Meta Pixel berdasarkan jumlah tayangan halaman yang Anda hitung.
Contoh menghitung hanya untuk artikel ke-6 yang dilihat
if (site_request.sessionCountViews == 6) { fbq('track', "ViewContent", { sessionCountViews: site_request.sessionCountViews, }); }
Jika ada beberapa pixel di halaman yang sama dan Anda ingin mengaktifkan peristiwa secara selektif pada tiap Pixel unik, kemampuan trackSingle
dan trackSingleCustom
sebaiknya digunakan.
Menggunakan fungsi track
di halaman dengan beberapa Pixel diinisialisasi (menggunakan beberapa kode dasar atau bahkan menggabungkannya dalam satu kode dasar) dapat menghasilkan pengaktifkan yang berlebihan atau perilaku tak terduga, dan sebaiknya hanya diterapkan dalam situasi tertentu.
Contoh mengaktifkan peristiwa PageView
di Pixel yang diinisialisasi dan secara selektif mengaktifkan peristiwa Standar (Purchase
) di satu Pixel dan Peristiwa Khusus di Pixel kedua.
fbq('init', '<PIXEL_A>'); fbq('init', '<PIXEL_B>'); fbq('track', 'PageView'); //fire PageView for both initialized pixels // only fire the Purchase event for Pixel A fbq('trackSingle', '<PIXEL_A>', 'Purchase', { value: 4, currency: 'GBP', }); // only fire the custom event Step4 for Pixel B fbq('trackSingleCustom', '<PIXEL_B>', 'Step4',{ //optional parameters });
Dalam kasus yang tidak biasa, Anda mungkin ingin mengirim peristiwa hanya ke salah satu Pixel yang diinstal di situs web Anda; contoh: untuk membatasi data yang dikirim ke salah satu Pixel di situs web Anda. Metode ini melacak pengaktifan Pixel untuk satu Pixel. Pemanggilan dilakukan menggunakan:
fbq('trackSingle', 'FB_PIXEL_ID', 'Purchase', customData); fbq('trackSingleCustom', 'FB_PIXEL_ID', 'CustomEvent', customData);
Meta Pixel akan mengirim data klik tombol dan metadata halaman (seperti data yang terstruktur sesuai format Opengraph atau Schema.org) dari situs web Anda untuk memperbaiki penayangan dan pengukuran iklan serta mengotomatiskan pengaturan Pixel. Untuk mengonfigurasi Meta Pixel agar tidak mengirim informasi tambahan ini, di kode Dasar Meta Pixel, tambahkan fbq('set', 'autoConfig', 'false', 'FB_PIXEL_ID')
di atas panggilan init.
<!-- Facebook Pixel Code --> <script> !function(f,b,e,v,n,t,s){ if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n; n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, document,'script','https://connect.facebook.net/en_US/fbevents.js'); // Line to enable Manual Only mode. fbq('set', 'autoConfig', false, 'FB_PIXEL_ID'); //Insert Your Facebook Pixel ID below. fbq('init', 'FB_PIXEL_ID'); fbq('track', 'PageView'); </script> <noscript> <img height="1" width="1" style="display:none"src="https://www.facebook.com/tr?id=FB_PIXEL_ID&ev=PageView&noscript=1"/> </noscript> <!-- End Facebook Pixel Code -->
Jika situs web Anda memiliki Kebijakan Keamanan Konten, Anda harus mengizinkan JavaScript dimuat dari https://connect.facebook.net
. Catatan: Skrip pemuatan Pixel dari dua jalur: /en_US/fbevents.js
dan /signals/config/{pixelID}?v={version}
.