İçeriğe geç
ceaksan

Meta Pixel Olayları ve Advanced Matching Parametreleri (em, ph, fn, ln) Rehberi

Meta Pixel standart olayları, Advanced Matching parametreleri (em, ph, fn, ln, ct, st, zp), Conversions API deduplication ve Consent Mode kurulumu. E-ticaret tracking için 2026 pratik rehberi.

21 Oca 2019 11 dk okuma Güncellendi: 17 Şub 2026
TL;DR

Meta Pixel, web sitenizdeki kullanıcı davranışlarını izleyen bir JavaScript kodudur. 17 standart olay (PageView, Purchase, AddToCart vb.) ile dönüşüm takibi yapabilir, Advantage+ katalog reklamları için dinamik hedefleme oluşturabilirsiniz. 2024 sonrası tarayıcı kısıtlamaları nedeniyle Conversions API ile birlikte kullanımı önerilir. GDPR uyumluluğu için consent API, çoklu piksel yönetimi için trackSingle/trackSingleCustom fonksiyonları mevcuttur.

Meta Pixel’in kullanımı, standart olaylar ve Advanced Matching ile özel durumlar birlikte ele alındığında oldukça geniş bir kaynakça çıkıyor.

“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 ulaştığında ve bir oturum başlattığı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.

Pixel kurulumunu ister Meta Events Manager üzerinden manuel snippet ile, ister Shopify, Ticimax, IdeaSoft, T-Soft gibi platform entegrasyonları üzerinden, ister GTM ile yapın; standart olayların tetikleme noktası ve parametre yapısı aynıdır.

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]&amp;ev=AddToCart&amp;cd[content_type]=product&amp;cd[content_ids]=1234&amp;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]&amp;ev=AddToCart&amp;cd[content_name]=ABC%20Leather%20Sandal&amp;cd[content_category]=Shoes&amp;cd[content_type]=product&amp;cd[content_ids]=1234&amp;cd[value]=0.50&amp;cd[currency]=USD&amp;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>

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]&amp;ev=InitiateCheckout&amp;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]&amp;ev=InitiateCheckout&amp;cd[content_category]=snippets&amp;cd[num_ids]=1&amp;cd[content_ids]=1234&amp;cd[value]=0.50&amp;cd[currency]=USD&amp;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]&amp;ev=Lead&amp;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]&amp;ev=Lead&amp;cd[content_category]=B2B&amp;cd[content_name]=Sign-up&amp;cd[content_ids]=1234&amp;cd[value]=0.50&amp;cd[currency]=USD&amp;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]&amp;ev=Purchase&amp;cd[value]=0.50&amp;cd[currency]=USD&amp;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]&amp;ev=Purchase&amp;cd[content_name]=ABC%20Leather%20Sandal&amp;cd[content_category]=Shoes&amp;cd[content_type]=product&amp;cd[content_ids]=1234&amp;cd[value]=0.50&amp;cd[currency]=USD&amp;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]&amp;ev=Search&amp;cd[content_category]=Sandals&amp;cd[content_type]=product&amp;cd[content_ids]=1234&amp;cd[value]=0.50&amp;cd[currency]=USD&amp;cd[search_string]=Man%20Sandals&amp;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]&amp;ev= StartTrial&amp;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]&amp;ev= StartTrial&amp;cd[predicted_ltv]=15&amp;cd[value]=0.50&amp;cd[currency]=USD&amp;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]&amp;ev= Subscribe&amp;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]&amp;ev= Subscribe&amp;cd[predicted_ltv]=15&amp;cd[value]=0.50&amp;cd[currency]=USD&amp;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]&amp;ev= ViewContent&amp;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]&amp;ev=ViewContent&amp;cd[content_name]=ABC%20Leather%20Sandal&amp;cd[content_category]=Shoes&amp;cd[content_type]=product&amp;cd[content_ids]=1234&amp;cd[value]=0.50&amp;cd[currency]=USD&amp;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 kataloğundaki 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 id alanı)
  • 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 IDproduct
Product ID (parent, tüm varyantları kapsar)Item Group IDproduct_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.

Advanced Matching Parametreleri

Advanced Matching, Pixel event’leri ile birlikte hash’lenmiş kullanıcı verisini (e-posta, telefon, isim, konum) Meta’ya göndermenizi sağlar; bu sayede Meta dönüşümleri gerçek kullanıcı profilleriyle daha yüksek oranda eşler. Event Match Quality (EMQ) skorunu doğrudan yükselten tek parametre grubudur ve Conversions API ile birlikte iOS 14.5 ve Safari ITP sonrası attribution kaybını telafi etmenin en güçlü yoludur4.

Pixel kütüphanesinin desteklediği parametreler:

