...
Blog - En Güncel Haberler

Meta Dönüşüm API’si Nedir? Conversions API Nasıl Kurulur?

Meta Dönüşüm API

Dijital pazarlamacılar için hazırlanan bu rehber, Meta Dönüşüm API’si (Facebook Conversions API) ve ilgili entegrasyonlar hakkında ileri seviye teknik bilgiler içerir. Rehberde, piksel ile Conversions API farkları, Shopify ve WordPress gibi popüler platformlarda kurulum yöntemleri, sunucu tarafı izleme stratejileri ve sık karşılaşılan sorunların çözümleri ayrıntılı olarak ele alınmaktadır. Kod örnekleri, ekran görüntüsü açıklamaları ve pratik uygulama senaryolarıyla, özellikle teknik bilgiye sahip kullanıcılar için derinlemesine bir kaynak sunmayı amaçlıyoruz.

Meta Conversions API (Meta Dönüşüm API’si) nedir?

Meta Dönüşüm API’si (Conversions API), Meta (Facebook) reklam ekosisteminde gerçekleşen dönüşüm olaylarını sunucu tarafında izlemenizi sağlayan bir yöntemdir. Geleneksel Facebook Pikseli tarayıcı (istemci) tarafında çalışırken, Conversions API sunucu tarafında çalışır ve verileri doğrudan sizin sunucunuzdan Meta’ya iletir. Bu yaklaşım, piksel ile izleme yönteminin yaşadığı tarayıcı kaynaklı kısıtlamalara çözüm getirir.

Örneğin, piksel JavaScript kodu kullanarak kullanıcının tarayıcısından veri toplar; ancak reklam engelleyiciler, üçüncü taraf çerez kısıtlamaları (Safari ITP gibi) ve iOS 14+ gizlilik önlemleri nedeniyle pikselin toplayabildiği veri miktarı azalmıştır.

Conversions API ise aynı olayları sunucu üzerinden doğrudan Meta’ya ilettiği için tarayıcı kısıtlamalarından etkilenmez. Sonuç olarak, Conversions API kullanımı, piksele kıyasla daha güvenilir veri takibi ve daha az veri kaybı anlamına gelir.

Meta Conversions API

Meta Conversions API

Şekil 1: Meta Conversions API (sunucu tarafı) ile Meta Pikseli (tarayıcı tarafı) arasındaki temel fark. Piksel, tarayıcı üzerinden anlık veri gönderirken, Conversions API sunucudan doğrudan Meta’ya veri gönderir. Bu çift katmanlı takip, reklam raporlamasında tarayıcı kaynaklı boşlukları kapatmaya yardımcı olur.

Conversions API’nin Piksel İle Farkı Nedir?

Piksel ve Conversions API temelde benzer olayları takip edebilir ancak veri iletim yöntemleri farklıdır. Piksel tarayıcı tarafında çalıştığı için adblock veya tarayıcı çerez engellemelerinden etkilenebilir; Conversions API ise sunucu tarafında olduğu için bu tür engellemelere takılmaz.

Piksel verileri anlık (real-time) iletirken, Conversions API isteğe bağlı olarak anlık veya toplu şekilde iletim yapabilir – ancak en iyi uygulama, verileri mümkün olduğunca gerçek zamanlı göndermektir (aksi halde attribüsyon ve optimizasyon olumsuz etkilenebilir).

Ayrıca piksel tarayıcıdaki 3. taraf çerez ve tarayıcı oturum bilgilerine dayanır; Conversions API ise sunucudaki birinci taraf verilere (ör. sunucunun kayıtlı müşteri verisi) erişebilir.

Özetle: Piksel = İstemci-tarafı izleme, Conversions API = Sunucu-tarafı izleme. Conversions API, pikseli tamamlayıcı veya bazı durumlarda onun yerini alıcı bir rol üstlenir ve özellikle tarayıcı kaynaklı veri kayıplarını telafi etmeye odaklanır.

Veri Gizliliği ve Veri Kaybını Azaltmadaki Rolü

Conversions API, işletmelere gönderilen veriler üzerinde daha fazla kontrol imkânı sunar. Sunucu tarafında hangi verilerin paylaşılacağını belirleyebilir, hassas müşteri bilgilerinin hashlenerek (SHA-256 gibi) anonimleştirilmesini sağlayabilirsiniz.

Facebook da gereği olarak tüm kişisel verilerin (e-posta, telefon vb.) sunucu tarafında hashlenmesini şart koşar – aksi takdirde ham veriler kabul edilmez veya silinir. Bu yaklaşım, GDPR gibi veri gizliliği düzenlemeleriyle uyumluluğu kolaylaştırır ve kullanıcı mahremiyetini korurken veri paylaşımının sürdürülmesine olanak tanır.

Diğer yandan, Conversions API kullanımı reklam kampanyalarınızın performansını da iyileştirebilir: Tarayıcı kısıtlamaları nedeniyle pikselin yakalayamadığı dönüşümler (ör. adblock yüklü bir ziyaretçinin satın alması) sunucu tarafında yakalanarak Facebook’a iletilir. Bu sayede reklam raporlarınızda daha eksiksiz bir dönüşüm verisi görürsünüz.

Nitekim Facebook, Conversions API uygulayan işletmelerin salt piksel kullananlara kıyasla daha yüksek ROAS elde edebildiğini belirtmektedir. Sonuç olarak Meta Dönüşüm API’si, veri gizliliği çağında reklamverenlerin hem yasal uyumluluğunu artıran hem de tarayıcı kaynaklı veri kayıplarını minimize eden kritik bir teknolojidir.

Shopify için Conversions API kurulumu

Shopify platformunda Facebook Conversions API’yi kullanarak dönüşümleri izlemek oldukça önemlidir. Shopify, Facebook & Instagram by Meta adıyla bir resmi satış kanalı uygulaması sunar ve bu uygulama üzerinden Conversions API entegrasyonunu kolayca yapabilirsiniz. 

Ayrıca gelişmiş senaryolar için Events Manager (Olay Yöneticisi) üzerinden manuel kurulum ya da Shopify Liquid ile özel çözümler de mümkündür. Bu bölümde, hem kolay entegrasyon yöntemlerini hem de teknik kullanıcılar için özelleştirilebilir yöntemleri ele alacağız.

Facebook Sales Channel Üzerinden Entegrasyon

Shopify mağazanızda Conversions API’yi etkinleştirmenin en pratik yolu, resmi Facebook satış kanalı uygulamasını kullanmaktır. Shopify yönetici panelinden Uygulamalar (Apps) bölümüne girip Facebook satış kanalını ekleyerek başlayabilirsiniz. Entegrasyonu şu adımlarla gerçekleştirebilirsiniz:

Facebook kanalını yükleyin: Shopify yönetim panelinde sol menüden +Satış Kanalı Ekle seçeneğiyle Facebook kanalını ekleyin. Uygulama yüklendikten sonra, yönlendirmeleri izleyerek Facebook hesabınızı bağlayın.

