Woocommerce - Facebook Dönüşüm Kodu Tanımlama
Google Analytics E-ticaret Etkinlikleri ve Facebook Pixel Standart Olaylar yazılarına ek olarak bu yazıda Add Payment Info, Add to Cart, Add to Wishlist, Customize Product, Page View, Purchase, Search, View Content, Custom Events gibi özellikle E-ticaret işlemlerinde kullandığımız, kataloğa eklenen ürünlerle de ilişkili olan olaylara ve örneklere değineceğim.
Facebook Pixel Standart Olaylar, WooCommerce ve E-ticaret İşlemleri
Facebook Pikseli, Gelişmiş Eşleştirme ve Özel Durumlar başlıklı yazıda da bahsetmiştim, Facebook tarafından yayınlanan Segment, WordPress ve WooCommerce eklentileri ile olayları kolaylıkla siteniz ile entegre edebilirsiniz1. Facebook tarafından sunulan ortak entegrasyonları2 ile (WooCommerce 2.6.14 sürümü ile WordPress 3.0 ve üzeri sürümler için) hızlı ve hatasız bir şekilde WooCommerce işlemlerini Facebook Pixel olaylarıyla iletmek mümkün3.
Aynı şekilde Katalog kurulumunu da Facebook Pixel ile ilişkilendirerek pratik bir şekilde yönetebilirsiniz2. Alternatif olarak WooCommerce Conversion Tracking eklentisinden de faydalanılabilir4 5. Ancak, 3. party eklentiler elbette bu kadar kapsamlı olmayacaklar ve ek müdahaleler gerektireceklerdir. Bu nedenle önceliğin WooCommerce ve/veya Facebook tarafından sağlanan eklentilerde olmasında fayda var.
Bu aşamadan sonra WooCommerce fonksiyonlarından pek çoğu (ViewCategory (trackCustom), Search, ViewContent, AddToCart, InitiateCheckout, Purchase, Subscribe, CF7 eklentisi kurulu ise ek olarak Lead) Facebook olaylarıyla doğrudan ilişkilendirilecektir. Buna ek olarak Katalog ve Facebook Chat özelliklerini de kullanıma açmak mümkün. İlgili detaylara facebook-commerce-events-tracker.php
dosyası üzerinden ulaşmak mümkün. Eklenti detaylarına ve ayarlarına WP-Admin > Woocommerce > Ayarlar > Entegrasyon > Facebook ve Facebook for WooCommerce başlıkları altından ulaşılabilir. Örnek bir WooCommerce işlemine bakalım ve bu işlemi Facebook olayı olarak iletelim.
add_action( 'woocommerce_thankyou', 'FBPixelTracking' );
function FBPixelTracking( $order_id ) {
$order = new WC_Order( $order_id );
$order_total = $order->get_total();
echo $order_total; // Sipariş toplamı
}
$order_total
ile toplam ödeme tutarını (ürün fiyatı, vergiler ve kargo gibi tüm ödemeler dahil) edinmek ve Purchase olayı için kullanmak mümkün. Bu veriyi Facebook Pixel snippet içerisinde değerlendirelim6.
<script>(function() {
var _fbq = window._fbq || (window._fbq = []);
if (!_fbq.loaded) {
var fbds = document.createElement('script');
fbds.async = true;
fbds.src = '//connect.facebook.net/en_US/fbds.js';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(fbds, s);
_fbq.loaded = true;
}
})();
window._fbq = window._fbq || [];
window._fbq.push(['track', '[Pixel-ID]', {'value':'<?php echo $order_total ?>','currency':'TRY'}]);
</script>
<noscript><img height="1" width="1" alt="" style="display:none" src="https://www.facebook.com/trev=XXXXXXXXXXXXXX&cd[value]=<?php echo $order_total ?>&cd[currency]=GBP&noscript=1" /></noscript>
Yukarıdaki kodu tema içerisinde functions.php
dosyası içerisine ekleyerek test edebilirsiniz. Tabi, [Pixel-ID]
alanına size ait olan Pixel ID değerini girmelisiniz. Aynı şekilde TRY şeklinde belirtilen para birimini de güncellemeniz gerekebilir. İlgili ekleme aksi belirtilmemişse /checkout/order-received/
sayfası üzerinden görüntülenebilir7 8 9. Detaylı bilgi için WooCommerce Code Reference > Class WC_Order10 sayfasını inceleyebilirsiniz11. Peki, diğer işlemleri nasıl tanımlayabiliriz?
WooCommerce Değişkenleri Facebook Standart Olay Olarak İletmek
Ödeme adımlarına dair bilgilerin iletiminde trackCustom
kullanmamız gerekir. Örneğin, Step1
için olay işleme almak istersek kullanacağımız yapı şu şekilde olacaktır.
fbq('trackCustom', 'Step1');
Step tanımlamalarında herhangi bir WooCommerce değişkeni kullanmamıza gerek yok. Ancak, ilgili sayfalar için tanımlamalar oluşturmamız gerekir. Örneğin, funnel’i sepet itibariyle başlatmak istersek Sayfa URL’inin /cart/
içermesi durumunda Step1’i iletebiliriz. Bunun için GTM kullanabileceğiniz gibi JS ve PHP kodları ile de URL kontrolleri sağlayarak ilgili adımı olay olarak iletebilirsiniz. PHP Örneği
if(strpos($_SERVER['REQUEST_URI'], '/cart/') !== false){
/* işlemler */
}
JavaScript / JQuery Örneği
if(window.location.href.indexOf("/cart/") > -1) {
/* işlemler */
}
İndirim kuponu gibi işlemlerde de yine trackCustom
ile kupon, kampanya ve benzeri pek çok detayı yine olayla ilişkilendirebiliriz.
fbq('trackCustom', 'ShareDiscount', {promotion: 'share_discount_20%'});
İndirim işlemini ödeme tamamlama adımıyla birlikte kullanmak istersek;
fbq('track', 'Purchase',{
value: 25.00,
currency: 'TRY',
contents: [{
id: ['1234'],
quantity: 1,
item_price: 85.00
},
{
id: ['4567'],
quantity: 2,
item_price: 15.00
}],
content_type: 'product',
compared_product: 'recommended-banner-product',
campaign_name: 'discount-banner',
promotion: 'share_discount_20%'
}
);
Siparişler (sayfa, popup, tab, accordion, alert box vb.), ürün karşılaştırma ve benzeri potansiyel müşteri ile paylaşacağımız ürün içeriklerinde de ViewContent
standart olayından faydalanabiliriz.
fbq('track', 'ViewContent', {
content_name: '[urun-adi]', // Ürün Adı
content_ids: ['1234'], // Benzersiz Ürün ID
content_type: 'product', // product ya da product_category
value: 25.00, // Ürün Fiyatı,
currency: 'TRY'
});
Ürün özelliği (renk, ebat, desen vb.) değişikliklerinde de CustomizeProduct
olayını tetikleyebiliriz.
fbq('trackCustom', 'CustomizeProduct')
Daha detaylı kullanım için:
fbq('trackCustom', 'CustomizeProduct', {
color: 'red',
size: 'L'
});
Elbette yukarıdaki örnekleri bir ürün ya da hizmetin tek seferlik bir sonuca ulaştığını varsaydım. Satın alma sonunda ürün ve hizmetin ediniminin yanı sıra bir üyelik ya da sınırlı kullanım gibi işlemlerle de satın alma sonucunu ilişkilendirebiliriz.
fbq('track', 'StartTrial', {
value: 0.50,
currency: 'TRY',
predicted_ltv: 15
});
fbq('track', 'Subscribe', {
value: 0.50,
currency: 'TRY',
predicted_ltv: 15
});
Yukarıdaki işlemler Facebook WooCommerce işlemleri dışında özel durumlar için kullanılabilecek olaylar olarak değerlendirilebilirler. Genel olarak değerlendirebileceğimiz olaylarımız ise şöyle:
fbq('track', 'AddToCart', {
content_ids: ['1234'], // Benzersiz Ürün ID
content_type: 'product', // product ya da product_category
value: 25.00, // Ürün Fiyatı,
currency: 'TRY'
});
data-product_sku
değerini content_ids
json_encode($content_ids)
olarak alan ve ?add-to-cart=[urun-page-id]
ile ilişkili olarak iletmekte. AddToCart ardından Sepet görüntüleme /cart/
aşamasında bir olay tanımlı değil. Bu ve sonraki sayfa görüntülemelerinde ViewContent
ve trackCustom
tanımlamaları kullanılabilir. Ödeme sayfasına /checkout/
geçildiği aşamada ise InitiateCheckout
olayı tetiklenmekte.
fbq('track', 'InitiateCheckout', {
content_ids: ['1234'], // Benzersiz Ürün ID
content_type: 'product', // product ya da product_category
value: 25.00, // Ürün Fiyatı,
num_items: 1, // Ödenecek Ürün Adedi
currency: 'TRY'
});
Faturalama, Gönderim ve Sipariş Özeti bilgilerinin ardından siparişin onaylanmasıyla birlikte Purchase
olayı tetiklenmekte.
fbq('track', 'Purchase', {
order_id: 1005, // Benzersiz Sipariş ID
content_ids: ['1234'], // Benzersiz Ürün ID
content_type: 'product', // product ya da product_category
value: 25.00, // Ürün Fiyatı,
currency: 'TRY'
});
Çoklu ürün için ise kullanımımız şu şekilde oluşturulabilir:
fbq('track', 'Purchase', {
content_type: 'product',
contents: [{
'id': '1234',
'quantity': 2,
'item_price': 10.00
},
{
'id': '4567',
'quantity': 1,
'item_price': 5.00
}],
value: 25.00,
currency: 'TRY'
});
Eklentide tanımlı son olay ise Search
:
fbq('track', 'Search', {
search_string: get_search_query()
});
Yukarıda açıklamaları yer alan olaylar eklenti tarafından doğrudan sağlanan olaylar ve Contact Form 7 eklentisi kurulu ise Lead
olayı da ek olarak sunulmakta. Ancak AddPaymentInfo
, AddToWishlist
gibi ek e-ticaret olaylarının da] eklenmesi analiz ve daha isabetli hedeflemeler için faydalı olacaktır12.
fbq('track', 'AddPaymentInfo', {
content_ids: ['1234'], // Benzersiz Ürün ID
content_type: 'product', // product ya da product_category
value: 0.50,
currency: 'TRY'
});
fbq('track', 'AddToWishlist', {
content_ids: ['1234'], // Benzersiz Ürün ID
content_type: 'product', // product ya da product_category
value: 0.50,
currency: 'TRY'
});
Bu ek olaylarla birlikte eklentiyi de WordPress kurulumunuza dahil ederek ürünlerinizi kataloglarla hızlı bir şekilde ekstra işlemlere gerek olmadan tamamlayabilir ve reklam hedeflemelerini satın alma süreci ve ürünler üzerinden sağlayabilirsiniz. Burada unutulmaması gereken nokta, reklamların başarılı bir şekilde yayınlanabilmesi için e-ticaret işlemlerinin yeterli hacmi sağlayamayabileceği ihtimali. Bu gibi durumlarda hedefleme sürecinde değerlendirilen durum ve davranışlarıları tekrar gözden geçirmekte fayda olacaktır.
- WooCommerce Hesabınızı Facebook'a Bağlama. Facebook for Business ↩
- Facebook Olay Yöneticisi ↩ ↩
- Brian Jackson. (2016). How to Setup Conversion Tracking in WooCommerce ↩
- weDevs. WooCommerce Conversion Tracking. WordPress Plugins ↩
- Brian Jackson. (2016). How to Insert the Facebook Conversion Pixel in WordPress ↩
- WooCommerce Code Reference. API Documentation ↩
- WooCommerce Endpoints. WooCommerce Docs ↩
- Custom tracking code for the thanks page. WooCommerce Docs ↩
- Frontend Snippets. WooCommerce Docs ↩
- WC_Order. WooCommerce Code Reference ↩
- WooCommerce Code Reference ↩
- App Events Best Practices for E-Commerce/Retail App. Facebook for Developers ↩