AnahtarAnlamıFormat kuralıÖn hash gerekli mi?
emE-postaKüçük harf, boşluksuz. Örn: jane.doe@example.comHayır (kütüphane otomatik hash’ler)
phTelefonSadece rakam, ülke ve alan kodu dahil. Örn: 905321234567Hayır (otomatik hash)
fnAdSadece küçük harf, boşluksuz, noktalama yokHayır (otomatik hash)
lnSoyadSadece küçük harfHayır (otomatik hash)
dbDoğum tarihiYYYYMMDD formatında, sadece rakamHayır (otomatik hash)
geCinsiyetTek küçük harf: f veya mHayır (otomatik hash)
ctŞehirKüçük harf, boşluksuz. Örn: istanbulHayır (otomatik hash)
stEyalet / ilKüçük harf iki haneli kod. Örn: ca, 34Hayır (otomatik hash)
zpPosta koduString, özel normalizasyon yokHayır (otomatik hash)
countryÜlkeKüçük harf iki haneli ISO kodu. Örn: tr, usHayır (otomatik hash)
external_idDahili kullanıcı IDSabit bir kimlik (loyalty ID, müşteri ID vb.). Ön hash’lenebilirHayır

Pixel tarafında kullanım (fbq('init', ...)):

fbq("init", "PIXEL_ID", {
  em: "jane.doe@example.com", // küçük harf, kütüphane hash'ler
  ph: "905321234567", // sadece rakam, kütüphane hash'ler
  fn: "jane",
  ln: "doe",
  ct: "istanbul",
  country: "tr",
  external_id: "user_4812",
});

Pixel JavaScript kütüphanesi bu alanları göndermeden önce otomatik olarak normalize edip SHA-256 ile hash’ler; dolayısıyla client tarafında düz metin olarak iletebilirsiniz. Ön hash’lenmiş değerler de kabul edilir (CMS zaten hash’liyorsa), ama aynı payload içinde iki stili karıştırmayın.

CAPI tarafı farklı çalışır. Aynı kullanıcı verisini Conversions API ile sunucudan gönderirken Meta her PII alanının ön hash’lenmiş SHA-256 değerini bekler. Tipik hata: yukarıdaki Pixel objesini aynen backend payload’ına kopyalamak. Tarayıcıda kütüphane hash’ler, backend’de hash’lemez, Meta event’i reddeder veya match quality’sini düşürür.

Kenar durumlar ve Türkiye’ye özel örnekler için ayrı yazıya bakın: Facebook Pikseli Gelişmiş Eşleştirme ve Özel Durumlar.

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 kaydeder5.

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:

OlayKullanım Alanı
PageViewSayfa görüntüleme
ViewContentÜrün/içerik detayı
SearchSite içi arama
AddToCartSepete ekleme
AddToWishlistİstek listesine ekleme
InitiateCheckoutÖdeme başlatma
AddPaymentInfoÖdeme bilgisi girişi
PurchaseSatın alma
LeadForm gönderimi
CompleteRegistrationKayıt tamamlama
Contactİletişim
CustomizeProductÜrün özelleştirme
DonateBağış
FindLocationKonum arama
ScheduleRandevu alma
StartTrialDeneme başlatma
SubscribeAbonelik

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");

Footnotes

  1. Facebook Pikseli hakkında. Facebook for Business
  2. Universal Analytics. Google Analytics
  3. Facebook Pixel. Facebook for Developers
  4. Advanced Matching. Meta for Developers
  5. Deduplicate Pixel and Server Events. Meta for Developers
Önemli Noktalar
  • 01 Meta Pixel 17 standart olay destekler, Purchase için currency ve value zorunludur
  • 02 Advantage+ katalog reklamları için contents veya content_ids parametresi gereklidir
  • 03 Çoklu pixel yönetiminde trackSingle/trackSingleCustom kullanılmalıdır
  • 04 Conversions API ile birlikte kullanımda eventID ile deduplication şarttır
  • 05 GDPR uyumluluğu için consent API (revoke/grant) kullanılmalıdır
  • 06 SPA uygulamalarında route değişikliklerinde manuel olay tetikleme gerekir
Sık 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: PageView, ViewContent, Search, AddToCart, AddToWishlist, InitiateCheckout, AddPaymentInfo, Purchase, Lead, CompleteRegistration, Contact, CustomizeProduct, Donate, FindLocation, Schedule, StartTrial, Subscribe. Her biri belirli kullanıcı eylemlerini temsil eder.

+ Purchase olayı için hangi parametreler zorunludur?

Purchase olayı için currency (para birimi) ve value (tutar) parametreleri zorunludur. Advantage+ katalog reklamları kullanıyorsanız contents veya content_ids parametresi de gereklidir.

+ Birden fazla Meta Pixel nasıl yönetilir?

trackSingle ve trackSingleCustom fonksiyonları kullanılır. Standart track fonksiyonu tüm init edilmiş pixellere olay gönderirken, trackSingle belirli bir pixel ID'ye özel olay göndermenizi sağlar.

+ 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. Pixel ile birlikte kullanıldığında eventID parametresi ile deduplication yapılmalıdır.

+ GDPR için Meta Pixel nasıl yapılandırılır?

fbq('consent', 'revoke') ile veri gönderimini durdurun, kullanıcı onay verdikten sonra fbq('consent', 'grant') ile başlatın. revoke çağrısı init fonksiyonundan önce yapılmalıdır.