TL;DR
Meta Pixel, web sitenizdeki kullanıcı eylemlerini izleyen bir JavaScript kodudur. 17 standart olay (PageView, Purchase, AddToCart vb.) ile dönüşüm takibi yapabilir, özel hedef kitleler oluşturabilirsiniz.
| Ne Zaman | Hangi Olay | Zorunlu Parametre |
|---|---|---|
| Sayfa görüntüleme | PageView | - |
| Ürün inceleme | ViewContent | content_ids (Advantage+) |
| Sepete ekleme | AddToCart | contents (Advantage+) |
| Ödeme başlatma | InitiateCheckout | - |
| Satın alma | Purchase | currency, value |
Kritik noktalar:
- Çoklu pixel →
trackSingle/trackSingleCustomkullan - CAPI entegrasyonu →
eventIDile deduplication yap - GDPR →
fbq('consent', 'revoke/grant')uygula
Facebook Meta Piksel, kullanımı ve özel bazı durumlarla birlikte oldukça geniş bir kaynakça oluşturduğumu düşünüyorum.
Elbette istisna olabilecek gereksinimler ve bu gereksinimlere dair özel çözümler de olacaktır.
“Veri Analitiği & Ölçümleme” ile ilgili bilgi ve destek almak isterseniz DNOMIA’nın web sitesini ziyaret edebilirsiniz.
Facebook Meta Piksel
Bir ziyaretçi web sitenizde gezinmeye başladığında ve oturum başladığında “sayfa görüntüleme” de dahil olmak üzere sunduğunuz ve/veya otomatik olarak toplanan pek çok farklı etkinlik (buton tıklama, form gönderme, ürün satın alma, üye olmak vb.) ile ilişkilendirilebilir. İşte bu tür durumlarda etkinliklerle / olaylarla ilişkilendirdiğiniz Facebook pikseli harekete geçer ve etkinlikleri raporlar1. Böylelikle ziyaretçilerin ve/veya potansiyel müşterilerin (satın alma sonrasında müşteriniz haline geleceklerdir) Facebook reklam(lar)ını gördükten sonra ne tür eylemlerde bulunduklarını anlamak ve bu kişilere bir özel hedef kitle üzerinden erişmek de mümkün hale gelecektir. Ayrıca, kullanıcı sayısı ve kullanıcılara bağlı eylemler arttıkça Ad Manager (Reklam Yöneticisi) reklamları daha isabetli hale getirecektir. Reklamların belirli eylemlerde bulunma olasılığı yüksek olan kişilere ulaşmasını sağlayan bu düzenlemeye dönüşüm optimizasyonu adı verilmektedir.
Standart Olaylar (Standard Events)
Olaylar, (Google Analytics tarafında etkinlikler olarak ifade edilebilir) bir ziyaretçinin form doldurması, üye olması ve/veya alışveriş yapması gibi internet sitesinde gerçekleşen eylemleri ifade etmektedir. Bir olayın takip edilebilmesi için Facebook piksel standart kod ve en azından bir standart olayın (PageView) kurulu olması gerekir.
Kurulum işlemleriyle ilgili olarak Facebook Pikseli Nasıl Kurulur? başlıklı yazımı inceleyebilirsiniz.
Standart olay olarak tanımlanan bu eylemler nelerdir?
Standart olaylar en temel biçimde track ile tanımlanır ve gerekli ise olay hakkında ayrıntılı bilgi eklemenize izin veren belirli nesne özelliklerine sahip parametrelerle desteklenir.
Kullanım yapılarının GTAG [geliştirilmiş e-ticaret etkinliklerine karşılık geldiğini söyleyebiliriz2. Bu nedenle dataLayer kullanımı hem Google Analytics hem de Facebook tarafında ortak bir çözüm olarak değerlendirilebilir.
fbq("track", "[parametre]");
Burada küçük bir not düşmek isterim. Eğer websitesinde birden fazla Facebook Meta Pixel mevcut ise track yerine trackCustom, trackSingle veya trackSingleCustom da görebilirsiniz. Bu farklılık sadece ilgili pixelin davranış biçimini etkiler, kod yapısı yine genel olarak aynı kalır.
Aşağıda başlıklar altında track edilebilecek tanımlı olayları ve kullanımlarını görebilirsiniz3.
AddToCart Kullanımı
Ürünün sepete eklenmesini sağlayan bir link ve/veya buton tıklandığında işler. content_ids, content_name, content_type, contents, currency, value değerlerini barındırabilir. Dinamik reklamlar (Dynamic Ads) için content_ids, content_type, ve contents zorunludur.
fbq("track", "AddToCart");
content_ids ve content_type tanımlayarak pek çok ürün arasında spesifik olarak ürün eşleştirmeleri ile hedeflemeler yaratabilir, dönüşümleri detaylı bir şekilde analiz edebiliriz. contents EAN kodu ya da ürün fiyatı veya fiyatları, id, adet içerecek şekilde uygulanabilir.
[
{
id: "ABC123",
quantity: 2,
item_price: 5.99,
},
{
id: "XYZ789",
quantity: 2,
item_price: 9.99,
},
];
item_price birden fazla ürün olması durumunda ortaya çıkan toplam fiyatı değil burada ilgili tek ürünün fiyatını tanımlamaktadır. Bu durumda;
fbq("track", "AddToCart", {
content_ids: ["1234"],
content_type: "product", // ya da 'product_group'
});
fbq("track", "AddToCart", {
contents: [
{
id: "ABC123",
quantity: 2,
item_price: 5.99,
},
{
id: "XYZ789",
quantity: 2,
item_price: 9.99,
},
],
});
Daha ayrıntılı bir şekilde tüm parametreleri kullanmak istersek;
fbq("track", "AddToCart", {
content_type: "product",
content_ids: ["1234"],
content_name: "ABC Leather Sandal",
content_category: "Shoes",
value: 0.5,
currency: "USD",
});
content_type, iletilen ID’lerin tipine göre belirlenir; ID sayısına göre değil. Bireysel ürün veya varyant ID’leri (örneğin Shopify variant ID) iletiliyorsa product, parent/grup ID’leri (örneğin Shopify product ID) iletiliyorsa product_group kullanılmalıdır. Ek olarak, Ürün Kataloğu aktif ve ürünler ekli ise content_ids değerlerinin buradaki ürün id’leri ile eşleşiyor olması (özellikle dinamik reklamlar için) gerekmektedir. Birden fazla Piksel ID ile işlem yürütülecekse, AddToCart tanımlaması
fbq("trackSingle", "[Facebook-pixel-ID-2]", "AddToCart", {
content_type: "product",
content_ids: ["1234"],
});
Img Pixel ile kullanmak istersek;
<noscript
><img
src="https://www.facebook.com/tr?id=[Facebook-pixel-ID]&ev=AddToCart&cd[content_type]=product&cd[content_ids]=1234&noscript=1"
height="1"
width="1"
style="display:none"
/></noscript>
Daha ayrıntılı bir şekilde tüm parametreleri kullanmak istersek;
<noscript
><img
src="https://www.facebook.com/tr?id=[Facebook-pixel-ID]&ev=AddToCart&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&noscript=1"
height="1"
width="1"
style="display:none"
/></noscript>
AddToWishlist Kullanımı
Ürünün bir istek listesine (Wishlist) eklenmesini sağlayan bir link ve/veya buton tıklandığında bu olayı tetikleyebiliriz. content_name, content_category, content_ids, contents, currency, value değerlerini barındırabilir.
fbq("track", "AddToWishlist");
Daha ayrıntılı bir şekilde tüm parametreleri kullanmak istersek;
fbq("track", "AddToWishlist", {
content_ids: ["1234"],
content_name: "ABC Leather Sandal",
content_category: "Shoes",
value: 0.5,
currency: "USD",
});
content_ids tek ya da birden fazla ürün id () alabilir. Birden fazla Piksel ID ile işlem yürütülecekse, AddToWishlist tanımlaması
fbq("trackSingle", "[Facebook-pixel-ID-2]", "AddToWishlist");
Img Pixel ile kullanmak istersek;
<noscript
><img
height="1"
width="1"
style="display:none"
src="https://www.facebook.com/tr?id='[Facebook-pixel-ID]&ev=AddToWishlist&noscript=1"
/></noscript>
Add Payment Info (AddPaymentInfo)
Ödeme bilgilerinin eklendiği işlem akışını tanımlar. Bir potansiyel müşterinin fatura ve/veya ödeme bilgilerini girip kayıt işlemini başlattığı tıklama ile ilişkilendirilebilir. Aynı şekilde tab kullanımında aktif geçişi ile de ilişkilendirilmesi mümkündür. content_category, content_ids, contents, currency, value değerlerini barındırabilir.
AddPaymentInfo Kullanım
fbq("track", "AddPaymentInfo");
Daha ayrıntılı bir şekilde tüm parametreleri kullanmak istersek;
fbq("track", "AddPaymentInfo", {
content_ids: ["1234"],
content_name: "ABC Leather Sandal",
content_category: "Shoes",
value: 0.5,
currency: "USD",
});
content_ids tek ya da birden fazla ürün id () alabilir. Birden fazla Piksel ID ile işlem yürütülecekse, AddPaymentInfo tanımlaması
fbq("trackSingle", "[Facebook-pixel-ID-2]", "AddPaymentInfo");
Img Pixel ile kullanmak istersek;
<noscript
><img
height="1"
width="1"
style="display:none"
src="https://www.facebook.com/tr?id='[Facebook-pixel-ID]&ev=AddPaymentInfo&noscript=1"
/></noscript>
CompleteRegistration Kullanımı
Bir kayıt formunun gönderildiği / işlemin tamamlandığı durumu tanımlamaktadır. E-bülten formu, üyelik kaydı ve talep formu gibi işlemlerde kullanılabilir. content_name, currency, status, value değerlerini barındırabilir. status ile kayıt işleminin durumu tamamlanmış ise true (0), tamamlanmamış ise false (1) olarak iletilir.
fbq("track", "CompleteRegistration");
Daha ayrıntılı bir şekilde tüm parametreleri kullanmak istersek;
fbq("track", "CompleteRegistration", {
content_name: "ABC Leather Sandal",
value: 0.5,
status: 1,
});
Birden fazla Piksel ID ile işlem yürütülecekse, CompleteRegistration tanımlaması
fbq("trackSingle", "[Facebook-pixel-ID-2]", "CompleteRegistration");
Img Pixel ile kullanmak istersek;
<noscript
><img
height="1"
width="1"
style="display:none"
src="https://www.facebook.com/tr?id='[Facebook-pixel-ID]&ev=CompleteRegistration&noscript=1"
/></noscript>
Contact Kullanımı
Bir ziyaretçi / kullanıcı / müşteri iletişim amacıyla telefon numarası tıkladığında, sms ya da e-posta gönderdiğinde ya da soru sormak amacıyla sohbet oturumu başlattığında (chat) bu olayla ilişkilendirilebilir.
fbq("track", "Contact");
Birden fazla Piksel ID ile işlem yürütülecekse, Contact tanımlaması
fbq("trackSingle", "[Facebook-pixel-ID-2]", "Contact");
Img Pixel ile kullanmak istersek;
<noscript
><img
height="1"
width="1"
style="display:none"
src="https://www.facebook.com/tr?id='[Facebook-pixel-ID]&ev=Contact&noscript=1"
/></noscript>
CustomizeProduct Kullanımı
Ürün ile ilgili bir özelleştirme işlemleri (renk, beden, varyasyon vb.) yapıldığında bu olay tetiklenebilir.
fbq("track", "CustomizeProduct");
Birden fazla Piksel ID ile işlem yürütülecekse, CustomizeProduct tanımlaması
fbq("trackSingle", "[Facebook-pixel-ID-2]", "CustomizeProduct");
Img Pixel ile kullanmak istersek;
<noscript
><img
height="1"
width="1"
style="display:none"
src="https://www.facebook.com/tr?id='[Facebook-pixel-ID]&ev=CustomizeProduct&noscript=1"
/></noscript>
Donate Kullanımı
Bir ziyaretçi bağış işlemi gerçekleştirdiğinde bu etkinlikle ilişkilendirilebilir.
fbq("track", "Donate");
Birden fazla Piksel ID ile işlem yürütülecekse, Donate tanımlaması
fbq("trackSingle", "[Facebook-pixel-ID-2]", "Donate");
Img Pixel ile kullanmak istersek;
<noscript
><img
height="1"
width="1"
style="display:none"
src="https://www.facebook.com/tr?id='[Facebook-pixel-ID]&ev=Donate&noscript=1"
/></noscript>
FindLocation Kullanımı
Bir kullanıcı firma ya da firmaya bağlı bir fiziksel şube adresini aradığında bu olayla ilişkilendirilebilir. Ek olarak, şube ya da mağaza içerisinde spesifik bir ürün / reyon ya da birim (danışma, kasa, iade, çıkış vb.) aramasında da bu olay kullanılabilir.
fbq("track", "FindLocation");
Birden fazla Piksel ID ile işlem yürütülecekse, FindLocation tanımlaması
fbq("trackSingle", "[Facebook-pixel-ID-2]", "FindLocation");
Img Pixel ile kullanmak istersek;
<noscript
><img
height="1"
width="1"
style="display:none"
src="https://www.facebook.com/tr?id='[Facebook-pixel-ID]&ev=FindLocation&noscript=1"
/></noscript>
InitiateCheckout Kullanımı
Potansiyel müşteri ödeme işlemlerini başlatmak amacıyla bir link ya da butonu tıklayıp satın alma sürecine geçtiğinde bu olayla ilişkilendirilebilir. content_category, content_ids, contents, currency, num_items, value değerlerini barındırabilir.
fbq("track", "InitiateCheckout");
Daha ayrıntılı bir şekilde tüm parametreleri kullanmak istersek;
fbq("track", "InitiateCheckout", {
content_ids: ["1234"],
content_category: "snippets",
value: 0.5,
num_ids: 1,
currency: "USD",
});
Birden fazla Piksel ID ile işlem yürütülecekse, InitiateCheckout tanımlaması
fbq("trackSingle", "[Facebook-pixel-ID-2]", "InitiateCheckout");
Img Pixel ile kullanmak istersek;
<noscript
><img
src="https://www.facebook.com/tr?id=[Facebook-pixel-ID]&ev=InitiateCheckout&noscript=1"
height="1"
width="1"
style="display:none"
/></noscript>
Daha ayrıntılı bir şekilde tüm parametreleri kullanmak istersek;
<noscript
><img
src="https://www.facebook.com/tr?id=[Facebook-pixel-ID]&ev=InitiateCheckout&cd[content_category]=snippets&cd[num_ids]=1&cd[content_ids]=1234&cd[value]=0.50&cd[currency]=USD&noscript=1"
height="1"
width="1"
style="display:none"
/></noscript>
Lead Kullanımı
Varış sayfalarında (landing pages) yer alan bir form gönderimi ile ilişkilendirilebilir. content_category, content_name, currency, value değerlerini barındırabilir.
fbq("track", "Lead");
Daha ayrıntılı bir şekilde tüm parametreleri kullanmak istersek;
fbq("track", "Lead", {
content_name: "Sign-up", // lp tanımı
content_category: "B2B",
value: 0.5,
num_ids: 1,
currency: "USD",
});
Birden fazla Piksel ID ile işlem yürütülecekse, Lead tanımlaması
fbq("trackSingle", "[Facebook-pixel-ID-2]", "Lead");
Img Pixel ile kullanmak istersek;
<noscript
><img
src="https://www.facebook.com/tr?id=[Facebook-pixel-ID]&ev=Lead&noscript=1"
height="1"
width="1"
style="display:none"
/></noscript>
Daha ayrıntılı bir şekilde tüm parametreleri kullanmak istersek;
<noscript
><img
src="https://www.facebook.com/tr?id=[Facebook-pixel-ID]&ev=Lead&cd[content_category]=B2B&cd[content_name]=Sign-up&cd[content_ids]=1234&cd[value]=0.50&cd[currency]=USD&noscript=1"
height="1"
width="1"
style="display:none"
/></noscript>
PageView Kullanımı
Bu olay genelde ön tanımlı olarak ziyaretçiler bir sayfayı görüntülediğinde tetiklenir. Sanal sayfalarda ve hızlı ürün görüntüleme gibi modal yapılarında ise (virtual pageview) ayrıca tetiklenebilir.
fbq("track", "PageView");
Birden fazla Piksel ID ile işlem yürütülecekse, PageView tanımlaması
fbq("trackSingle", "[Facebook-pixel-ID-2]", "PageView");
Img Pixel ile kullanmak istersek;
<noscript
><img
height="1"
width="1"
style="display:none"
src="https://www.facebook.com/tr?id='[Facebook-pixel-ID]&ev=PageView&noscript=1"
/></noscript>
Purchase Kullanımı
Ödeme işlemlerinin tamamlanması durumunda (teşekkürler sayfası görüntülendiğinde) bu olay tetiklenebilir. content_ids, content_name, content_type, contents, currency, num_items, value değerlerini barındırabilir.
currency ve value değerleri gereklidir. Dinamik reklamlarda content_ids, content_type, contents değerleri kullanılmalıdır.
fbq("track", "Purchase", {
value: 0.5,
currency: "USD",
});
fbq("track", "Purchase", {
content_name: "ABC Leather Sandal",
content_type: "product",
content_ids: "[1234]",
value: 0.5,
num_ids: 1,
currency: "USD",
});
Ek bir örneği de contents üzerinden yapalım;
fbq("track", "Purchase", {
content_type: "product",
contents: [
{
id: "1234",
quantity: 2,
item_price: 10.0,
},
{
id: "4642",
quantity: 1,
item_price: 5.0,
},
],
value: 25.0,
currency: "USD",
});
Birden fazla Piksel ID ile işlem yürütülecekse, Purchase tanımlaması
fbq("trackSingle", "[Facebook-pixel-ID-2]", "Purchase", {
value: 0.5,
currency: "USD",
});
Img Pixel ile kullanmak istersek;
<noscript
><img
src="https://www.facebook.com/tr?id=[Facebook-pixel-ID]&ev=Purchase&cd[value]=0.50&cd[currency]=USD&noscript=1"
height="1"
width="1"
style="display:none"
/></noscript>
Daha ayrıntılı bir şekilde tüm parametreleri kullanmak istersek;
<noscript
><img
src="https://www.facebook.com/tr?id=[Facebook-pixel-ID]&ev=Purchase&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&noscript=1"
height="1"
width="1"
style="display:none"
/></noscript>
Bu olay ön tanımlı olarak kullanılmaktadır ve ziyaretçiler bir sayfayı görüntülediğinde iletilir.
Search Kullanım
Ziyaretçi tarafından bir ürün ya da içerik araması yapıldığında bu olayla ilişkilendirilebilir. content_category, content_ids, contents, currency, search_string, value değerlerini alabilir. search_string arama işlemi gerçekleştirilen ifadeyi almaktadır.
fbq("track", "Search");
Detaylı bir kullanım için:
fbq("track", "Search", {
content_category: "Sandals",
content_ids: "[1234]",
value: 0.5,
currency: "USD",
search_string: "Man Sandals",
});
Birden fazla Piksel ID ile işlem yürütülecekse, Search tanımlaması
fbq("trackSingle", "[Facebook-pixel-ID-2]", "Search");
Img Pixel ile kullanmak istersek;
<noscript
><img
src="https://www.facebook.com/tr?id=[Facebook-pixel-ID]&ev=Search&cd[content_category]=Sandals&cd[content_type]=product&cd[content_ids]=1234&cd[value]=0.50&cd[currency]=USD&cd[search_string]=Man%20Sandals&noscript=1"
height="1"
width="1"
style="display:none"
/></noscript>
StartTrial Kullanımı
Bir ziyaretçi sınırlı (süre, kullanım) bir deneme teklifini (ürün, servis ya da hizmet kullanımı) kabul ettiğinde. Örneğin, 15 gün ücretiz kullanım teklifi. currency, predicted_ltv, value değerlerini alabilir. predicted_ltv, reklamveren tarafından bir abone için öngörülen tahmini ömür değeridir ve tam bir değer olarak ifade edilir.
fbq("track", "StartTrial");
Detaylı bir kullanım için:
fbq("track", "StartTrial", {
value: 0.5,
currency: "USD",
predicted_ltv: 15,
});
Birden fazla Piksel ID ile işlem yürütülecekse, StartTrial tanımlaması
fbq("trackSingle", "[Facebook-pixel-ID-2]", "StartTrial");
Img Pixel ile kullanmak istersek;
<noscript
><img
src="https://www.facebook.com/tr?id=[Facebook-pixel-ID]&ev= StartTrial&noscript=1"
height="1"
width="1"
style="display:none"
/></noscript>
Detaylı kullanım için;
<noscript
><img
src="https://www.facebook.com/tr?id=[Facebook-pixel-ID]&ev= StartTrial&cd[predicted_ltv]=15&cd[value]=0.50&cd[currency]=USD&noscript=1"
height="1"
width="1"
style="display:none"
/></noscript>
SubmitApplication Kullanımı
Bir ziyaretçi sunulan bir ürün, servis ya da program teklifine başvuruda bulunduğunda bu olay kullanılabilir. Örneğin, iş başvurusu, ders, kurs, kredi kartı edinimi vb.
fbq("track", "SubmitApplication");
Birden fazla Piksel ID ile işlem yürütülecekse, SubmitApplication tanımlaması
fbq("trackSingle", "[Facebook-pixel-ID-2]", "SubmitApplication");
Img Pixel ile kullanmak istersek;
<noscript
><img
height="1"
width="1"
style="display:none"
src="https://www.facebook.com/tr?id='[Facebook-pixel-ID]&ev=SubmitApplication&noscript=1"
/></noscript>
Subscribe Kullanımı
Bir ziyaretçi ürün ya da servis kullanımı için ücretli bir üyelik başlattığında bu olayla ilişkilendirilebilir. currency, predicted_ltv, value değerlerini alabilir.
fbq("track", "Subscribe");
Detaylı kullanım;
fbq("track", "Subscribe", {
value: 0.5,
currency: "USD",
predicted_ltv: 15,
});
Birden fazla Piksel ID ile işlem yürütülecekse, Subscribe tanımlaması
fbq("trackSingle", "[Facebook-pixel-ID-2]", "Subscribe");
Img Pixel ile kullanmak istersek;
<noscript
><img
src="https://www.facebook.com/tr?id=[Facebook-pixel-ID]&ev= Subscribe&noscript=1"
height="1"
width="1"
style="display:none"
/></noscript>
Detaylı kullanım için;
<noscript
><img
src="https://www.facebook.com/tr?id=[Facebook-pixel-ID]&ev= Subscribe&cd[predicted_ltv]=15&cd[value]=0.50&cd[currency]=USD&noscript=1"
height="1"
width="1"
style="display:none"
/></noscript>
ViewContent Kullanımı
Bir ziyaretçi bizim için önemli bir sayfayı (ürün, içerik, vb.) görüntülediğinde bu olayla ilişkilendirilebilir. Örneğin, sepet, kampanya detay sayfası, özel teklif, ürün detay sayfası ve benzeri. content_ids, content_name, content_type, contents, currency, value değerlerini alabilir. Dinamik reklamlar için content_ids, content_type ve contents değerlerinin tanımlanması gerekir.
fbq("track", "ViewContent");
Detaylı kullanım;
fbq("track", "ViewContent", {
content_type: "product",
content_ids: ["1234"],
content_name: "ABC Leather Sandal",
content_category: "Shoes",
value: 0.5,
currency: "USD",
});
Birden fazla Piksel ID ile işlem yürütülecekse, Subscribe tanımlaması
fbq("trackSingle", "[Facebook-pixel-ID-2]", "ViewContent");
Img Pixel ile kullanmak istersek;
<noscript
><img
src="https://www.facebook.com/tr?id=[Facebook-pixel-ID]&ev= ViewContent&noscript=1"
height="1"
width="1"
style="display:none"
/></noscript>
Daha ayrıntılı bir şekilde tüm parametreleri kullanmak istersek;
<noscript
><img
src="https://www.facebook.com/tr?id=[Facebook-pixel-ID]&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&noscript=1"
height="1"
width="1"
style="display:none"
/></noscript>
content_type: product ve product_group Ayrımı
content_type parametresi, Advantage+ katalog reklamları ve dinamik yeniden hedefleme için kritik öneme sahiptir. Bu parametre iletilen ID’lerin Meta katalogundaki hangi seviyeyle eşleştiğini belirler.
Meta Katalog Yapısı
Meta ürün kataloğunda iki seviye bulunur:
- Content ID: Bireysel ürün veya varyant kimliği (katalogdaki
idalanı) - Item Group ID: Ürün grubu kimliği, aynı ürünün farklı varyantlarını (beden, renk vb.) bir arada gruplar
Bir e-ticaret platformunda (Shopify, WooCommerce vb.) bu yapı genellikle şu şekilde eşleşir:
| Platform Kavramı | Meta Katalog Karşılığı | content_type |
|---|---|---|
| Variant ID (her beden/renk ayrı) | Content ID | product |
| Product ID (parent, tüm varyantları kapsar) | Item Group ID | product_group |
E-ticaret Funnel’ında Kullanım
Farklı sayfa tiplerinde farklı content_type değerleri kullanmak hem geçerli hem de önerilen bir yaklaşımdır. Meta katalog her iki seviyede eşleşme yapabilir:
// Kategori / liste sayfası: varyant henüz seçilmedi, parent ID mevcut
fbq("track", "ViewContent", {
content_type: "product_group",
content_ids: ["7890", "7891", "7892"],
content_category: "Ayakkabı",
});
// Ürün detay sayfası: spesifik varyant seçildi
fbq("track", "ViewContent", {
content_type: "product",
content_ids: ["4001"],
content_name: "Mavi Tişört - M Beden",
value: 29.99,
currency: "USD",
});
// Sepete ekleme: seçilen varyant
fbq("track", "AddToCart", {
content_type: "product",
content_ids: ["4001"],
value: 29.99,
currency: "USD",
});
// Satın alma: sepetteki varyantlar
fbq("track", "Purchase", {
content_type: "product",
contents: [
{ id: "4001", quantity: 1, item_price: 29.99 },
{ id: "5023", quantity: 2, item_price: 49.99 },
],
value: 129.97,
currency: "USD",
});
Sık Yapılan Hatalar
Variant ID ile product_group göndermek: content_ids içinde variant ID’ler varken content_type: 'product_group' kullanırsanız, Meta bu ID’leri Item Group ID olarak aramaya çalışır ve katalogda eşleşme bulamaz. Dinamik reklamlar çalışmaz, dönüşüm verileri eksik kalır.
Katalog ile uyumsuz ID formatı: Shopify varsayılan olarak pixel’e parent product ID gönderir, ancak katalog variant ID’leri içerebilir (ya da tam tersi). Pixel’den gönderilen ID’lerin katalogdaki karşılıklarıyla birebir eşleştiğini doğrulamak gerekir. Facebook Pixel Helper bu doğrulamada yardımcı olabilir.
Ek Kullanım ve Tanımlar
Yukarıda bahsi geçen olaylar ve parametreler ihtiyaçlara göre özel olarak tanımlanabilir. Örneğin, bir ödeme işleminde yer alan adımların tamamı Step1, Step2, Step3 şeklinde işaretlenebilir. Bu durumda kullanabileceğimiz trackCustom içeriği şu şekilde olacaktır.
fbq("trackCustom", "Step4");
Tanımladığımız adımlara dair ek parametreler de belirlemek isteyebiliriz.
fbq("trackCustom", "Step4", {
// opsiyonel parametreler
});
Bu işlemin trackSingleCustom ile sadece belirli bir piksel ID için geçerli olmasını sağlayabiliriz.
fbq("trackSingleCustom", "[Facebook-pixel-ID-2]", "Step4", {
// opsiyonel parametreler
});
Bir indirim kuponu (ShareDiscount) tanımlamak ve bu konu kullanan kullanıcıları işaretlemek ve ek parametreler (promotion) oluşturmak istersek örneğimizi şu şekilde oluşturabiliriz;
fbq("trackCustom", "ShareDiscount", {
promotion: "share_discount_20%",
});
Bu işlemin trackSingleCustom ile sadece belirli bir piksel ID için geçerli olmasını sağlayabiliriz.
fbq("trackSingleCustom", "[Facebook-pixel-ID-2]", "ShareDiscount", {
promotion: "share_discount_20%",
});
Diğer yandan, var olan bir standart olaya da özelleştirilmiş özellikler ekleyebiliriz. Örnek olarak Purchase standart olayına karşılaştırılan ürün özelliği, kampanya adı ve promosyon kodu ekleyelim;
fbq("track", "Purchase", {
value: 115.0,
currency: "USD",
contents: [
{
id: "301",
quantity: 1,
item_price: 85.0,
},
{
id: "401",
quantity: 2,
item_price: 15.0,
},
],
content_type: "product",
compared_product: "recommended-banner-shoes",
campaign_name: "discount-banner",
promotion: "share_discount_20%",
});
Standart bir olay kullanırken söz konusu olabilecek bir yazım yanlışı (Purchase yerine Purchased yazılması gibi) işlemin gerçekleşmemesine ve hata dönesine neden olabilir. Bu tür durumları erken fark edebilmek için Facebook Pixel Helper eklentisinden faydalanabilirsiniz. Ayrıca, Facebook Ortakları aracılığıyla da olay tanımlama işlemlerini otomatik bir şekilde gerçekleştirebilirsiniz.
Olay Takibi
Bir sayfa yüklendiğinde Olayı Takip Et veya Sayfada Eylemde Bulunulduğunda Olayı Takip Et seçenekleri üzerinden işlemler gerçekleştirilebilir. Peki, bu takip tanımları arasındaki farklılıklar nelerdir?
Sayfa Yüklendiğinde Olayı Takip Etme
: Önemli bir eylem gerçekleştirildiğinde (alışveriş işleminin tamamlanması, üyelik ve benzeri) eğer bir onay ya da teşekkür sayfasına yönlendirme söz konusu ise bu seçenek değerlendirilebilir. Bu durumda, sayfa yüklemesi olayları için ilgili kod <head>…</head> etiketleri arasına yerleştirilmelidir.
Sayfada Eylemde Bulunulduğunda Olayı Takip Etme : Takip etmek istenen etkilik ziyaretçilerin sepete ürün eklemesi, form onay tıklaması, telefon tıklaması, satın alma butonunu tıklaması ya da önemli bir sayfa linkini tıklaması gibi işlemlerden oluşuyorsa bu seçenek değerlendirilebilir. Bu durumda, olay kodu takip edilecek olayla ilişkili element (buton, link vb.) üzerinden tanımlanacaktır. Sayfa yüklendikten sonra oturum süresince bu işlem kullanılabileceği için kod harici bir dosya ya da diğer JavaScript kodlarıyla birlikte tutulabilir.
Bu işlemlere ek olarak olaylara değer atamak (Dönüşüm Değeri olarak 1 veya Para Birimi) daha detaylı analiz gerçekleştirmek için tavsiye edilen durumlardan bir diğeridir.
Conversions API ile Birlikte Kullanım
Tarayıcı taraflı (browser-side) takip yöntemleri, reklam engelleyiciler (ad blockers), ITP (Intelligent Tracking Prevention) ve üçüncü taraf çerezlerin kısıtlanması nedeniyle giderek daha az güvenilir hale gelmiştir. Meta’nın verilerine göre tarayıcı taraflı olayların yaklaşık %50’si kaybedilmektedir.
Conversions API (CAPI), sunucu taraflı olay gönderimi sağlayarak bu kayıpları minimize eder. Meta Pixel ile birlikte kullanıldığında hem tarayıcı hem de sunucu tarafından veri toplanır ve daha doğru ölçümleme yapılabilir.
Pixel ve CAPI birlikte kullanılırken aynı olayın iki kez sayılmaması için event deduplication (olay tekilleştirme) gereklidir. Bu amaçla eventID parametresi kullanılır:
fbq(
"track",
"Purchase",
{
value: 115.0,
currency: "USD",
content_type: "product",
content_ids: ["ABC123"],
},
{
eventID: "order-12345-abc", // Benzersiz olay kimliği
},
);
Sunucu tarafında aynı eventID ile CAPI üzerinden olay gönderildiğinde, Meta bu iki olayı eşleştirerek tek bir dönüşüm olarak kaydeder4.
GDPR Uyumluluğu ve Consent Yönetimi
Avrupa Birliği Genel Veri Koruma Yönetmeliği (GDPR) kapsamında kullanıcılardan çerez kullanımı için açık onay alınması gerekmektedir. Meta Pixel, consent API’si ile bu gereksinimi destekler.
// Sayfa yüklendiğinde varsayılan olarak veri gönderimini durdur
fbq("consent", "revoke");
fbq("init", "PIXEL-ID");
fbq("track", "PageView");
// Kullanıcı çerez politikasını kabul ettikten sonra
fbq("consent", "grant");
Bu yapıda revoke çağrısı init fonksiyonundan önce yapılmalıdır. Kullanıcı onay verdikten sonra grant çağrısı ile veri gönderimi başlatılır. Mevcut bir çerez onay sisteminiz (tag manager vb.) varsa bu yapıyı entegre edebilirsiniz.
Single Page Application (SPA) Entegrasyonu
React, Vue, Angular gibi modern JavaScript frameworkleri ile geliştirilen tek sayfa uygulamalarında (SPA) sayfa yenilemesi olmadan URL değiştiği için standart piksel kurulumu yeterli olmayabilir. Meta Pixel, History API değişikliklerini otomatik olarak algılayıp PageView olayı tetikler ancak diğer olaylar için manuel tetikleme gerekir.
// React Router veya benzeri bir yapıda route değişikliğinde
const trackRouteChange = (pathname) => {
switch (pathname) {
case "/urun":
fbq("track", "ViewContent", { content_type: "product" });
break;
case "/sepet":
fbq("track", "AddToCart");
break;
case "/odeme":
fbq("track", "InitiateCheckout");
break;
}
};
// useEffect veya componentDidUpdate içinde
useEffect(() => {
trackRouteChange(location.pathname);
}, [location.pathname]);
Otomatik PageView tetiklemesini kapatmak için disablePushState: true kullanılabilir ancak bu genellikle önerilmez.
Limited Data Use (LDU) - ABD Gizlilik Düzenlemeleri
Amerika Birleşik Devletleri’ndeki eyalet bazlı gizlilik düzenlemeleri (California CCPA, Colorado, Connecticut) için Meta, Limited Data Use (Sınırlı Veri Kullanımı) özelliğini sunmaktadır. Bu özellik etkinleştirildiğinde Meta, verileri yalnızca hizmet sağlayıcı rolünde işler.
// LDU kapalı (varsayılan davranış)
fbq("dataProcessingOptions", []);
// LDU açık - Meta coğrafi konumu otomatik belirlesin
fbq("dataProcessingOptions", ["LDU"], 0, 0);
// LDU açık - California için manuel belirleme
fbq("dataProcessingOptions", ["LDU"], 1, 1000);
fbq("init", "PIXEL-ID");
fbq("track", "PageView");
dataProcessingOptions çağrısı init fonksiyonundan önce yapılmalıdır. LDU etkinleştirildiğinde kampanya performansı ve yeniden hedefleme yetenekleri kısıtlanabilir.
Not: Haziran 2023 itibarıyla LDU, California, Colorado ve Connecticut eyaletleri için geçerlidir. Türkiye’deki kullanıcılar için bu ayar doğrudan uygulanmaz ancak global hedefleme yapan kampanyalarda dikkate alınmalıdır.
Sıkça Sorulan Sorular (FAQ)
Meta Pixel nedir ve ne işe yarar?
Meta Pixel, web sitenize eklenen bir JavaScript kodudur. Ziyaretçilerin sayfa görüntüleme, sepete ekleme, satın alma gibi eylemlerini takip eder. Bu veriler Facebook/Instagram reklamlarının optimizasyonu, özel hedef kitle oluşturma ve dönüşüm ölçümlemesi için kullanılır.
Meta Pixel standart olayları nelerdir?
17 standart olay vardır:
| Olay | Kullanım Alanı |
|---|---|
| PageView | Sayfa görüntüleme |
| ViewContent | Ürün/içerik detayı |
| Search | Site içi arama |
| AddToCart | Sepete ekleme |
| AddToWishlist | İstek listesine ekleme |
| InitiateCheckout | Ödeme başlatma |
| AddPaymentInfo | Ödeme bilgisi girişi |
| Purchase | Satın alma |
| Lead | Form gönderimi |
| CompleteRegistration | Kayıt tamamlama |
| Contact | İletişim |
| CustomizeProduct | Ürün özelleştirme |
| Donate | Bağış |
| FindLocation | Konum arama |
| Schedule | Randevu alma |
| StartTrial | Deneme başlatma |
| Subscribe | Abonelik |
Purchase olayı için hangi parametreler zorunludur?
currency (para birimi) ve value (tutar) zorunludur. Advantage+ katalog reklamları kullanıyorsanız contents veya content_ids parametresi de gereklidir.
fbq("track", "Purchase", {
value: 250.0,
currency: "TRY", // Zorunlu
content_type: "product",
content_ids: ["SKU-123"], // Advantage+ için zorunlu
});
Birden fazla Meta Pixel nasıl yönetilir?
trackSingle ve trackSingleCustom fonksiyonları kullanılır:
fbq("init", "PIXEL-A");
fbq("init", "PIXEL-B");
// Tüm pixellere
fbq("track", "PageView");
// Sadece PIXEL-A'ya
fbq("trackSingle", "PIXEL-A", "Purchase", { value: 100, currency: "TRY" });
Conversions API neden gerekli?
Tarayıcı taraflı takip, ad blockerlar ve ITP nedeniyle olayların yaklaşık %50’si kaybedilmektedir. Conversions API sunucu taraflı veri gönderimi sağlayarak bu kayıpları minimize eder.
GDPR için Meta Pixel nasıl yapılandırılır?
fbq("consent", "revoke"); // Önce durdur
fbq("init", "PIXEL-ID");
fbq("track", "PageView");
// Kullanıcı onay verdikten sonra
fbq("consent", "grant");
Özet: Temel Çıkarımlar
- 17 standart olay desteklenir,
Purchaseiçincurrencyvevaluezorunludur - Advantage+ katalog reklamları için
contentsveyacontent_idsgereklidir - Çoklu pixel yönetiminde
trackSingle/trackSingleCustomkullanılmalıdır - Conversions API ile birlikte kullanımda
eventIDile deduplication şarttır - GDPR uyumluluğu için consent API (
revoke/grant) kullanılmalıdır - SPA uygulamalarında route değişikliklerinde manuel olay tetikleme gerekir