Hesapları bağlayın: Facebook kanalının kurulum sürecinde sizden Facebook Business Manager (İşletme Yöneticisi) hesabınızı, Facebook Pikselinizi ve katalog gibi varlıklarınızı Shopify’a bağlamanız istenir. Doğru işletme ve piksel seçtiğinizden emin olun. (Birden fazla piksel veya işletme yönettiğiniz durumlarda her açılır menüden ilgili doğru hesapları seçmek önemlidir.

Veri paylaşım ayarlarını yapılandırın: Facebook kanalında Settings (Ayarlar) sekmesine geçin ve Data Sharing Settings (Veri Paylaşım Ayarları) bölümünü bulun. Burada veri paylaşımı seviyesini seçmeniz gerekir. Shopify üç seviye sunar: Standard (Standart), Enhanced (Gelişmiş) ve Maximum (Maksimum). Enable Tracking (Takibi Etkinleştir) seçeneğini açın ve en yüksek seviye olan Maximum’u seçin.

Meta Conversions API

Meta Conversions API

Şekil 2: Shopify Facebook kanalında Maksimum veri paylaşımı ayarı. Bu ayar etkinleştirildiğinde Shopify, Facebook Pikseli ile birlikte Conversions API’yi de kullanır. “Maximum combines all data-tracking options… It uses Conversions API, which shares data directly from Shopify’s servers to Facebook. This means the data can’t be blocked by ad blockers.” uyarısı, bu modun tarayıcı engelleyicilerini aşan bir takip sağladığını ve müşteri kişisel verilerini (örn. e-posta, telefon) Facebook ile paylaştığını belirtmektedir. Bu nedenle gizlilik politikanızı güncel tutmanız önerilir.

Doğru piksel ve izinleri kontrol edin: Maksimum seviyeyi seçtikten sonra, alt kısımda Shopify’da bağlı olan Facebook Pikseli görüntülenecektir. Kullanmak istediğiniz pikselin seçili olduğundan emin olun. Yanlış piksel bağlıysa Disconnect (Bağlantıyı Kes) diyerek doğru pikseli bağlayın.

Ayrıca, entegrasyon sırasında sizden “Erişim token’ımı bu siteyle paylaşmayı kabul ediyorum” gibi bir izin onayı istenebilir – bu, Shopify’ın Conversions API için gerekli olan erişim belirtecini (access token) alabilmesi içindir. Bu onayı verin ki Shopify sunucunuz Facebook’a veri gönderebilsin.

Onayla ve piksel tekrarlarını önle: Veri paylaşım ayarlarında Maksimum’u seçip doğru pikseli bağladıktan sonra Confirm (Onayla) butonunu tıklayın. (Eğer buton gri kalıyorsa, Commerce settings (Ticaret ayarları) bölümünde Facebook’un ticaret şartlarını kabul etmeniz gerekiyor olabilir..)

Ayarları onayladıktan sonra Shopify artık Conversions API üzerinden veri göndermeye başlayacaktır. Bu noktada Shopify, sitenize otomatik olarak bir piksel kodu da yerleştirir; dolayısıyla daha önce tema dosyalarınıza manuel olarak eklediğiniz bir Facebook piksel kodu varsa onu kaldırmanız gerekir. Aksi takdirde aynı etkinlikler hem eski piksel kodunuz hem de yeni entegrasyon tarafından iki kez gönderilebilir ve sonuçta verilerinizde çift sayım olur. Shopify ayarlarından Preferences altında bulunan eski Facebook Pixel ID alanını boş bırakın veya temadan eklenmiş kodları silin.

Bu entegrasyon yöntemi, teknik beceri gerektirmeden Conversions API’yi devreye alır. Shopify, tarayıcı pikseli ve sunucu tarafı dönüşüm API’sini birlikte çalıştırarak otomatik eşleştirme ve çoğaltmayı engelleme (deduplication) işlemlerini kendi içinde yapar.

Örneğin bir satın alma olayı gerçekleştiğinde, hem tarayıcı pikseli hem de sunucu API aynı olayı gönderir, ancak her ikisine de Shopify otomatik olarak event_id atar ve Facebook bu ID sayesinde çift kaydı teke indirir. Bu sayede “Browser – Server” olarak görünen (çift kaynaklı) bir etkinlik, Facebook tarafında tek bir dönüşüm olarak sayılır.

Shopify’ın Conversions API desteği başlangıçta yalnızca Purchase (Satın Alma) ve AddToCart gibi kilit eylemleri sunucu tarafında gönderiyordu; zamanla Meta’nın sağladığı API özelliklerine paralel olarak kapsam genişlemiş olabilir. Maximum seviyesinde, müşteri e-posta, telefon, ad-soyad gibi bilgileri de Shopify sunucusu Facebook’a SHA-256 ile hashleyerek gönderecektir.

Bu bilgiler, Facebook’un Event Matching algoritması tarafından kullanılır ve reklam hedeflemelerinizi daha isabetli hale getirebilir (ör. dönüşüm yapan kullanıcıları Facebook hesabıyla eşleştirip lookalike kitleler oluşturma). Kısacası, Shopify’ın Facebook kanalını Maximum modda kullanmak, Conversions API entegrasyonunu zahmetsizce hayata geçirir ve veri kayıplarını asgari düzeye indirir.

Events Manager ile manuel API kurulumu (Access Token ve JSON örneği)

Shopify’ın yerleşik entegrasyonuna alternatif olarak veya daha fazla kontrol isteyen kullanıcılar için, Facebook Events Manager (Olay Yöneticisi) aracılığıyla Conversions API’yi manuel olarak kurmak mümkündür. Bu yöntemde, Facebook’taki pikselinize ait bir Erişim Belirteci (Access Token) oluşturur ve sunucunuzdan Facebook’un Graph API’sine doğrudan HTTP istekleri göndererek dönüşüm verilerini iletirsiniz. Aşağıda, manuel kurulumun temel adımları ve örnek bir JSON payload formatı anlatılmıştır:

Access Token oluşturma: Facebook Business Manager üzerinden Events Manager’a gidin. İlgili pikseli seçip Ayarlar (Settings) sekmesini açın. “Conversions API” bölümü altında Access Token Oluştur (Create Access Token) düğmesini bulun ve tıklayın. Facebook size uzun bir erişim belirteci verecektir. Bu token, API üzerinden gönderdiğiniz olayların sizin hesabınıza ait olduğunu onaylar.

Not: Bu tokeni gizli tutun, çünkü eline geçiren biri sizin adınıza Facebook’a veri gönderebilir. (Facebook Events Manager’den üretilen token’lar genellikle süresiz veya uzun ömürlüdür, ancak kendi uygulamanızı kullanırsanız kullanıcı erişim token’ları 60 günde bir yenilenebilir. Gerekirse Meta’nın Sistem Kullanıcısı ve Uygulama yoluyla kalıcı token üretme yöntemlerini kullanın.)

Sunucuda HTTP isteği hazırlama: Artık sunucu kodunuzdan, Facebook Conversions API endpoint’ine POST istekleri gönderebilirsiniz. Facebook Graph API’nin Conversions endpoint URL formatı şöyledir:
https://graph.facebook.com/<API-versiyon>/<PIXEL_ID>/events?access_token=<ACCESS_TOKEN>

Burada <PIXEL_ID> sizin piksel kimliğiniz, <ACCESS_TOKEN> ise az önce aldığınız token. HTTP isteğinin gövdesine ise gönderilecek olay verilerini JSON formatında koyacağız. Gönderilecek JSON yapısını “data”: [ {…} ] şeklinde tanımlamak gerekiyor. Aşağıda örnek bir JSON payload görülüyor:
{
"data": [{
"event_name": "Purchase",
"event_time": 1686751234,
"event_id": "order_12345",
"user_data": {
"em": "fc3ff98e8c6a0d3087d515c0473f8677",
"ph": "5ae8fa928a45cbea874e1d9f2f2aeb11",
"fn": "3fcca4...",
"ln": "12dce4...",
"client_ip_address": "192.0.2.45",
"client_user_agent": "Mozilla/5.0...(tarayıcı bilgisi)"
},
"custom_data": {
"currency": "TRY",
"value": 799.50,
"content_ids": ["SKU123", "SKU124"],
"content_type": "product"
},
"action_source": "website",
"event_source_url": "https://www.siteniz.com/checkout/thank-you"
}]
}

Yukarıdaki değerler örnek olarak hashlenmiş dizgiler şeklinde verilmiştir. Ayrıca fn (first name), ln (last name) gibi ad-soyad bilgilerini de gönderiyoruz (bunları da birleşik veya ayrı ayrı, Facebook’un istediği biçimde hashleyip gönderebilirsiniz).

client_ip_address ve client_user_agent alanları, sunucu isteğini tetikleyen kullanıcının IP ve tarayıcı bilgisini iletir – bunlar da eşleştirmede önemlidir. (Sunucu tarafında bu bilgilere sahip olmak için, örneğin sipariş oluşturma isteğinden IP’yi alabilir veya tarayıcıdan bir parametre olarak iletebilirsiniz.) custom_data kısmında, olaya özgü ek veriler vardır. Bir satın alma için value (toplam tutar) ve currency (para birimi) kritik alanlardır.

content_ids ve content_type ise, satın alınan ürünlerin kimlikleri ve türleri için kullanılır (Dynamic Ads – Dinamik Reklamlar yapmak istiyorsanız ürün kataloğunuzla eşleşecek şekilde ID’leri göndermek önemlidir). Örneğin content_type “product” ise content_ids listesinde ürün ID’leri veya SKU’lar yer alır.

Bu alanlar zorunlu değil ancak “Missing Product Metadata” uyarılarından kaçınmak ve Facebook’un makine öğrenimi modellerine daha zengin veri sağlamak için tavsiye edilir.

action_source değeri “website” olarak belirtilmiş – bu, etkinliğin web sitesi üzerinden geldiğini ifade eder (diğer seçenekler: “app”, “offline”, “phone_call” vs. olabilir, bizim senaryomuzda web uygun). event_source_url ise kullanıcının gördüğü sayfanın URL’si, özellikle Purchase gibi olaylar için teşekkür sayfası URL’si koymak yararlı olabilir.

İsteği gönderme: Artık hazırladığımız JSON gövdesini, yukarıdaki Graph API URL’sine POST ile gönderebiliriz. Bunu herhangi bir sunucu tarafı dilinde yapabilirsiniz (PHP, Python, Node.js, vs). Aşağıda PHP ile WordPress ortamında bir örnek vereceğiz ama konsept aynıdır. Curl kullanarak bir terminalden test etmek isterseniz de şöyle bir komut işe yarar:

curl -X POST \
-H "Content-Type: application/json" \
-d '<JSON_içeriği>' \
"https://graph.facebook.com/v16.0/PIXEL_ID/events?access_token=ACCESS_TOKEN"

NOT: Gerçek PIXEL_ID ve ACCESS_TOKEN değerlerinizi girmeyi unutmayın. cURL komutunda JSON içeriğini tek tırnak içinde verebilir veya -d @dosya.json şeklinde bir dosyadan çekebilirsiniz.

Shopify özelinde uygulama: Shopify gibi bir SaaS platformunda direkt sunucu kodu çalıştıramazsınız, bu yüzden manuel entegrasyon yapmak isterseniz araya bir webhook ve aracı sunucu koymanız gerekir. Örneğin, Shopify’ın Order Creation (Sipariş Oluşturma) webhooks özelliğini kullanarak her yeni siparişte kendi sunucunuza bir bildirim gönderebilirsiniz.

Shopify yönetim panelinde Ayarlar > Bildirimler (Notifications) bölümünden bir WebHook oluşturup, konu olarak “Order Creation” (veya satışla ilgili uygun bir tetikleyici) seçerek kendi sunucu URL’inizi girebilirsiniz. Sonrasında, kendi sunucunuz bu webhook ile gelen sipariş verilerini alıp yukarıdaki JSON formatına çevirerek Facebook’a iletebilir. Bu mimariyi kod yazmadan yapmak isterseniz, Zapier, Integromat (Make) gibi entegrasyon araçlarını da kullanabilirsiniz.

Örneğin: Lasse Ravn tarafından paylaşılan bir yöntemde, Shopify webhook > Integromat senaryosu > Facebook API şeklinde bir kurulum gösterilmiştir: Shopify sipariş webhook’u Integromat üzerindeki bir webhook modülüne gönderiliyor, orada JSON işlenip Facebook’a POST ediliyor. Teknik bilgisi olan ekipler bu yapıyı kendi sunucularında da kodlayabilir. Önemli olan nokta, doğru verileri, doğru formatta, güvenli bir şekilde Facebook’a iletmek ve mümkün olan en az gecikmeyle göndermektir (ör. sipariş gerçekleştiğinde beklemeden göndermek).

Yukarıdaki manuel kurulum, daha esnek veri göndermenize olanak sağlar (örneğin yalnızca Shopify’ın gönderdiği standart eventler değil, özel eventleri veya offline verileri de gönderebilirsiniz). Ancak dezavantajı, her şeyi sizin takip etmeniz gerekmesidir: API yanıtlarını kontrol etmek, hata durumlarında yeniden denemek, erişim token’ınızın geçerliliğini yönetmek vb. Eğer çok sayıda olayı yüksek hacimde gönderiyorsanız, Facebook API’sinin hız limitlerine (rate limits) takılmamaya özen gösterin ve gerektiğinde gönderimleri partileyin.

Facebook Conversions API için belirli saniyelik istek limitleri tanımlar; dönen header’larda kullanım oranınızı iletebilir. Örnek: Aşağıda, WordPress tabanlı bir PHP sunucusunda Shopify’dan gelen bir webhook’u işleyip Facebook’a ileten basit bir kod parçası gösterilmiştir:

conversion-api-kod-01

Yukarıdaki kod parçacığı, bir Shopify sipariş webhook’unu PHP ile işleyecek biçimde örneklenmiştir. Gerçek ortamda bu kodun güvenliğini ve performansını göz önüne almalısınız: Örneğin hata durumunda tekrar deneme (retry) mekanizması, erişim token’ının konfigürasyon dosyasından çekilmesi, gerekirse kuyruğa alıp arka planda gönderme gibi iyileştirmeler yapılabilir. Ayrıca, Shopify webhook çağrıları beklenenden uzun sürerse Shopify tarafında timeout olabilir; bu yüzden Facebook’a isteği mümkün olduğunca hızlı yapıp yanıt beklemeden işlemi sonlandırmak mantıklıdır (yukarıda timeout 1.5 saniye olarak verildi). Facebook, Conversions API isteğinize hemen bir 200 OK döner ve veriyi arka planda işler; dolayısıyla uygulamanızın Facebook’tan anlamlı bir cevap beklemesine gerek yoktur.

Shopify Liquid kullanarak özel kurulum senaryosu

Shopify mağazanızda özelleştirilmiş bir Conversions API entegrasyonu gerçekleştirmek için Liquid kullanabilirsiniz. Liquid, Shopify’ın tema şablon dilidir ve size sipariş tamamlanma sayfası gibi bölümlere özel kod enjekte etme imkânı verir. Bu senaryoda amaç, Shopify’ın yerleşik çözümünü kullanmak yerine, dönüşüm verilerini kendiniz toplamaktır. Örneğin, sipariş onay (teşekkür) sayfasında müşterinin sipariş bilgilerini alıp, bunları JavaScript aracılığıyla kendi sunucunuza veya doğrudan Facebook’a gönderebilirsiniz.

Teknik açıdan, güvenlik ve gizlilik için tercihen verileri önce kendi sunucunuza gönderip oradan Facebook Conversions API’ye iletmek en doğrusu olacaktır (erişim token’ınızı doğrudan front-end’de ifşa etmemek için). Ancak burada bir konsept kanıtı olarak Liquid içinde nasıl bir kod eklenebileceğini gösterelim.

Shopify, ödeme tamamlandıktan sonra gösterilen “Thank You Page” içinde ek HTML/Script eklemenize izin verir (Shopify yöneticide Ayarlar > Checkout > Ek Komut Dosyaları alanı). Bu alana Liquid etiketleri kullanarak müşteri ve sipariş bilgilerini içeren bir kod bloğu ekleyebilirsiniz. Örneğin:

conversion-api-code-02

Yukarıdaki Liquid-JS kombinasyonu, sipariş onay sayfasına bir <script> bloğu eklemektedir. İçinde Liquid değişkenleri ({{ }}) kullanarak Shopify’dan mevcut bilgileri çekiyoruz: order.id, order.total_price, order.currency, customer.email vb. Bu verileri JavaScript değişkenlerine atayıp gerekli alanları hash’liyoruz. Ardından fbEvent adlı bir nesne oluşturup, bu nesneyi fetch ile kendi sunucumuza POST ediyoruz. (Bu örnekte YOUR-SERVER.com/capi diye bir uç nokta hayal ettik; bu sizin kontrolünüzde olan ve aldığı veriyi Facebook’a ileten bir endpoint olmalı.)

Güvenlik uyarısı: Dilerseniz fetch çağrısını doğrudan Facebook Graph API’ye de yapabilirsiniz, ancak bunu yaparsanız erişim token’ınızı JavaScript içinde göstermeniz gerekir ki bu son derece güvensizdir. Örneğin, fetch("https://graph.facebook.com/.../events?access_token=TOKEN", {...}) şeklinde bir çağrı token’ı ifşa eder. Bu nedenle yukarıdaki gibi bir mimaride, token’ı sunucu tarafında tutup front-end’den gelen isteği sunucunuzun tamamlaması en güvenli yol olacaktır. Shopify’da App Proxy denilen bir mekanizma kullanarak, kendi uygulamanız içinden güvenli API çağrıları yapmayı da tercih edebilirsiniz. App Proxy, Shopify mağaza alan adınız üzerinden (/apps/ gibi bir path ile) istek alıp bunu arka plandaki uygulamanıza iletir ve yanıtı döndürür. Bu sayede müşteri tarafında token görünmez.

Hangi durumlarda Liquid ile özelleştirme gerekir?

Genelde Shopify’ın yerleşik entegrasyonu çoğu ihtiyacı karşılar. Ancak bazen özel dönüşüm tanımları yapmak isteyebilirsiniz. Örneğin, Lead adında özel bir etkinlik göndermek veya Shopify’daki belirli bir kullanıcı etkileşimini (üyelik oluşturma, ürün karşılaştırma vs.) Conversions API ile iletmek isterseniz, Liquid ile sayfalara özel JS ekleyip, sunucunuz üzerinden Facebook’a iletebilirsiniz. Bu, ileri düzey bir uygulamadır ve yazılım geliştirme bilgisi gerektirir. Liquid ile tetiklenen event’lerin doğru ve tutarlı şekilde Facebook’a ulaşması için her şeyi manuel kontrol edeceğinizden, testlere özellikle dikkat edin. Aşağıda, Liquid ile eklediğiniz bir kodun çalışıp çalışmadığını doğrulamak için neler yapabileceğinizi anlatacağız (Test Events aracı, vs).

Özetle, Shopify’da Liquid kullanarak Conversions API entegrasyonu yapmak mümkündür ancak genellikle dolaylı bir yolla (bir aracı sunucu veya üçüncü parti hizmet kullanarak) gerçekleştirilir. Bu yöntem esneklik sağlar ancak bakım sorumluluğunu size yükler. Kodlama deneyiminiz varsa ve özel gereksinimleriniz bulunuyorsa Liquid + Webhook + Sunucu kombinasyonuyla tamamen özelleştirilmiş bir çözüm yaratabilirsiniz.

WordPress için Conversions API kurulumu

WordPress sitenizde (özellikle WooCommerce ile e-ticaret yapıyorsanız) Facebook Conversions API’yi entegre etmek, piksel verilerinizin eksiksiz ve doğru olmasını sağlar. WordPress ekosisteminde bu entegrasyon için hazır eklentiler mevcuttur. Ayrıca kendi başınıza kod yazarak veya REST API’yı kullanarak manuel bir kurulum da yapabilirsiniz. Bu bölümde önce Meta Pixel resmi eklentisi ile kolay kurulum, sonra kod ile manuel entegrasyon ve en sonda WooCommerce özelindeki en iyi uygulamalara değineceğiz.

Meta pixel eklentisi kullanarak kolay kurulum

Meta (Facebook) ekibi, WordPress kullanıcıları için resmi bir Meta Pixel for WordPress eklentisi sunmaktadır. Bu eklenti, sitenize klasik Facebook Piksel kodunu eklemenin yanı sıra Conversions API desteği de içerir. Dolayısıyla teknik bilgiye ihtiyaç duymadan, birkaç tıklamayla Conversions API kurabilirsiniz. Kurulum adımları şöyledir:

  1. Eklentiyi yükleyin: WordPress yönetici panelinizde Eklentiler > Yeni Ekle diyerek eklenti deposunda arama yapın. “Facebook for WordPress” veya “Meta Pixel” diye arattığınızda, geliştiricisi “Facebook” olan resmi eklentiyi bulun. Şimdi Yükle ve Etkinleştir düğmelerine tıklayarak eklentiyi kurun.
  2. Başlangıç yapılandırması: Eklentiyi etkinleştirince sol menüde Meta Pixel veya Facebook ile ilgili bir ayar sayfası belirecektir (genelde Ayarlar > Meta Pixel altında). Bu sayfaya gidip Başlayın (Get Started) düğmesine basın. Ardından karşınıza Facebook ile bağlantı kurmanızı sağlayacak bir sihirbaz (Facebook Business Extension akışı) çıkacak.
  3. Facebook ile siteyi bağlayın: Sihirbaz sizden Facebook hesabınıza giriş yapmanızı, hangi Business Manager ve pikseli kullanacağınızı seçmenizi isteyecek. Adımları ilerleyin ve gerekli izinlere onay verin. Eklenti, bu süreçte WordPress sitenize özel bir erişim token’ı oluşturacak ve bunu sitenizin ayarlarına kaydedecek. (Kurulum sırasında “Access token’ınızı sitenizle paylaşmayı kabul ediyor musunuz?” gibi bir onay kutusu gelecektir, bunu işaretlemeniz gerekir.)
  4. Kurulumu tamamlayın: İşlem bittiğinde eklenti arka planda sizin için piksel kodunu eklemiş ve Conversions API bağlantısını kurmuş olacaktır. Facebook Events Manager’da pikselinizi kontrol ettiğinizde, artık verilerin “Browser” ve “Server” olarak gelmeye başladığını görebilirsiniz (buna birazdan test kısmında değineceğiz).

Resmi Meta Pixel eklentisi, WooCommerce siteleriyle de uyumludur. Eklenti, WooCommerce yüklü ise otomatik olarak ürün sayfası görüntüleme (ViewContent), sepete ekleme (AddToCart), ödeme başlatma (InitiateCheckout) ve satın alma (Purchase) gibi e-ticaret olaylarını da takip eder. Bu olayları hem piksel aracılığıyla tarayıcıdan hem de sunucu tarafında Conversions API ile göndererek kapsama alır. Facebook’un Business Help Center dokümanlarına göre, Facebook for WooCommerce eklentisi de Conversions API’yi kutudan çıktığı gibi desteklemektedir, ekstra bir ayar yapmanıza gerek kalmadan kurulumda etkinleşir.

Alternatif eklentiler: Resmi eklenti dışında popüler üçüncü taraf eklentiler de vardır. Örneğin PixelYourSite eklentisi, Meta Piksel ve Conversions API desteği sunan güçlü bir araçtır. PixelYourSite, WooCommerce ile tüm gerekli e-ticaret etkinliklerini (ürün görüntüleme, sepete ekleme, satın alma vs.) otomatik tetikler ve Conversions API için müşteri verilerini (e-posta, telefon gibi) toplayıp Facebook’a iletir. Eğer resmi eklentiyle ilgili sorun yaşarsanız veya daha fazla özelleştirme isterseniz PixelYourSite, WooCommerce Facebook Pixel, Conversion API by Infuse, gibi eklenti çözümlerine bakabilirsiniz. Ancak unutmayın, bir sitede aynı anda birden fazla piksel eklentisi etkinleştirmek çift kayıt sorunlarına yol açabilir. Bu yüzden tek bir çözüm kullanın veya birden fazla kullanacaksanız biri sadece piksel, diğeri sadece API gibi roller dağıtın ve event_id ile dedup mekanizmasının doğru çalışmasına dikkat edin.

Meta Pixel resmi eklentisini kullandığınızda, arka planda eklenti Advanced Matching adı verilen özelliği de devreye alır. Bu sayede WordPress sitenizdeki kayıtlı kullanıcıların e-posta adresleri, telefon numaraları vb. hashlenip tarayıcı pikseli ile de gönderilir. Yani hem tarayıcı hem sunucu tarafında olabilecek en zengin eşleştirme datası Meta’ya iletilir. Bu da Events Manager’da Event Match Quality (EMQ) skorunu olumlu etkiler (EMQ nedir, aşağıda detaylı anlatacağız). Eklenti ayrıca her gönderdiği sunucu olayı için piksel tarafıyla otomatik bir event_id mekanizması kurar, böylece deduplication otomatik gerçekleşir.

WP REST API kullanarak manuel entegrasyon (örnek kodlarla)

Eğer eklenti kullanmak istemiyor veya daha özel bir kurulum hedefliyorsanız, WordPress üzerinde kendi kodunuzu yazarak Conversions API’ye entegre olabilirsiniz. Bu kısımda, WordPress’te WP REST API ve PHP kullanarak nasıl manuel entegrasyon yapılabileceğine dair bir perspektif sunacağız.
Genel yaklaşım: Sunucuda bir kod parçası, tetikleyici bir olayı yakalayacak (örneğin bir form gönderimi, WooCommerce’de bir sipariş tamamlanması, vs.) ve az önce Shopify bölümünde bahsettiğimiz gibi Facebook’un API’ine POST isteği atacak. WordPress içinde bunu yapmanın çeşitli yolları var:

  • functions.php içinde kod yazarak: WordPress temanızın functions.php dosyasına veya yazacağınız küçük bir eklentiye PHP kodu ekleyebilirsiniz. Örneğin bir kullanıcı kayıt olduğunda ya da WooCommerce’de bir sipariş durumu değiştiğinde, ilgili aksiyon hook’una bağlanıp (add_action) Conversions API çağrısını yapabilirsiniz.
  • WP REST API kullanarak: Kendi sitenize bir REST endpoint ekleyip, JavaScript ile veya üçüncü sistemlerle entegre olarak bu endpoint üzerinden veri alıp Facebook’a iletebilirsiniz. Örneğin, bir JS kodu sitenizde bir olayı algılar ve sizin /wp-json/mysite/v1/fb-event gibi bir endpoint’inize POST eder. Bu endpoint’i kodlayarak, gelen veriyi alıp Facebook’a iletmek mümkün. Bu mimari, WordPress sitenizi küçük bir aracı sunucu gibi kullanmanızı sağlar.
  • Sunucu tarafı direkt çağrı: WordPress, PHP tabanlı olduğu için, PHP’nin klasik yöntemlerini de kullanabilirsiniz. Örneğin curl PHP eklentisi veya WordPress’in sağladığı wp_remote_post() fonksiyonu ile istek atabilirsiniz.

Aşağıda, WordPress içinde (örneğin bir eklenti dosyasında) kullanabileceğiniz basit bir örnek kod veriyoruz. Bu kod, bir WooCommerce satın alma olayını ele alır. WooCommerce, her sipariş tamamlandığında woocommerce_thankyou adında bir aksiyon çalıştırır ve sipariş ID’sini parametre olarak geçirir. Biz bu hook’a bağlanıp ilgili siparişi alacak ve Facebook’a göndereceğiz:

conversion-api-code-03

Bu kod çalıştığında, WooCommerce’de her başarılı satın alma sonrası Facebook’a bir Purchase olayı gönderilecektir. event_id olarak “orderID_purchase” formatını kullandık ki eğer piksel de aynı olayı gönderirse çift kayıt önlensin. Ayrıca e-posta, telefon gibi müşteri bilgilerini alıp hash’ledik (küçük harfe çevirip). WordPress’de $ _SERVER['REMOTE_ADDR'] ve $ _SERVER['HTTP_USER_AGENT'] ile IP ve user-agent’ı yakalayıp ekledik. Bu sayede Event Match Quality skorunu yükseltecek mümkün mertebe tüm parametreleri iletiyoruz. Örnekte timeout 1 saniye verdik, yani Facebook’tan yanıt beklemeden isteği yapıp devam ediyoruz (Sunucu yanıtını beklemeye gerek yok, hızlı olmasını isteriz).

Kullanılabilecek diğer hook’lar: Yukarıdaki örnek WooCommerce içindi. WordPress’te benzer şekilde form eklentileri (Contact Form 7, Gravity Forms vs.) submission hook’ları, ya da üye olma (user_register), yorum gönderme (comment_post) gibi olaylara da benzer kod entegre edilebilir. Burada önemli olan, olay gerçekleştiğinde veriyi alabilmek ve Facebook’a göndermektir.

Not: WordPress’de bu tür kodları eklerken cache eklentileri, güvenlik duvarları vs. gibi etkenlerin istekleri kesmediğinden emin olun. Özellikle kendi REST API’nizi kullanıyorsanız, REST endpoint’inizin authenticated veya unauthenticated erişimine izin vermek, nonce’ları doğru kullanmak gerekebilir.

WooCommerce senaryosu ve e-ticaret dönüşümleri için en iyi uygulamalar

WooCommerce siteleri, Facebook Conversions API’den en çok fayda sağlayabilecek platformlardan biridir. Çünkü e-ticaret verileri (ürün ID, kategori, tutar, adet vb.) reklam optimizasyonlarında kritik rol oynar. WooCommerce için Conversions API entegrasyonunda şu en iyi uygulamaları göz önünde bulundurun:

  • Facebook for WooCommerce eklentisi kullanın: WooCommerce’in resmi Facebook eklentisi, ürün kataloğu senkronizasyonu, piksel ve Conversions API dahil pek çok özelliği sağlar. Bu eklentiyi kurup işletme hesabınızla bağladığınızda, Conversions API genellikle arka planda etkinleşir. Yine de Facebook Events Manager üzerindeki Olay Kaynağı kısmından teyit edebilirsiniz (tarayıcı+sunucu şeklinde gelmeli). Resmi eklenti bazen ağır olabiliyor veya hatalar çıkabiliyor, bu durumda PixelYourSite gibi alternatifleri değerlendirebilirsiniz.
  • Tüm dönüşüm hunisini takip edin: Sadece satın alma (Purchase) değil, huninin üst aşamalarını da iletin. Sayfa Görüntüleme (PageView), Ürün İncelemesi (ViewContent), Sepete Ekleme (AddToCart), Ödeme Başlatma (InitiateCheckout) gibi olaylar da Conversions API ile gönderilebilir. Piksel zaten bunların bir kısmını tarayıcıda yakalar; fakat tarayıcı engelleri nedeniyle eksik kalabilir. Örneğin Safari tarayıcı kullanan birçok müşteri PageView pikselini bile Facebook’a göndermeyebilir (ITP yüzünden). Conversions API ile en azından kritik olanları sunucu tarafından da göndermeyi düşünebilirsiniz. Ancak her event’i iki kez gönderirken event_id ile düzgün eşleştirme yapmaya dikkat edin. Facebook, sunucuya özgü bazı olayları (ör. offline events) tarayıcıda olmayan versiyonlarıyla alabilir, bunlar için de raporlamadaserver ibaresi görebilirsiniz. Önemli olan, reklam optimizasyonu için her aşamayı eksiksiz iletmektir – böylece Facebook’un makine öğrenmesi huninin neresinde kayıp yaşadığınızı daha iyi anlar.
  • Ürün verilerini eksiksiz gönderin: Dönüşüm olaylarına, özellikle ViewContent, AddToCart, Purchase gibi eylemlere ürün bilgilerini eklemek, Dinamik Reklamlar (Dynamic Ads) ve dönüşüm hedefleme için çok önemlidir. İçerik kimlikleri (content_ids), ürün adı, kategori, marka gibi meta veriler Facebook’a iletilebilir. content_ids olarak genelde ürünün katalogdaki ID’sini veya SKU’sunu kullanmak gerekiyor. WooCommerce’de ürün SKU’larını Facebook katalogla eşleştirecek şekilde ayarlayabilirsiniz (Facebook for WooCommerce eklentisi bunu yapıyor). Eğer content_ids göndermezseniz veya yanlış gönderirseniz, Dynamic Ads kurgularınız çalışmaz. Bu nedenle eklenti ayarlarında veya kendi entegrasyonunuzda bu alanları atlamayın.
  • Müşteri bilgilerini toplayın ve hash’leyin: Dönüşüm API’nin en büyük avantajı, müşteri ile eşleştirme yapabilmesidir. Tarayıcı pikseli çerez ve tarayıcı bilgilerinden (özellikle Facebook Login yoksa) sınırlı veri çıkarır. Oysa sunucu tarafında, eğer kullanıcının e-posta adresi, telefon numarası gibi verileri satış veya form sırasında alındıysa, bunları hash’leyip iletebilirsiniz. Event Matching Parametreleri olarak bilinen em, ph, fn, ln, ge, ct, st, zp, country, extid (external_id) gibi alanların olabildiğince fazlasını sağlayın. Özellikle e-posta ve telefon, eşleştirme oranını ciddi artırır. Ad ve soyad, şehir, posta kodu gibi alanlar ikinci planda da olsa yararlıdır. Facebook bu bilgileri alıp kendi kullanıcı veritabanıyla eşleştirir ve her event için bir Event Match Quality (Eşleşme Kalitesi) skoru verir. Bu skor 1-10 arası bir değerdir ve gönderdiğiniz verilerin ne kadarını eşleştirebildiğini gösterir. Örneğin Purchase event’lerinde 7-8/10 gibi skorlar “İyi” kabul edilir; ancak PageView gibi anonim olaylarda skor düşük olabilir, bu normaldir. Amacınız, özellikle Purchase, Lead gibi hedef olaylarda skoru 6 üzeri, ideal olarak 8-9 düzeyine çıkarmak olmalıdır. Bunun için de mümkün olan tüm parametreleri sağlamalısınız. Unutmayın, Facebook’a gönderdiğiniz tüm kişisel veriler SHA-256 ile hash’lenmiş olmalıdır. WooCommerce kullanıyorsanız, müşteriler genelde e-posta ve telefon verir; adres bileşenlerinden şehir (ct), eyalet (st), posta kodu (zp) ve ülke (country) de siparişten alınabilir. Teknik olarak bunların hepsini alıp hashleyip user_data içine koyabilirsiniz. Resmi eklenti bu alanların bir kısmını otomatik yapar ama kontrol edin, belki external_id (harici ID) gibi alan eklemek istersiniz (external_id’yi genelde kullanıcı ID’niz veya CRM ID’niz olarak gönderip daha derin eşleştirme yapabilirsiniz).
  • Deduplication (Çift kayıt engelleme) uygulayın: Piksel ve Conversions API’yi birlikte kullanırken aynı olayı iki kez saydırmamak için event_id kullanımı şarttır. WooCommerce senaryosunda, örneğin her Purchase için sipariş numarasını event_id yapabilirsiniz (yukarıdaki kod örneklerinde bunu yaptık). Tarayıcı pikseline de bu event_id’yi vermeniz gerekir. Nasıl vereceğiz? Facebook’un JavaScript piksel fonksiyonu fbq('track', 'Purchase', {...}, {eventID: '12345'}) şeklinde dördüncü parametrede eventID alır. Eğer PixelYourSite gibi bir eklenti kullanıyorsanız, onun arayüzünde “Deduplication” veya “Use Order ID for event ID” gibi seçenekler olabilir – bunları aktif edin. Eğer kendiniz temaya piksel kodu eklediyseniz, yine WooCommerce’in thankyou sayfasında fbq çağrısına sipariş ID’sini eventID olarak ekleyebilirsiniz. Facebook Events Manager üzerinde, Events bölümünde olayların yanına tıklayarak “Browser – Server” şeklinde geldiğini ve deduped edildiğini doğrulayabilirsiniz. Event ID’ler uyuşmazsa, Facebook aynı olayı iki ayrı dönüşüm zannedip iki kez raporlar ki bu istenmeyen bir durumdur.
  • Gerçek zamanlı veya yakın gerçek zamanlı gönderim yapın: Conversions API olaylarını mümkün olduğunca olay gerçekleştiği an veya dakikalar içinde gönderin. Bazı entegrasyonlar (örneğin Shopify’ın eski entegrasyonu) verileri 1-3 saatlik partilerle gönderiyordu, bu da attribution window içinde Facebook’un zorlanmasına yol açabilir. Müşteri bir reklam tıklayıp 30 dakika içinde satın alma yaptıysa, veriyi anında gönderirseniz Facebook bunu modeline katabilir. Ama saatler sonra gönderirseniz, özellikle kampanya optimizasyonu anlık tepkiler veremeyebilir. Bu nedenle WooCommerce’de de webhook/real-time yaklaşımı en iyisidir. Zaten PHP kodu örneklerimiz hep anında gönderim üzerineydi. Eğer bir sebeple toplu gönderim yapmanız gerekiyorsa (ör. gün sonunda offline işlemleri gönderme gibi), yine de olabildiğince kısa periyotlar tercih edin.
  • Test ve izleme yapın: WooCommerce sitenizde Conversions API’nin düzgün çalıştığından emin olmak için Facebook’un Test Events (Test Etkinlikler) aracını kullanın. Facebook Events Manager’da pikselinizi seçtiğinizde “Test Etkinlikleri” sekmesinde size bir Test Event Code verir. Bu kodu, sunucudan gönderdiğiniz isteklere test_event_code parametresi olarak ekleyebilirsiniz. Örneğin, yukarıdaki payload içerisine "test_event_code":"TEST123" ekleyip gönderdiğinizde, Events Manager’daki Test sekmesinde anında belirir. Bu yöntemle, üretim ortamına almadan önce olaylarınızın Facebook’a ulaşıp ulaşmadığını, doğru görünüp görünmediğini kontrol edin. WooCommerce’de PixelYourSite eklentisi kullanıyorsanız, onun arayüzünde test kodu alanı olabilir veya plugin’i devre dışı bırakmadan kendi testlerinizi yapmanın yolunu dokümantasyonlarından öğrenebilirsiniz. Ayrıca tarayıcıda Meta Pixel Helper (Chrome eklentisi) de size her sayfa yüklenirken piksel ve CAPI olaylarını gösterir. Genelde Pixel Helper, sunucu tarafı eventleri de listeler ama “server” olarak işaretler. Bu şekilde sitenizi gezinirken hem piksel hem API eventlerinin tetiklenip tetiklenmediğini gözlemleyebilirsiniz.
  • Veri tutarlılığına dikkat edin: “Tarayıcılar arası tutarsızlıklar” ifadesi genelde Safari vs Chrome gibi tarayıcıların piksel davranış farklarına işaret eder. Örneğin Safari’de üçüncü taraf çerezler engelli olduğu için piksel dönüşümleri eksik kalabilir, bu da tarayıcı bazında reklam raporlarında tutarsızlığa yol açar. Conversions API bu boşluğu doldurur; ancak kendi başınıza entegre ettiyseniz, her tarayıcıdaki kullanıcı etkileşimini sunucuya aktarma konusunda emin olmalısınız. Özellikle JavaScript tetikleyicileri kullanıyorsanız (ör. Liquid örneğinde fetch), bazı tarayıcı kısıtlamaları (ITP gibi) bu çağrıları da etkileyebilir. Bu yüzden sunucuya veri aktarımının tarayıcıdan bağımsız olmasına gayret edin. En iyisi sunucu tarafında tetiklemektir (ör. WooCommerce hook, Shopify webhook gibi). Böylece kullanıcı ister IE, ister Chrome, ister Safari kullansın, sipariş verisi sunucudan iletilir ve tutarsızlık minimuma iner.
  • Erişim token süresi ve izinler: Son olarak, kullandığınız access token’ın geçerliliğini periyodik kontrol edin. Events Manager’den alınan token’lar genelde uzun ömürlüdür, fakat Facebook bazen güvenlik amaçlı onları iptal edebilir (veya siz yanlışlıkla silinebilir). Token geçersizse, API istekleriniz HTTP 400 hatasıyla döner. Bu durumda Events Manager’da yeni bir token yaratıp güncellemeniz gerekebilir. Kendi Facebook Uygulamanız üzerinden API kullanıyorsanız, kullanıcı token’larının 60 günde bir yenilenmesi gerekir – bunu arka planda otomatik halledecek bir kod yazmalısınız veya Refresh Token mekanizmasını uygulamalısınız. Sistem Kullanıcı (System User) token’ları, Business Manager’da oluşturularak, sayfa veya piksel bazında sürekli yetki vermenizi sağlar; bu da bir seçenektir. Hangi yöntemi kullanırsanız kullanın, token’ın gizliliğini koruyun ve gerektiğinde yenilemeyi unutmayın.

Sunucu Tarafı Dönüşüm İzleme Stratejileri

Sunucu tarafı dönüşüm izleme (server-side tracking), günümüz dijital pazarlama dünyasında giderek önem kazanan bir stratejidir. Bu yaklaşım, tarayıcı kaynaklı eksilmelerin (cookie engelleri, bağlantı sorunları, adblock, vs.) üstesinden gelmeyi ve daha doğru verilerle reklam kampanyalarını optimize etmeyi hedefler. Bu bölümde sunucu tarafı izleme için dikkat edilmesi gereken stratejik unsurları ele alıyoruz: Event Matching parametreleri ve yapılandırma önerileri, veri eşleşme kalitesini artırma yöntemleri ve uygulama & test senaryoları. Özellikle Conversions API kullananlar için bu konular başarıyla uygulamanın anahtarıdır.

Event Matching parametreleri ve yapılandırma önerileri (em, ph, fn vs.)

Event Matching (Olay Eşleştirme) parametreleri, Facebook’un sunucu tarafından gelen bir olayı kendi kullanıcılarıyla eşleştirmesine yardımcı olan veri noktalarıdır. Bunlar Conversions API isteğinde user_data yapısı içinde gönderilir ve tipik olarak şu kısaltmaları içerir:

  • em: Email (müşterinin e-posta adresi, SHA-256 ile hash’lenmiş)
  • ph: Phone (müşterinin telefon numarası, mümkünse ülke kodu dahil, metindeki tüm rakamlar dışında karakterler temizlenip hash’lenmiş)
  • fn: First Name (müşterinin adı, küçük harfe çevrilip hash’lenmiş)
  • ln: Last Name (soyadı, küçük harfe çevrilip hash’lenmiş)
  • ge: Gender (cinsiyet, “m” veya “f” gibi bir harfle temsil edilebilir, hash gerekmez ancak “male”/”female” yerine kısaltma kullanılır)
  • ct: City (şehir, string olarak; tercihen küçük harf, noktalama olmadan)
  • st: State (bölge/eyalet, ülkeye göre format)
  • zp: Zip (posta kodu)
  • country: Country (ülke, ISO 2 harf kodu, ör: TR)
  • external_id: External ID (harici ID; bu genellikle reklamverenin kendi kullanıcı ID’si veya CRM ID’si olabilir, hash’siz gönderilebilir)
  • client_ip_address: IP adresi (sunucu isteğini tetikleyen kullanıcının IP’si, hash gerekmez)
  • client_user_agent: Kullanıcı ajanı (tarayıcı user-agent stringi, hash gerekmez)
  • fbp: Facebook Pixel ID cookie değeri (tarayıcıdaki _fbp çerezi değeri, varsa gönderilir)
  • fbc: Facebook Click ID (tarayıcıda fbclid parametresinden türeyen değer, kullanıcı reklamdan geldiyse)

Bu parametrelerden e-posta, telefon, isim gibi kişisel veriler mutlaka SHA-256 ile hash’lenmelidir. Hash’leme öncesi veriyi temizlemek önemlidir: Örneğin e-postada büyük harf varsa küçült, telefon numarasında +, boşluk, parantez gibi karakterleri çıkar ki hash standardize olsun. Facebook, hash’lenmemiş kişisel veriyi reddeder veya siler, bu yüzden buna özen gösterilmeli.

Yapılandırma önerileri:

  • Elinizde hangi veri varsa hepsini kullanın. Müşteri sadece e-posta verdiyse em gönderin, telefon verdiyse ph gönderin, her ikisi varsa ikisini de gönderin. İsim alındıysa fn ve ln de iletebilirsiniz. Adres bilgisi varsa ct, st, zp, country göndermek eşleşmeyi daha da iyileştirebilir (özellikle isim soyisim yaygınsa şehir-ülke ile eşleştirme daha doğru olur).
  • Normalizasyon yapın: E-postayı küçük harfe çevirin, telefon numarasını sadece rakam haline getirin (ülke kodu ekleyin). İsim, şehir gibi verileri dil bilgisine göre sadeleştirin (turkçe i harfi, ı harfi gibi karakterlerin Unicode normalizasyonunu düşünebilirsiniz; Facebook bunları kendi de yapabilir ama emin olmak için siz hazırlayın).
  • Hashleme: PHP’de hash('sha256', $veri) kullanabilir, Python’da hashlib.sha256(veri.encode()).hexdigest() ile elde edebilirsiniz. JavaScript’te doğrudan hash modülü yok, belki bir library kullanmanız gerekir; ancak genelde sunucu tarafında yapmak daha kolay. WordPress veya Shopify örneklerimizde bu gösterildi.
  • external_id kullanımı: Eğer sitenizde kullanıcı login ise ya da bir müşteri ID’si söz konusuysa (ör. WordPress user_id, veya CRM’deki lead ID), bunu external_id olarak gönderebilirsiniz. Bu, Facebook tarafında aynı kişiyi tanımaya ek bir anahtar olur. external_id ham olarak (düz metin) gönderilebilir, hash tavsiye edilmez çünkü zaten bir ID’dir, ama isterseniz hashleyebilirsiniz de. Sadece, bu ID’yi Facebook’ta bir Custom Audience eşleştirmesi için de kullanıyorsanız tutarlı olması iyi olur.
  • fbp ve fbc gönderimi: Tarayıcı piksel çalıştıysa, kullanıcının tarayıcısında _fbp adında bir cookie ve tıklama ile geldiyse URL’de fbclid parametresi bulunur. Sunucu tarafında bu değerleri elde etmek zor olabiliyor (çünkü bunlar tarayıcıda). Eğer imkan varsa (ör. sipariş formunda bu değerleri hidden field ile taşıyıp sunucuya kaydetmek gibi bir yol), Conversions API isteğinize fbp ve fbc parametrelerini ekleyin. Bu iki değer, Facebook’un kimlik eşleştirmede doğrudan kendi ekosistem verilerini kullanmasına yarar. Örneğin fbc Facebook’un tıklama ID’sidir ve ilgili kullanıcıyı/kampanyayı eşleştirir. fbp ise tarayıcıdaki unique Facebook Pixel kimliğidir. Bu ikisi opsiyoneldir ama varsa kesinlikle gönderin.
  • Kayıtlı kullanıcılar ve Facebook Login: Eğer sitenizde Facebook ile Giriş özelliği varsa, Facebook’un external_id veya fb_login_id parametresi ile o kullanıcının Facebook kimliğini dahi gönderebilirsiniz (Facebook Login kullandıysa zaten Facebook ID’si sizde olur, bunu fb_login_id parametresine ham olarak verebilirsiniz – bu hash’lenmez diyor Facebook dokümanı). Bu çok güçlü bir eşleştirme sağlar, ancak çoğu site için genel bir durum değil.
  • Test ederek doğrulayın: Parametreleri gönderdiğinizde Facebook Events Manager’daki ilgili olaya tıklayarak Event Match Quality detaylarına bakın. Orada “Received Parameters” diye bir bölüm olur, hangi parametreleri almış listeler. Örneğin “Email (em) – Matched (Excellent)” gibi ibareler görürsünüz. Eksik gördükleriniz varsa, kodunuzu kontrol edin. Özellikle locale (ülke içi harfler) nedeniyle hash yanlış olabilir. (Örneğin “İ” harfi büyük-i, küçük yapınca “i” değil noktasız “ı” olması gerekir gibi Türkçe karakter meselesi – bunlara dikkat edin çünkü hash farklı çıkar.) Ayrıca test modunda bakarken, düşük bir EMQ skoru alıyorsanız Facebook’un orada önerilerine kulak verin; bazen “phone number formatting might be wrong” gibi uyarılar verebiliyor.

Veri Eşleşme Kalitesi Nasıl Artırılır?

Veri Eşleşme Kalitesi (Event Match Quality, EMQ), Facebook Events Manager’da sunucu tarafı gönderilen her olay için hesaplanan bir metriktir. 0 ile 10 arasında bir puan olarak gösterilir (genelde “Poor”, “Fair”, “Good”, “Great” gibi sözlü karşılıkları da vardır). Bu skor, yukarıda bahsettiğimiz eşleştirme parametrelerinin ne ölçüde Facebook’taki bir kullanıcı hesabıyla eşleştiğini gösterir. Skor hesaplanırken gönderdiğiniz her bir parametrenin eşleşmeye katkısı, Facebook’un o event için bulabildiği eşleşme sayısı vs. dikkate alınır.

EMQ’yu artırma yöntemleri:

  • Daha fazla user_data parametresi gönderin. Ne kadar çok eşleştirme parametresi verirseniz, Facebook o kadar çok çapraz kontrol yapabilir. Sadece email ile belki kullanıcıyı bulur, ama email + telefon + isim + şehir verirseniz eşleşme olasılığı ve doğruluğu artar.
  • Verileri doğru formatlayın. Yanlış formatlı bir telefon numarası örneğin ABD numarası sanılıp eşleşmez. Türkiye telefonları için “90” ile başlatıp toplam 11 haneli rakam dizesi göndermek uygun olabilir. (Ör: 0555 123 45 67 -> “905551234567” şeklinde ph). E-posta için ekstra noktalama veya büyük harf kalmadığına emin olun.
  • Login durumunu kullanın. Kullanıcı sitenizde login ise ve e-posta doğruluğu yüksekse bu zaten iyi. Ama login olmayan ziyaretçilerde parametreleriniz olmayabilir, bu durumda EMQ düşük çıkabilir – bu normal. EMQ’yu PageView gibi herkese açık eventlerde 2-3 görmek sorun değil, ama Purchase eventiniz 2/10 ise orada bir problem var demektir (muhtemelen hiç email/phone gönderememişsiniz anlamına gelir). Bu yüzden kritik eventlerde veri toplamaya özen gösterin. Örneğin WooCommerce’de misafir checkout’larda da e-posta zorunlu olduğundan, en azından email her zaman var, bu sizi kurtarır.
  • Facebook’un önerilerine bakın: Events Manager içinde EMQ için “Include more parameters to improve match quality” gibi notlar olabilir. Örneğin “FirstName and LastName missing” diyebilir. Sitenizde bu veriler varsa ekleyin.
  • Gizlilik ve izinler: Her ne kadar teknik olmasa da, bazı kullanıcılar GDPR kapsamındaki sitelerde takip izinlerini reddeder. İzin yönetimi yapıyorsanız (örn. bir Cookie Consent aracı ile) ve kullanıcı reddettiyse, Conversions API bile olsa veri göndermemeniz gerekir. Bu durumda eksik veri kaçınılmaz, EMQ düşüklüğü de anlaşılabilir olacaktır. Yani “veri eşleşme kalitesi” derken, bir yandan da yasal sınırları unutmayın. İzin varsa maksimum veriyi paylaşın, izin yoksa hiç göndermeyin.

EMQ artırmanın faydası, Facebook’un reklam hedefleme algoritmalarının daha doğru çalışmasıdır. Örneğin, yüksek eşleşme sayesinde Facebook, satın alma yapan kişinin hangi reklamdan geldiğini daha güvenilir biçimde anlayabilir ve raporlar. Ayrıca benzer kitle (Lookalike Audience) çıkarırken de, eşleşen kullanıcılar üzerinden daha iyi kitleler oluşturulabilir.

Uygulama ve test senaryoları (Test Events Tool kullanımı)

Sunucu tarafı izleme uygulamasını başarıyla tamamlamak kadar, test etmek ve doğrulamak da önemlidir. İşlerin beklendiği gibi çalıştığından emin olmak için aşağıdaki yöntemleri kullanabilirsiniz:

Meta Test Etkinlikleri Aracı:

    • Facebook Events Manager’daki

Test Events

    • sekmesi, Conversions API entegrasyonları için özel bir test ID sunar. Bu ID’yi API çağrılarınıza

test_event_code

    • parametresi ile ekleyerek, gönderdiğiniz olayların gerçek zamanlı olarak bu test konsolunda görülmesini sağlayabilirsiniz. Örneğin test kodunuz

TEST123

    • ise, yukarıdaki örnek JSON’da

"test_event_code": "TEST123"

    ekleyip isteği atarsınız. Events Manager > Test Etkinlikleri ekranında ilgili piksel altında “Sunucu” kategorisinde olaylar belirmeye başlar (Browser vs Server olarak seçim yapabilirsiniz). Aşağıdaki ekran görüntüsü, test modunda bir satın alma olayı göndermenin sonucunu gösterir:

Şekil 3: Facebook Events Manager Test Your Events ekranı. Server sekmesi seçili ve bir sunucu tarafı Purchase olayı (yeşil nokta ile) başarılı şekilde alındı. Bu araç sayesinde Conversions API isteklerinizin Facebook’a ulaşıp ulaşmadığını anında doğrulayabilirsiniz. “Receiving activity” mesajı, test koduyla ilişkili verilerin gelmeye başladığına işaret eder. Bu örnekte Purchase olayı sunucu tarafından iletilmiş ve listelenmiştir.

Meta Conversions API

  • Test Events aracı, sadece test kodu içeren istekleri gösterir, bunu unutmayın. Yani canlı ortamdaki gerçek token ile (test kodu olmadan) gönderilen eventler burada görünmez. Onlar için Tanılamalar (Diagnostics) sekmesindeki raporları takip etmelisiniz.
  • Diagnostics ve Uyarılar: Facebook Business (Events Manager) arayüzünde piksel kaynağı seçtiğinizde “Tanılama” sekmesinde olası sorunlar listelenir. Örneğin “Same event_id received for many event instances” (birçok event instance’ı için aynı event_id alındı) şeklinde bir uyarı çıkabilir. Bu, deduplication için event_id üretirken bir hata yaptığınızı gösterebilir (farklı olaylara aynı ID’yi vermiş olabilirsiniz). Ya da “Missing deduplication parameters” uyarısı alırsanız, tarayıcı-sunucu ikilisinde event_id’nin birinde eksik olduğunu düşünebilirsiniz. Bu tür uyarıları ciddiye alıp gerekli düzeltmeleri yapın.Bir başka uyarı türü de “Low event match quality for Purchase” gibisinden olabilir. Purchase gibi olaylarda EMQ düşükse (ör. 2/10), Facebook bunu bildirir ve “müşteri bilgilerini gönderin” diye tavsiye verir. Yukarıdaki bölümlerde anlattığımız gibi, bu sorunu çözmek için parametre eklemelisiniz.
  • Meta Pixel Helper: Facebook’un tarayıcı eklentisi olan Pixel Helper (Chrome için mevcut), sitenizi ziyaret ederken tespit ettiği Pixel isteklerini listeler. Conversions API istekleri doğrudan tarayıcıdan gitmediği için normalde Pixel Helper bunları göremez. Ancak eğer sunucu olaylarınız tarayıcıdaki piksel ile entegre (yani hem browser hem server birlikte çalışıyor) ise Pixel Helper, bazı durumlarda “Sunucu Olayı” tespit ettim diye bilgi verebiliyor. Örneğin Pixel Helper’da bir Purchase eventinin detayına baktığınızda “Server” ibaresi görünebilir (Shopify vs. entegre sitelerde bu gözlenebilir). Bu da entegrasyonun çalıştığını teyit etmenin bir yolu. Fakat en garantisi, Events Manager üzerinden verileri kontrol etmektir.
  • Gerçek zamanlı test siparişleri/formlar: Uygulamanızı canlıya almadan önce, sitenizde bir deneme işlemi gerçekleştirin. Örneğin WooCommerce sitenizde test modunda küçük bir fiyatlı test ürünü satın alın (gerekirse ödeme sayfasında kapıda ödeme gibi bir yöntemle tamamlayın). Ardından Events Manager > Olaylar kısmından ilgili Purchase eventinin geldiğini ve Browser – Server olarak işaretlenip işaretlenmediğini kontrol edin. Eğer sadece tarayıcı olarak görünüyorsa sunucu olayı ulaşmamış demektir. “Server processing time” gibi bir kolon da olabilir, onun dolu olması sunucu eventinin geçtiğini gösterir.
  • Sunucu loglarını izleme: Kendi sunucu entegrasyonunuzu yaptıysanız (örneğin WordPress’te error_log kullandık yukarıda), log dosyalarınızı takip edin. Hata olursa yakalayın ve çözün. Facebook API’si genelde JSON cevap döndürmez, sadece { "events_received": 1, "fbtrace_id": "...", "messages": [] } gibi bir yanıt döndürebilir. Eğer events_received 0 ise veya bir error alanı varsa, bu cevapta olur. Bunları yakalayıp maille kendinize atmak da bir yöntem (özellikle ilk kurulumda).
  • Yük testleri ve hız: Conversions API istekleri, özellikle gerçek zamanlı modda, her kullanıcı etkileşiminde sunucunuzdan harici bir isteği tetikler. Bu da ufak da olsa bir gecikme demek. Yük altında sunucunuzun bu istekleri kaldırabildiğinden emin olun. Eğer performans sorunu olursa, bir aracı kuyruk sistemi veya toplu işleme geçmeniz gerekebilir. Örneğin yüzlerce sipariş aynı anda geliyorsa, her biri ayrı API çağrısı yaparken limitlere takılabilir. Facebook şu an için Conversions API’de çok katı limitler uygulamasa da aşırı istek durumlarında API cevap vermemeye başlayabilir. Bu sınırları Facebook dokümanlarından kontrol edebilir, gerekiyorsa saniyede gönderdiğiniz event sayısını azaltmak için ufak gecikmeler ekleyebilirsiniz.
  • Güncelleme ve bakım: Strateji olarak, Conversions API entegrasyonunuzu bir kere kurup unutmamalısınız. Facebook zaman içinde API sürümlerini yeniler, alan isimlerini güncelleyebilir. Örneğin ileride fbp yerine başka bir şey, veya ek parametreler çıkabilir. Bu yüzden ilgili geliştirici dokümanlarını takip etmekte fayda var. Ayrıca Facebook Business Manager’daki “Integration Status” bölümü (varsa) başarılı görünüyor mu kontrol edin. Bazı durumlarda Facebook, entegrasyonunuzu otomatik kontrol edip bir skor/ durum gösterir.

Uygulama senaryosu örneği: Diyelim ki bir SaaS web siteniz var, form dolduran lead’leri Conversions API ile iletiyorsunuz. Form gönderildiğinde arka tarafta bir Conversions API çağrısı yaptınız ve testlerde çalıştı. Uygulamada, her lead için bir event_id oluşturup gönderdiniz. Sonra aynı kullanıcı sitenizde bir ikinci formu doldurduğunda (farklı amaçlı), onu da başka bir event olarak gönderdiniz. Facebook tarafında Events Manager’da bakarken fark ettiniz ki ikinci event pek görünmüyor. Bunun sebebi, belki de aynı user_data ile çok kısa sürede birden fazla benzer event gelirse Facebook bunları birleştirmeye çalışabilir. Bazı durumlarda Facebook spam veya tekrar filtreleri uygulayabilir. Bu gibi karmaşık senaryoları test etmek için, zaman aralıklarını değiştirerek testler yapın. Örneğin 10 saniye arayla iki event gönderin, sonra 1 dakika ara ile gönderin, fark var mı bakın.

Sonuç olarak, sunucu tarafı dönüşüm izleme stratejilerini uygularken test araçlarını ve Facebook’un sağladığı geri bildirim mekanizmalarını etkin kullanmak başarınızı garantiler. Conversions API, doğru yapılandırıldığında reklam performansınızı artırabilir; ancak yanlış veya eksik kurulum, veri tutarsızlıklarına yol açabilir. Bu rehberde bahsedilen tüm noktaları göz önünde bulundurarak hareket ettiğinizde, teknik açıdan sağlam bir entegrasyon kurmuş olacaksınız.

SSS ve Sık Yapılan Hatalar

Son bölümümüzde, Conversions API kurulumu sırasında sık karşılaşılan sorunları ve bunların çözümlerini ele alıyoruz. Bu Sık Sorulan Sorular (SSS) formatındaki kısım, özellikle entegrasyonu tamamladıktan sonra akla gelebilecek veya Facebook Events Manager’da beliren hatalara odaklanacak.

Soru 1: Access Token’ımın süresi doluyor mu? Token yenileme gerekir mi?
Cevap: Facebook Events Manager üzerinden oluşturulan Conversions API Access Token’ları genellikle süresiz (never-expiring) olarak kabul edilir. Yani bir kez alıp kullandığınız token, manuel olarak iptal etmediğiniz sürece çalışmalıdır. Ancak kendi Facebook uygulamanız üzerinden kısa ömürlü user token’ları kullanıyorsanız, bunlar ~60 gün içinde geçersiz hale gelir. Bu durumda yenilemek için Facebook OAuth mekanizmasını uygulamak gerekir. Güvenliğiniz için token’ı kod içinde sabit olarak koymak yerine, tercihen çevre değişkeni (environment variable) veya veritabanında şifreli tutun. Token’ınızın yetkileri de önemlidir: Events Manager token’ı yalnızca ilgili Piksel’e veri yazmaya yarar, başka bir şey yapamaz. Token süresinin dolup dolmadığını anlamanın yolu, API çağrılarınıza Facebook’un verdiği yanıtlardır. Eğer "error": { "code": 190, ... "message": "Invalid OAuth access token."} gibi bir hata alırsanız token geçersiz demektir. Bu durumda yeni token alıp güncellemelisiniz. Business Manager’da birden fazla kişi çalışıyorsa, biri eski token’ı yanlışlıkla silerse sizinkiler de çalışmayabilir. Bu yüzden erişim token’ınızı paylaşılan bir hesapla oluşturmak yerine mümkünse işletme sistem kullanıcısı ile oluşturun ve kimse silmesin.

Soru 2: Conversions API verilerim Facebook Ads Raporlarına hemen yansımıyor, gecikme normal mi?
Cevap: Evet, belirli bir ölçüde gecikme normaldir. Tarayıcı pikseliyle gönderilen veriler birkaç saniye içinde Ads Manager’a yansıyabilirken, Conversions API ile sunucu üzerinden gelen veriler bazen biraz gecikmeli işlenebilir. Özellikle iOS14+ kullanıcılarından gelen bazı dönüşümler Aggregate Event Measurement politikaları gereği 48 saate kadar gecikmeli raporlanabilir. Facebook resmi olarak, Events Manager’da Event Match Quality skorunun bile tam oturması için verileri 48 saatliğine kadar toplayıp eşleştirdiğini belirtmektedir. Yani bugün gelen bir Purchase, belki de iki gün sonra “Good Match” olarak işaretlenir. Bu tür gecikmeler, reklam raporlarında da “Kampanya X dün 5 satış getirdi, ama bugün raporda 7 görünüyor” gibi durumlar yaratabilir. Bu beklenen bir davranıştır, panik yapmayın. Ancak saatler değil de günler süren, hatta hiç yansımayan veriler varsa orada bir sorun olabilir. Ayrıca test modunda anında gördüğünüz bir event, normal raporlara geçmiş olsa bile Ads Manager istatistiklerine katılması biraz zaman alır. Facebook Ads raporlarında Conversions API ile gelen eventler aynen piksel eventleri gibi sayılır, sadece kaynakları “Server” olarak ayrılır. Unutmayın, Conversions API olayları da sonuçta reklam setlerinizin optimizasyonunda kullanılmadan önce bir attribüsyon işlemine tabi olur. Eğer atribüsyonda sorun yoksa (ör. “data isn’t passed in real-time” problemine dikkat edin, bir iki saatlik gecikmeler endişe edilecek bir durum değildir. Çok uzun gecikmelerde ise entegrasyonu gözden geçirin (belki veriyi toplu gönderiyorsunuzdur, bunu gerçek zamanlıya çekmeye çalışın).

Soru 3: Tarayıcı ve sunucu verilerim tutarsız – bazen sunucu events sayısı browser’ı geçiyor, bu normal mi?
Cevap: Bazı durumlarda evet. Örneğin, sitenize gelen kullanıcıların bir kısmı tarayıcı pikselini blokluyorsa, Conversions API ile gelen sunucu event sayısı tarayıcı event sayısını aşabilir. WordPress forumlarında bazen “Server events are more than Browser events” şeklinde sorular görülüyor. Bu, Conversions API’nin aslında işini yaptığını gösterir – pikselin kaçıramadığı verileri yakalıyordur. Yine de aşırı farklar anormal olabilir. Örneğin Browser: 100 Purchase, Server: 150 Purchase gibi bir durum mantıken olamaz (sunucu 50 fazladan nereden buluyor?). Bu tip bir durumda muhtemelen event_id ayarlamanız hatalıdır ve Facebook aynı olayı iki farklı kaynak gibi sayıyordur. Mesela Shopify’da eski piksel kodunu kaldırmadınız diyelim, Shopify’ın Conversions API’si zaten Purchase gönderiyor, sizin eklediğiniz manuel kod da gönderiyor, piksel de atıyor… Bu karmaşada dedup doğru çalışmazsa Browser 100, Server 100 (dedup edilmediği için) = 200 sayılır, ama aslında 100 gerçek vardı. Böyle hataları engellemek için deduplication kurallarını gözden geçirin ve Events Manager’daki Diagnostics kısmında “Duplicate events” uyarısı olup olmadığına bakın. Tarayıcılar arası tutarsızlık konusuna gelince: Safari gibi bazı tarayıcılar piksel cookie’sini erken expire ettirebilir, bu durumda aynı kullanıcı Chrome’da gezerken tanınırken Safari’de yeni bir kullanıcı gibi görünebilir. Bu da Facebook tarafında zayıf birleştirmelere yol açabilir. Maalesef bu kısıtlamalar Apple gibi platformların getirdiği sınırlamalardır; Conversions API bu etkiyi azaltmaya çalışsa da tamamen ortadan kaldıramayabilir. Yapabileceğiniz en iyi şey, sunucuya olabildiğince fazla parametre vermektir (özellikle kullanıcı login ise email, vs.). Böylece tarayıcı değişse de eşleştirme yapılabilir.

Soru 4: Conversions API kurdum ama Events Manager’da “Get more accurate data by sending the same events from your browser and server” uyarısı alıyorum. Neyi yanlış yaptım?
Cevap: Bu, Facebook’un arayüzde bazen gösterdiği bir hatırlatma/uyarıdır. Anlamı: Sadece sunucu tarafı olaylar alıyorum, tarayıcı tarafı da gönderirsen daha iyi olur. Örneğin sadece Conversions API ile Purchase gönderiyorsanız, Facebook belki tarayıcıdaki anlık sinyallerden de faydalanmak istiyor. İdeal kurulum, piksel + CAPI beraber şeklindedir (redundant setup). Tek taraflı kurulumlar çalışsa da, Facebook genelde her iki kaynağı da öneriyor. Bu uyarıyı alıyorsanız, piksel kodunuzun düzgün çalıştığını doğrulayın. Belki de piksel kodu hiç yok veya bozuk, sadece server event geliyor. Çözüm olarak, tarayıcı pikselini tekrar kurun veya etkinleştirin. Eğer bilinçli olarak piksel kullanmıyorsanız (tamamen server-side tracking yapıyoruz diyelim, ki bazı büyük siteler ITP yüzünden böyle yapabiliyor), o zaman bu uyarıyı göz ardı edebilirsiniz. Fakat dedup vs. olmadığı için performansı izlemek zorlaşabilir. Tavsiyemiz: Mümkünse aynı olayı çift kaynaklı kurun (tarayıcı + sunucu), Facebook hangisini kullanacağına kendi karar versin. Bu sayede verilerin tutarlılığı artar.

Soru 5: Browser (tarayıcı) events ile server events değerlerim arasında fark var, hangisi esas alınacak?
Cevap: Facebook, tarayıcı ve sunucu aynı event’i gönderiyorsa bunları birleştirir (deduplicate eder) ve tek bir event olarak işler. Hangisi önce gelirse ona öncelik verir gibi bir kural vardır; genelde tarayıcı olayı anlıksa onu alır, birkaç saniye sonra sunucu aynısını göndermişse o “yedek” sayılır ve ihmal edilir. Ancak sunucu olayında ek bazı parametreler varsa (ör. gelir bilgisi gibi), Facebook bunları tarayıcı eventine ekleyebilir. Bu, tam şeffaf olmayan bir süreçtir ama neticede raporlarda çift görmezsiniz. Dolayısıyla “hangisi esas alınır” sorusuna cevap: Uygun şekilde yapılandıysa, ikisinin birleşimi esas alınır diyebiliriz. Sizin için önemli olan, herhangi birinin eksik kalması durumunda diğeriyle telafi edilmesi. Örneğin tarayıcı event’i adblock yüzünden ulaşmadıysa, sunucu event’i devreye girer. Tarayıcı event’i ulaştı ama içinde email yok (çünkü tarayıcı toplayamadı), sunucu event’inde email var ise, Facebook eşleştirme yaparken sunucu event’inden o bilgiyi alır ve tarayıcı eventini onunla zenginleştirir. Bunlar perde arkasında olan şeyler ve Facebook’un sistemleri olabildiğince bunu optimize edecek şekilde tasarlanmıştır. Siz sadece doğru veriyi her iki tarafta da sağlamaya odaklanın.

Soru 6: Conversions API Gateway diye bir kavram duydum, bu nedir?
Cevap: Conversions API Gateway, Meta’nın sunucu tarafı izleme için çıkardığı bir çözüm(du). AWS üzerinde kolayca deploy edilebilen bir proxy sunucu gibiydi. Meta, teknik imkanı olmayan reklamverenler için bunu sağladı; ancak 2023 itibariyle bu ürünün akıbeti belirsiz hale geldi (Meta desteği durdurduğunu duyurdu). Gateway, sizin adınıza bir AWS Lambda + API Gateway kurulumu yapıp temel eventleri yakalıyordu. Stape gibi şirketler de bu gateway kurulumu konusunda hizmet veriyordu. Eğer Gateway kullanıyorsanız, onun özel dokümantasyonuna başvurun. Bu rehberde anlatılanlar genel Conversions API prensipleridir, Gateway kullansanız da arkada yine benzer mantık işler.

Soru 7: Hangi olaylar için Conversions API kullanmalıyım? Hepsi için kullanmalı mıyım?
Cevap: Öncelikle en değerli gördüğünüz dönüşüm hedefleri ile başlayın: Satın alma, form doldurma, üyelik gibi reklam kampanyalarınızın optimize edildiği veya raporlandığı sonuçlar. Bunları Conversions API ile destekleyin. Ardından bu huninin geri kalan adımlarını ekleyebilirsiniz: Ürün bakma, sepete ekleme, vs. Tüm site etkileşimlerini (sayfa görüntüleme gibi) CAPI ile göndermek teoride mümkün ama pratikte gerek yok, piksel zaten bunu iyi yapabiliyor (adblock hariç). Bazı siteler A/B testleri, kişiselleştirme gibi amaçlarla özel eventler tanımlar (ör. “QuizCompleted” gibi). Onlar reklam optimizasyonunda kullanılacaksa Conversions API ile gönderebilirsiniz. Özetle, hedeflediğiniz ve ölçtüğünüz önemli eventleri asla kaçırmamak için Conversions API’yi devreye alın.

Soru 8: Conversions API kullanıyorum, ancak Facebook Ads kampanyamın performansında belirgin bir iyileşme görmedim. Neden?
Cevap: Conversions API bir gecede mucize yaratmayabilir. Sağladığı faydalar daha çok uzun vadeli veri bütünlüğü ve modelleme üzerinedir. Örneğin iOS14 sonrası piksel verileri düşen bir kampanya, CAPI ile eski seviyesine gelebilir, ama bu belki birkaç hafta verinin birikmesiyle anlaşılır. Ayrıca CAPI sadece bir altyapıdır; kampanya optimizasyonu, bütçe, kreatif gibi unsurlar hala büyük rol oynar. Eğer her şey yolunda ise, CAPI kurulumundan sonra attributed conversion sayılarınız artabilir (çünkü eskiden raporlayamadıklarınızı görmeye başlarsınız). Bu da ROAS’ınızı kağıt üzerinde yükseltebilir. Ancak gerçekten kampanya verimliliği de artabilir, çünkü Facebook daha fazla dönüşümü görerek öğrenir. Sabırlı olun ve ölçümleri takip edin. Özellikle Event Match Quality skorlarınızı yükseltmeye odaklanın; zira yüksek eşleşme, reklamların doğru kişilere gösterilmeye devam edeceği anlamına gelir. Son olarak, CAPI’nin getirdiği verilerle Facebook’un İstatistiksel Modelleme yaptığını unutmayın – bazı dönüşümler hala tahmin yoluyla atanabilir. Önemli olan, CAPI ile verinin %100 mükemmel hale gelmesi değil, öncekine göre daha iyi hale gelmesidir.

Bu rehberde Meta Dönüşüm API’si (Facebook Conversions API) hakkında kapsamlı ve teknik bir inceleme sunduk. Piksel ile farklarından Shopify ve WordPress entegrasyon detaylarına, sunucu tarafı izleme stratejilerinden sık yapılan hatalara kadar pek çok konuyu ele aldık. Doğru uygulandığında Conversions API, dijital pazarlama performansınızı bir üst seviyeye taşıyacak; yanlış veya eksik uygulandığında ise kafa karıştırıcı olabilir. Bu nedenle, adımları dikkatle uygulamanızı, test araçlarını kullanarak doğrulamalar yapmanızı ve Facebook’un güncellemelerini takip etmenizi öneririz. Unutmayın, veri gizliliğine saygı duyarak hareket etmek hem yasal zorunluluktur hem de uzun vadede sürdürülebilir reklamcılığın temelidir. Conversions API gibi araçlar, reklam verenlerin bu dengeyi kurmasına yardımcı olurken, teknik bilgi ve özen gerektirir.

Artık Meta Conversions API hakkında derinlemesine bilgi sahibisiniz. Bundan sonraki adım, öğrendiklerinizi pratiğe dökerek kendi dönüşüm izleme altyapınızı mükemmelleştirmek olmalı. Başarılar dileriz!

0 cevaplar

Cevapla

Want to join the discussion?
Feel free to contribute!

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir