OpenAI Ads ölçümünde pixel ve Conversions API sık sık aynı dönüşümü taşır: kullanıcı tarayıcıda siparişi tamamlar, pixel ateşler; aynı sipariş sunucuda da kaydedilir ve Conversions API’den gider. Doğru kurulmazsa bu tek dönüşüm iki kez sayılır ve raporlar şişer. Tekilleştirme (deduplication), bu iki kaydı tek dönüşüme bağlayan mekanizmadır.
Bu yazı eşleşmenin hangi alanlarla kurulduğunu, kararlı bir event_id’nin nasıl üretildiğini ve sık yapılan hataları gösterir. Pixel ve sunucu kurulumlarının kendisi ayrı yazıların konusu; burada odak iki katmanı çakışmadan uzlaştırmak.
Dedup Neden Gerekir
Pixel ve Conversions API tek başına eksik kalır. Pixel reklam engelleyici, onay reddi ve çerez kısıtlarıyla budanır; Conversions API ise tarayıcıdaki canlı etkileşimi değil sunucudaki kaydı görür. İkisi birlikte kullanıldığında kapsama genişler, ama aynı dönüşüm iki kaynaktan gidince çift sayım riski doğar. Dedup, kapsamı genişletirken sayımı tek tutmanın yoludur.
Aynı dönüşüm yalnızca tek bir katmandan gönderiliyorsa dedup’a gerek yoktur. event_id yalnızca aynı dönüşüm hem pixel hem sunucudan gittiğinde devreye girer.
Eşleşme Anahtarı: Üç Bileşen
OpenAI Ads iki kaydın aynı dönüşüm olduğuna üç bileşenin eşleşmesiyle karar verir: Pixel ID, event adı ve event_id1. Üçü de iki tarafta aynıysa kayıtlar tek dönüşüm olarak sayılır.
| Bileşen | Pixel tarafı | Sunucu tarafı | Kural |
|---|---|---|---|
| Pixel ID | init içindeki pixelId | pid sorgu parametresi | İki tarafta aynı |
| Event adı | measure event adı | event type | İki tarafta aynı |
| event_id | options.event_id | event id | İki tarafta aynı değer |
Sunucu tarafında dönüşümün kimliği id alanında taşınır; pixel tarafında aynı değer options.event_id olarak gönderilir2. Yani eşleşmeyi kuran şey, sunucudaki id ile pixel’deki event_id’nin birebir aynı olmasıdır.
event_id’yi Geliştirici Üretir
Kritik nokta: event_id’yi OpenAI üretmez. Dönüşüm başına kararlı ve tekil bir kimliği geliştirici belirler ve aynı pixel ile sunucu event’inde tekrar kullanır1. İyi bir event_id iki özelliği taşır:
- Tekil: Her dönüşüm farklı bir değer alır, böylece ayrı siparişler birbirine karışmaz.
- Kararlı: Aynı dönüşüm için pixel ve sunucu aynı değeri üretebilmeli. Sipariş numarası, ödeme kimliği gibi sistemde zaten var olan ve tekrar okunabilen bir değer bu yüzden uygundur.
Sipariş kimliği bu iki koşulu doğal olarak karşılar: hem her sipariş için tekildir hem de tarayıcıda ve sunucuda aynı değer okunabilir.
// Pixel tarafı: dönüşüm kimliğini event_id olarak gönder
oaiq(
"measure",
"order_created",
{ type: "contents", amount: 2599, currency: "USD" },
{ event_id: "order_12345" },
);
// Sunucu tarafı: aynı değeri id olarak gönder
{
"id": "order_12345",
"type": "order_created",
"timestamp_ms": 1773892800000,
"data": {
"type": "contents",
"amount": 2599,
"currency": "USD",
"contents": [
{
"id": "sku_123",
"name": "Starter bundle",
"content_type": "product",
"quantity": 1
}
]
}
}
İki tarafta da event_id/id değeri order_12345, event adı order_created ve aynı Pixel ID kullanıldığı için OpenAI bu iki kaydı tek dönüşüm sayar.
Custom Event’lerde Eşleşme
Standart bir event yerine custom gönderiliyorsa, eşleşme standart event adı yerine custom_event_name ile kurulur. Custom event’lerde iki tarafta da aynı custom_event_name kullanılmalıdır1. Pixel tarafında custom_event_name options nesnesinde, sunucu tarafında event alanında taşınır; ikisi farklıysa eşleşme kurulmaz.
Sık Yapılan Hatalar
Dedup’ı bozan hatalar genellikle aynı kalması gereken bir değerin iki tarafta ayrışmasından kaynaklanır:
- Her gönderimde yeni rastgele
event_id: Pixel ve sunucu farklı değer üretir, eşleşme kurulmaz, dönüşüm iki kez sayılır.event_iddönüşüm başına kararlı olmalı. - Farklı Pixel ID: İki gönderim farklı Pixel ID taşırsa eşleşme baştan kurulmaz.
- Event adı uyuşmazlığı: Pixel
order_created, sunucu farklı bir tip gönderirse kayıtlar eşleşmez. - Custom event’te ad ayrışması: İki tarafta farklı
custom_event_nameaynı sorunu yaratır. - Gereksiz
event_id: Dönüşüm tek katmandan gidiyorkenevent_ideklemek zarar vermez ama gereksizdir; dedup yalnızca iki kaynak varken anlamlıdır.
Hangi değeri event_id yapmalı?
İyi bir event_id, dönüşüm anında hem tarayıcıda hem sunucuda erişilebilen tekil bir kimliktir. Sipariş numarası, ödeme işlem kimliği ya da abonelik kimliği uygundur. Rastgele üretilen ve yalnızca bir tarafta bilinen değerlerden kaçın; eşleşmeyi kuran şey iki katmanın aynı değeri taşımasıdır.
Sonraki Adımlar
Dedup kurulduğunda pixel ve Conversions API artık kapsamı genişletip sayımı tek tutar. Bundan sonraki adım, hangi event’in ne zaman gönderileceğini netleştirmek: event taksonomisi ve her event’in beklediği veri şekli ölçümün doğru sayılması için belirleyicidir.
Footnotes
-
Conversions API (OpenAI Developers) — pixel/sunucu dedup (“If you send the same conversion from the pixel and the Conversions API, reuse the same value as the API
idand pixelevent_id.”), aynı Pixel ID kullanımı ve custom event’lerde aynıcustom_event_name(“Send both events with the same Pixel ID. For custom events, use the samecustom_event_nameon both sides as well.”). ↩ ↩2 ↩3 -
JavaScript Pixel (OpenAI Developers) —
event_id’nin dedup rolü (“Deduplication matches on your Pixel ID, the event name, andevent_id.”), geliştiricinin event_id üretmesi (“When you need deduplication across browser and server events, generate theevent_idyourself and reuse it on the same pixel and server-sent event.”). ↩
- 01 Dedup üç bileşenle eşleşir: Pixel ID, event adı ve event_id. Üçü de iki tarafta aynıysa OpenAI iki kaydı tek dönüşüm sayar.
- 02 Pixel'de options.event_id, sunucuda id alanı aynı değeri taşır; event_id'yi geliştirici üretir, OpenAI değil.
- 03 event_id dönüşüm başına kararlı ve tekil olmalı: sipariş numarası iyi, her gönderimde değişen rastgele değer kötü.
- 04 Custom event'lerde standart event adı yerine aynı custom_event_name iki tarafta eşleştirilir.
- 05 Aynı dönüşüm tek katmandan gönderiliyorsa event_id'ye gerek yok; dedup yalnızca aynı dönüşüm iki kaynaktan gidiyorsa gerekir.
+ OpenAI Ads dönüşümleri neye göre tekilleştirir?
Tekilleştirme üç bileşenin eşleşmesine dayanır: Pixel ID, event adı ve event_id. Pixel'deki event_id ile Conversions API'deki id aynı değeri taşıyıp iki tarafta aynı Pixel ID kullanıldığında, OpenAI iki kaydı tek dönüşüm olarak sayar. Custom event'lerde event adı yerine aynı custom_event_name eşleştirilir.
+ event_id'yi kim üretir?
event_id'yi OpenAI üretmez, geliştirici üretir. Dönüşüm başına kararlı ve tekil bir değer seçip aynı pixel ve sunucu event'inde tekrar kullanmak gerekir. Sipariş numarası gibi tekrar üretilebilir bir kimlik uygundur.
+ Her dönüşümde event_id göndermek zorunda mıyım?
Hayır. event_id yalnızca aynı dönüşüm birden fazla kaynaktan, yani hem pixel hem Conversions API'den gönderildiğinde gerekir. Dönüşüm tek bir katmandan gönderiliyorsa dedup'a ihtiyaç yoktur.
+ event_id olarak rastgele değer kullanabilir miyim?
Her gönderimde yeniden üretilen rastgele bir değer kullanılırsa pixel ve sunucu farklı event_id taşır, eşleşme kurulmaz ve dönüşüm iki kez sayılır. event_id, aynı dönüşüm için iki katmanda da aynı kalan kararlı bir değer olmalıdır; sipariş kimliği bu yüzden iyi bir seçimdir.