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.

AA
Facebook Pixel

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.

Facebook

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.

Facebook

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&amp;cd[value]=<?php echo $order_total ?>&amp;cd[currency]=GBP&amp;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.