Facebook Meta Pixel’i kurmak işin kolay tarafı. Asıl iş, Pixel’in topladığı event’leri Meta’nın doğru kullanıcıya eşleyebilmesini sağlamak. Bu da büyük oranda Advanced Matching’in nasıl iletildiğine, Conversions API ile dedup kurgusuna ve fbc/fbp cookie yaşam döngüsünün doğru yönetilmesine bağlıdır. Bu yazı bu üç parçayı tek bir referans halinde toparlıyor.
Pixel’in standart olayları, parametre yapısı ve Events Manager kurulumu için Meta Pixel olayları ve standart event’ler yazısına bakın. Bu yazı, o yazının üzerine kullanıcı eşleştirme katmanını koyuyor.
Advanced Matching Nedir, Ne Zaman Devreye Girer?
Pixel bir event tetiklediğinde Meta, event’i bir kullanıcıya eşlemek ister. Tarayıcıda fbp cookie ve oturum açık bir Facebook hesabı varsa eşleştirme zaten kuvvetlidir. Ancak ad-block, Safari ITP, iOS 17 LTP ve oturum açmamış kullanıcı senaryolarında Meta elinde sinyal kalmayabilir. Advanced Matching tam burada devreye girer: event’le birlikte hashed kullanıcı parametreleri (em, ph, fn, ln, ct, st, zp, db, ge, country, external_id) gönderilirse Meta bu parametreleri kendi kullanıcı tabanıyla eşler1.
Üç çalışma modu vardır:
| Mod | Nereden veri toplanır | Hashleme | Tipik kullanım |
|---|---|---|---|
| Automatic Advanced Matching (AAM) | Form input’larından (login, signup, checkout) tarayıcıda | Meta yapar | Hızlı kurulum, GTM şablonu yok |
| Manuel Advanced Matching | fbq('init', PIXEL_ID, {em, ph, ...}) veya fbq('track', EVENT, params, {eventID, user_data}) | Geliştirici yapar | GTM, Shopify customer object, headless storefront |
| CAPI customer_data | Sunucu tarafı event payload’ı | Geliştirici yapar | Server-side tracking, sGTM, doğrudan API |
AAM ve manuel Advanced Matching aynı tarayıcı event’i üzerinde birlikte çalışabilir ama parametre çakışırsa AAM önceliklidir. Kontrolü tam ele almak istiyorsanız AAM kapatılır ve manuel Advanced Matching kullanılır.
Parametre Normalize Kuralları
En kritik nokta. Aynı email farklı normalize edilmişse iki farklı hash çıkar ve eşleştirme yapılmaz. Meta’nın resmi parametre kuralları2:
| Parametre | Normalize | Örnek |
|---|---|---|
em (email) | trim, lowercase | User@Domain.COM → user@domain.com |
ph (phone) | sembol/harf temizle, baştaki sıfırları kaldır, ülke kodu zorunlu | +90 (555) 123-4567 → 905551234567 |
fn (first name) | lowercase, no punctuation, UTF-8 (özel karakter koru) | Ayşe → ayşe |
ln (last name) | lowercase, no punctuation, UTF-8 | Yılmaz → yılmaz |
ge (gender) | tek karakter m veya f | Female → f |
db (date of birth) | YYYYMMDD | 15/03/1990 → 19900315 |
ct (city) | lowercase, boşluksuz, no punctuation, UTF-8 | İstanbul → istanbul; New York → newyork |
st (state) | hashing required; format Meta dokümantasyonunda detaylı tanımlanmamış. US için 2-haneli kısaltma (ca, ny) örneklenmiş; TR için resmi rehber yok, plaka kodu (örn 34) gibi kısa sabit form pratikte yaygın | US California → ca |
zp (zip) | lowercase, no spaces, no dash. US: ilk 5 hane. UK: area-district-sector birleşik (örn m11ae). Diğer ülkeler için yerel format. | US 94035, UK M1 1AE → m11ae |
country | ISO 3166-1 alpha-2, lowercase | Türkiye → tr |
external_id | hashing önerilir (zorunlu değil); kanallar arası tutarlı olmalı (Pixel ve CAPI’de aynı değer) | customer_18745 → SHA-256 |
Hashlenmeyen parametreler: fbc, fbp, client_ip_address, client_user_agent, subscription_id, lead_id. Bunlar plain gönderilir.
// Manuel Advanced Matching, lowercase + trim sonrası SHA-256
async function sha256(s) {
const buf = await crypto.subtle.digest(
"SHA-256",
new TextEncoder().encode(s),
);
return Array.from(new Uint8Array(buf))
.map((b) => b.toString(16).padStart(2, "0"))
.join("");
}
const email = "User@Domain.COM".trim().toLowerCase();
const phone = "+90 (555) 123-4567".replace(/[^0-9]/g, "").replace(/^0+/, "");
fbq(
"track",
"Purchase",
{ value: 199.9, currency: "TRY", content_ids: ["SKU-123"] },
{
eventID: "ord_2026050100012",
user_data: {
em: await sha256(email),
ph: await sha256(phone),
},
},
);
Türkçe isim ve şehir parametrelerinde diakritik koruma kritik: ayşe ile
ayse farklı hash üretir. Frontend ve backend aynı kuralı uygulamazsa
Pixel/CAPI dedup eventları farklı kullanıcıya eşler.
fbc ve fbp Cookie Yaşam Döngüsü
İkisinin görevi farklıdır. fbp Meta tarafında kimlik anchor’ı olarak iş görür: aynı tarayıcıdan gelen sonraki event’leri 90 gün boyunca aynı oturuma bağlar, Facebook hesabı oturumu kapalı olsa bile. Email/telefon yoksa ve fbclid URL’den temizlenmişse Meta’nın elinde kalan tek anchor sıklıkla budur. Resmi External ID dokümantasyonuna göre external_id gönderilmediğinde Meta fbp’yi external_id yerine kullanır3; event_id olmadığında Pixel ve CAPI event’lerini ilişkilendirmek için heuristic dedup’a girer; Website Custom Audience ve Lookalike inşasında browser node olarak rol oynar.
fbc ise attribution sinyali: reklam tıklamasından gelir, “bu ziyaret reklamlı geldi” der ve Meta’nın conversion’ı doğru kampanyaya bağlamasını sağlar. fbp identity, fbc attribution. CAPI event payload’ında ikisini de göndermek standart pratiktir; tek başına fbc gönderirseniz cross-session linkage zayıflar, tek başına fbp gönderirseniz attribution kaybedilir.
fbp (Facebook Browser ID) site ilk ziyarette üretilen rasgele bir tanımlayıcıdır. fbc (Facebook Click ID) ise kullanıcı reklam tıklamasıyla geldiğinde URL’deki fbclid parametresinden üretilir4. Format şöyledir:
fbp = fb.<subdomain_index>.<creation_timestamp_ms>.<random_number>
fbc = fb.<subdomain_index>.<creation_timestamp_ms>.<fbclid>
subdomain_index Meta’nın resmi tanımına göre com için 0, apex domain (example.com) için 1, subdomain (www.example.com) için 2’dir. Server tarafında cookie yoksa üretirken 1 kullanılır4. fbclid değeri case-sensitive’dir; lower/upper dönüşümü uygulamayın.
Pixel kütüphanesi bu cookie’leri otomatik yazar ama iki yapısal sorun vardır:
1. iOS 17 Link Tracking Protection. iOS 17 ile birlikte Safari, Mail ve Messages’ta varsayılan olarak bilinen tracking parametrelerini (fbclid dahil) URL’den temizleyebilmektedir5. Sonuç: kullanıcı reklamı tıklasa bile site açıldığında URL’de fbclid yoktur, fbc cookie üretilmez, attribution Meta’ya kayıtsız kalır. iOS 26 ile gelen Advanced Fingerprinting Protection bu çerçeveyi genişleterek cookie’siz teknik fallback’leri de bloklayabilmektedir; iki feature birbirinden farklıdır.
2. Safari ITP 7-day cap. Safari, Set-Cookie ile tarayıcıda yazılan client-side cookie’lerin TTL’ini 7 günle sınırlar6. fbp/fbc Pixel kütüphanesi tarafından client-side yazıldığı için bu sınıra tabidir.
Her iki sorunun pratik çözümü aynıdır: cookie ilk hit’te sunucuda persist edilir ve sonraki event’lerde replay edilir. Meta resmi rehberi _fbc cookie’sini sadece şu iki durumda yazmayı öneriyor4:
_fbccookie henüz yoksa ve URL’defbclidvarsa,- URL’deki
fbclid, mevcut_fbccookie değerinin son.sonrasındaki kısımdan farklıysa.
// Edge worker veya Astro middleware
const url = new URL(request.url);
const fbclid = url.searchParams.get("fbclid");
const existingFbc = parseCookie(request.headers.get("cookie"))._fbc;
const existingFbclid = existingFbc ? existingFbc.split(".").pop() : null;
if (fbclid && fbclid !== existingFbclid) {
// subdomain_index server-side cookie üretiminde 1
const fbc = `fb.1.${Date.now()}.${fbclid}`;
response.headers.append(
"Set-Cookie",
`_fbc=${fbc}; Path=/; Max-Age=7776000; HttpOnly; Secure; SameSite=Lax`,
);
}
Server-side yazılmış HttpOnly cookie ITP 7-gün sınırına takılmaz. CAPI event payload’ında fbc sunucu cookie’sinden okunup gönderilir. Aynı pattern fbp için de uygulanabilir; ilk page view’da fb.1.<now>.<random> üretilir.
CAPI ile event_id Deduplication
Pixel ve Conversions API aynı event’i iki kanaldan ileterek tarayıcı kayıplarını telafi eder. Ancak Meta her iki event’i de saymaması için tek bir event olduğunu anlamalıdır. Bu da event_id eşleşmesiyle yapılır7.
Resmi kural: aynı event_name ve aynı event_id Pixel ve CAPI üzerinden 48 saat içinde geldiğinde Meta bunu tek event sayar; daha eskisi farklı event olarak işlenir. Server ve browser event yaklaşık aynı anda geldiğinde (5 dakika içinde) Meta browser/app event’ini tercih eder8. Bu yüzden CAPI gönderimini Pixel tetikleme zamanına yakın tutmak (ideal: birkaç dakika içinde) önerilir.
// Browser tarafı (Pixel)
const eventId = `ord_${orderId}`; // backend'den gelen sabit
fbq(
"track",
"Purchase",
{ value, currency, content_ids },
{ eventID: eventId },
);
// Server tarafı (CAPI), aynı eventId
// Website event'lerinde action_source ve event_source_url ZORUNLUDUR
await fetch(
`https://graph.facebook.com/v25.0/${PIXEL_ID}/events?access_token=${CAPI_TOKEN}`,
{
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
data: [
{
event_name: "Purchase",
event_time: Math.floor(Date.now() / 1000),
event_id: eventId,
action_source: "website",
event_source_url: pageUrl,
user_data: {
em: [hashedEmail],
ph: [hashedPhone],
client_ip_address: clientIp,
client_user_agent: clientUa,
fbp,
fbc,
},
custom_data: { value, currency, content_ids },
},
],
}),
},
);
Website CAPI event’leri için client_user_agent, action_source ve event_source_url zorunludur9. Bunlardan biri eksikse event geçerli sayılmaz. Pixel tarafında client_user_agent otomatik gönderilir; sunucu tarafında manuel eklenmesi şarttır.
event_id üretiminde dikkat edilmesi gereken kritik kurallar:
- Order ID gibi backend’den gelen sabit identifier’lar kullanın. Random UUID iki kanalda farklı çıkarsa dedup kırılır.
- Events Manager’da Test Events ekranında Pixel ve CAPI event’leri “Deduplicated” olarak işaretlenmelidir. “Server” veya “Browser” tek başına gözükürse eşleşme kurulamamıştır.
- Aynı session’daki PageView gibi event’ler için sayfa yükleme timestamp + tab id kombinasyonu üretmek yeterli olur.
Purchase,Lead,CompleteRegistrationiçin backend kayıt id’si zorunludur.
Test Events için test_event_code parametresi kullanıyorsanız, üretim
payload’ında bu parametreyi çıkarmayı unutmayın. Meta’nın resmi notu: test
kodlu event’ler kayıp olmaz, Events Manager’a düşer ve hedefleme/ölçüm için
kullanılır10. Yani test gibi gönderdiğiniz şey gerçek audience verisini
kirletir.
EMQ Skoru: Teşhis Aracı, ROAS Proxy’si Değil
Event Match Quality (EMQ) Meta’nın gönderdiğiniz event’in kullanıcıya eşlenebilirliğini 0-10 ölçeğinde puanladığı bir göstergedir11. Hesaplaması her parametrenin kalite ağırlıklı toplamına dayanır; Meta ağırlıkları kamuya açıklamaz, ancak email ve phone gibi yüksek-belirleyici parametrelerin zip ve city’den çok daha fazla katkı yaptığı pratisyen gözlemleridir.
EMQ’nun yaygın yanlış anlaşılması, “EMQ’yu 8’e çıkardım, kampanya performansım iyileşecek” beklentisidir. EMQ doğrudan performans metriği değildir, çünkü:
- EMQ tanım gereği bir match quality göstergesidir, coverage göstergesi değil. Meta’nın eline ulaşmış event’lerin ne kadarının doğru kullanıcıya bağlandığını ölçer; hiç gönderilmemiş event’i geri getirmez. Pixel’in adblock yüzünden tetiklenmediği durumda CAPI ile event’i göndermek hem EMQ’yu hem coverage’ı yükseltir; ama bu kazanç EMQ’dan değil, eklenen event akışından gelir.
- Eşleştirme Meta’nın halihazırda tanıdığı kullanıcı tabanına karşı yapıldığı için, brand-new kullanıcı senaryosunda parametreler eksiksiz olsa bile (yani EMQ yüksek olsa bile) eşleşme kurulamayabilir. Bu, dokümantasyondan çok matching mekanizmasının tanımına dayanan bir çıkarsama.
Bu konunun vanity metric eleştirisi ayrı bir yazı konusu. Bu yazıdaki amaç EMQ’nun mekanik olarak nasıl iyileştirileceğini göstermek.
EMQ’yu yükseltmek için pratik adımlar:
- Email yakalandığı an gönder. Login, signup, newsletter, sepet email input’unun her birinde event’e
emparametresi ekle. Checkout’a kadar bekleme. - Phone’u E.164’e zorla. Ülke kodu yoksa frontend’de default değerinden ekle, baştaki sıfırları kaldır, whitespace, parantez, tire temizle.
- fbc/fbp’yi server-side persist et. Yukarıdaki cookie pattern.
- External_id ekle. Logged-in kullanıcılar için Pixel ve CAPI’ye aynı (hash’li)
customer_id’yi gönder. Cross-device eşlemede kuvvetlidir. Not:external_idTest Events’ta görünmez, sadece Pixel Helper’da Advanced Matching Parameters Sent altında izlenir. - client_ip_address ve client_user_agent’i CAPI’ye ekle. Pixel zaten gönderir, CAPI’de manuel eklenmesi gerekir ve
client_user_agentwebsite event’leri için zorunludur.
Consent Mode: Google ile Karıştırmayın
Yaygın hata, Google’ın Consent Mode v2 ile Meta’nın consent mekanizmasının aynı olduğunu varsaymaktır. Aynı değildir.
Meta tarafında consent iki seviyede yönetilir12:
// 1. Pixel-level consent (browser)
fbq("consent", "revoke"); // banner gösterimi öncesi default
// Kullanıcı consent verdi
fbq("consent", "grant");
// 2. CAPI-level Limited Data Use (server)
// US state laws için, payload'a data_processing_options ekle
{
"data_processing_options": ["LDU"],
"data_processing_options_country": 0,
"data_processing_options_state": 0
}
Pratik kurallar:
- EU/AB trafiği için consent verilmeden Pixel ve CAPI hiç tetiklenmemelidir. Meta’nın LDU özelliği EU GDPR’a yetmez; LDU CCPA gibi US eyalet yasaları içindir13.
- Consent banner sonrasında consent verilirse
fbq('consent', 'grant')çağrısından sonra Pixel event’lerini tetikleyin. Önce çağırıp sonra grant yapmak event kaybeder. - CAPI tarafında consent state’i Pixel ile senkron tutmak için event payload’ına consent timestamp eklemek operasyonel debug için faydalıdır.
Consent yönetiminin server-side ve attribution etkisi için ayrıca Consent sonrası reklam ölçümü ve Tarayıcı depolama ve cookie mimarisi yazılarına bakılabilir.
Çoklu Pixel ID Senaryoları
Birden fazla Pixel ID kullanmak nadiren tek başına bir sorundur; sorun, event’lerin hangi Pixel’e iletilmesi gerektiğinin belirsiz kalmasıdır. Meta’nın resmi tavsiyesi14:
“Using the
trackfunction on pages that have multiple Pixels initialized could produce over-firing or unexpected behavior and should be applied only in specific situations.”
fbq("init", PIXEL_AGENCY_A);
fbq("init", PIXEL_BRAND_OWN);
// PageView her iki pixel'e gider — istenen
fbq("track", "PageView");
// Purchase sadece marka pixel'ine
fbq(
"trackSingle",
PIXEL_BRAND_OWN,
"Purchase",
{ value, currency },
{ eventID },
);
// Custom event sadece ajans pixel'ine
fbq("trackSingleCustom", PIXEL_AGENCY_A, "AgencyKPI", { ... });
trackSingle ve trackSingleCustom event’i belirli Pixel ID’ye sınırlar. Bunu kullanmazsanız track çağrısı tüm initialize edilmiş Pixel ID’lere ateşlenir; bu, üçüncü taraf entegrasyonlarının (ör. Shopify Facebook & Instagram app) kendi event’lerini diğer Pixel’lere de bulaştırmasına neden olur. Bu spesifik bug ve Shopify özelinde teşhis için ayrı bir yazıda ele alındı: Shopify Facebook & Instagram app çoklu pixel duplicate event sorunu.
Doğrulama: Test Events ve Pixel Helper
Üretime almadan önce iki araçla mutlaka doğrulayın:
| Araç | Neyi gösterir | Nereye bakılır |
|---|---|---|
| Meta Pixel Helper (Chrome eklenti) | Tarayıcı tarafı Pixel event’leri, parametreler, hatalar; AAM ile yakalanan veri; external_id görünür | Anlık event flow, Advanced Matching Parameters Sent |
| Events Manager > Test Events | Pixel + CAPI event’leri, dedup status; external_id görünmez | ”Server”/“Browser”/“Deduplicated” işaretleri |
Test Events’ta event’in Server veya Browser tek başına gözükmesi (Deduplicated değil) dedup’ın kırık olduğunu gösterir. Bunun yaygın nedenleri:
- Pixel ve CAPI farklı event_id üretmiş.
- event_time iki kanalda 5 dakikadan fazla fark gösteriyor (Meta tie-break yaparken browser önceliklidir).
event_namefarklı yazılmış (PurchasevspurchasevsCompletePayment).- 48 saatlik dedup penceresi geçmiş.
Doğrulama tamamlandıktan sonra Diagnostics ekranındaki uyarılar (mismatched currency, missing parameters, unmapped content_ids) tek tek elimine edilmeli. Diagnostics’i hiç sıfır gösteren bir kurulum nadirdir; amaç, Critical seviyedeki uyarıların kalmamasıdır.
Server-Side Tarafa Geçiş ve İlgili Yazılar
Advanced Matching ve CAPI dedup pratikleri Pixel’in tarayıcıda çalıştığı varsayımıyla yazıldı. Trafik miktarı ve bot/adblock kayıpları büyüdüğünde server-side tarafa geçmek kaçınılmaz olur. O katmanın hosting kararı için sGTM Hosting Karar Matrisi, Pixel/CAPI event flow’unun GTM’siz yaklaşımları için Etkinlik Verilerinin Takibinde Farklı Yaklaşımlar, 2026’da daralan attribution penceresi ve telafi için Meta Attribution Penceresi BigQuery Telafi Katmanı yazılarına bakılabilir.
Advanced Matching normalize/hash pipeline, event_id dedup mimarisi, fbc/fbp server-side persist katmanı ve EMQ teşhisi. Mağazanıza özel Meta tracking değerlendirmesi.
İletişime GeçinFootnotes
- About Advanced Matching for Web. Meta for Developers ↩
- Customer Information Parameters. Meta Conversions API ↩
-
External ID — fbp fallback. Meta Conversions API — “Event includes
fbp, but notexternal_id: We usefbpasexternal_idand try to find a match.” ↩ - ClickID and the fbp/fbc Parameters. Meta Conversions API ↩ ↩2 ↩3
- Meta Pixel: Setup Guide for Facebook Ads — iOS privacy timeline. Shopify Blog — Shopify blog iOS 17 LTP ve iOS 26 Advanced Fingerprinting feature ayrımını netleştiriyor; Apple’ın resmi iOS release notları ile teyit edilmesi önerilir. ↩
-
Tracking prevention in Safari. WebKit — ITP’nin client-side
Set-Cookiecookie’lerini günlerle sınırladığı framework belgesi. ↩ - Deduplicate Pixel and Server Events. Meta Conversions API ↩
- Server Event Parameters — event_name dedup window. Meta Conversions API — “match between events sent within 48 hours of each other”. ↩
- Conversions API Parameters Index — required for website events. Meta ↩
-
Using the Conversions API — Test Events tool warning. Meta — “Events sent with
test_event_codeare not dropped. They flow into Events Manager and are used for targeting and ads measurement purposes.” ↩ - Event Match Quality (EMQ). Meta Business Help Center ↩
- About Cookie Settings for Meta Pixel. Meta Business Help Center ↩
- Limited Data Use. Meta Business Help Center ↩
-
Selective event tracking with multiple Pixels. Meta Pixel Advanced —
trackSinglevetrackSingleCustomdoğrudan dokümantasyonu. ↩
- 01 Advanced Matching parametreleri gönderimden önce mutlaka Meta'nın belirlediği format kurallarına göre normalize edilmeli; aksi halde hash farklı çıkar ve eşleştirme yapılmaz.
- 02 Pixel + CAPI birlikte kullanılırken event_id her event üretimi noktasında aynı kaynaktan üretilmeli; Pixel ve CAPI farklı id üretirse iki event ayrı sayılır. Dedup penceresi 48 saat.
- 03 fbc cookie iOS 17 LTP ve Safari ITP koşullarında client-side erişilemez hale gelebilir; ilk hit'te server tarafına persist edilmeli.
- 04 EMQ skoru bir teşhis aracıdır; ROAS proxy'si değil. Optimizasyon için CPA delta üzerinden ölçüm yapılmalı.
- 05 Consent Mode v2 Google framework'üdür; Meta tarafında consent yönetimi
fbq('consent', 'grant'|'revoke')ve CAPI'de Limited Data Use ile yapılır.
+ Advanced Matching ile Conversions API customer_data farkı nedir?
İkisi de aynı kullanıcı parametre setini (em, ph, fn, ln, ct, st, zp, db, ge, country, external_id, fbc, fbp, client_ip_address, client_user_agent) kullanır. Fark gönderim kanalında: Advanced Matching tarayıcı üzerinden Pixel ile, CAPI customer_data sunucu üzerinden iletilir. Aynı event hem Pixel hem CAPI ile gönderildiğinde event_id eşleşmesi şarttır.
+ Email parametresini ben mi hashlemeliyim, Meta otomatik mi yapıyor?
Pixel tarafında Automatic Advanced Matching açıksa Meta tarayıcıda yakalanan veriyi kendisi hashler. Manuel Advanced Matching veya CAPI kullanıyorsanız değeri lowercase + trim + SHA-256 ile siz hashlemelisiniz. fbc, fbp, client_ip_address, client_user_agent ve external_id parametreleri hashlenmez.
+ fbc ve fbp cookie'leri ne kadar süre saklanır?
Meta varsayılanı her iki cookie için 90 gündür ve kullanıcı sitede her etkileşimde yenilenir. Safari ITP ve iOS 17 Link Tracking Protection bağlamında client-side fbc kalıcı değildir; ilk hit'te server-side persist edip sonraki event'lerde replay etmek attribution kaybını telafi eder.
+ EMQ skoru kaç olmalı?
Meta resmi etiketlemede 6.0-7.9 aralığını Good, 8.0 ve üzerini Great olarak işaretler (4 altı Poor, 4-5.9 OK). EMQ doğrudan kampanya performans metriği değildir. Daha yüksek EMQ, Meta'nın elindeki event'i bir kullanıcıya eşlemesini iyileştirir, gönderilmeyen event'i geri getirmez. ROAS karşılaştırması için EMQ değişimini doğrudan CPA delta ile incelemek gerekir.
+ Pixel ve CAPI dedup'u event_id olmadan kurulur mu?
event_name + event_time + fbp + içerik parametreleri kombinasyonuyla heuristic dedup denenebilir ama güvenli değildir. Meta resmi yöntem olarak event_name + event_id eşleşmesini önerir. Aynı event_id Pixel ve CAPI tarafında üretilmeli, iki kanaldan da iletilmeli ve 48 saatlik pencere içinde Meta'ya ulaşmalıdır.