OpenAI Ads kampanyalarında performansı doğru değerlendirmek için yalnızca gösterim, tıklama ve harcama verilerine bakmak yeterli değildir. Reklam tıklamasından sonra kullanıcının ürün görüntüleyip görüntülemediği, sepete ürün ekleyip eklemediği, checkout başlatıp başlatmadığı veya satın alma yaptığı da ölçülmelidir.
Bu nedenle OpenAI Ads dönüşüm takibi, kampanya kurulumunun teknik ama kritik parçalarından biridir.
OpenAI tarafında dönüşüm ölçümleme için iki temel yöntem bulunur:
- Measurement Pixel
- Conversions API
Measurement Pixel, tarayıcı tarafında çalışan JavaScript tabanlı ölçümleme yapısıdır. Conversions API ise dönüşüm event’lerini sunucu tarafında OpenAI’ye göndermek için kullanılır.
Measurement Pixel ve Conversions API farkı
| Ölçümleme yöntemi | Nerede çalışır? | Kullanım amacı | Ne zaman tercih edilmeli? |
|---|---|---|---|
| Measurement Pixel | Tarayıcı / web sitesi | Sayfa görüntüleme, ürün görüntüleme, sepete ekleme, checkout gibi browser event’leri | Standart web event takibi için |
| Conversions API | Sunucu tarafı | Satın alma, lead, server-side checkout, offline veya daha güvenilir event gönderimi | Kritik dönüşümler ve server-side ölçümleme için |
| Pixel + Conversions API | Tarayıcı + sunucu | Daha güçlü ve güvenilir ölçümleme | E-ticaret ve performans kampanyalarında önerilen yapı |
E-ticaret markaları için en sağlıklı yaklaşım genellikle Pixel ve Conversions API’yi birlikte kullanmaktır. Pixel kullanıcı yolculuğundaki web etkileşimlerini ölçerken, Conversions API özellikle satın alma gibi kritik event’lerin daha güvenilir şekilde iletilmesine yardımcı olur.
Stratejik tavsiye: Satın alma event’ini yalnızca tarayıcı tarafında bırakmak yerine server-side olarak da göndermek daha sağlıklı olur. Ancak aynı dönüşüm hem Pixel hem Conversions API ile gönderiliyorsa deduplication için aynı
event_idkullanılmalıdır.
OpenAI Ads için hangi event’ler takip edilmeli?
OpenAI Ads tarafında standart event taxonomy kullanılır. E-ticaret markaları için en kritik event’ler genellikle şunlardır:
| Event adı | Data type | Kullanım amacı |
page_viewed |
contents |
Kullanıcı önemli bir sayfayı görüntülediğinde |
contents_viewed |
contents |
Kullanıcı ürün, kategori, içerik veya listing görüntülediğinde |
items_added |
contents |
Kullanıcı sepete ürün eklediğinde |
checkout_started |
contents |
Kullanıcı checkout sürecini başlattığında |
order_created |
contents |
Satın alma tamamlandığında |
lead_created |
customer_action |
Kullanıcı form doldurduğunda veya lead oluşturduğunda |
registration_completed |
customer_action |
Kullanıcı üyelik veya kayıt sürecini tamamladığında |
custom |
custom |
Standart event’lerle karşılanmayan özel aksiyonlarda |
E-ticaret tarafında minimum kurulum için şu akış önerilebilir:
page_viewedcontents_vieweditems_addedcheckout_startedorder_created
Lead generation yapan markalar için lead_created, demo veya randevu akışları için appointment_scheduled, abonelik yapıları için subscription_created veya trial_started event’leri kullanılabilir.
OpenAI Measurement Pixel nasıl kurulur?
Measurement Pixel kurulumu için OpenAI Ads Manager içinde Conversions alanından Pixel ID oluşturulur. Ardından aşağıdakine benzer bir pixel kodu, web sitenizdeki tüm sayfalara eklenir.
Temel kurulum örneği:
<script>
(function (w, d, s, u) {
if (w.oaiq) return;
var q = function () {
q.q.push(arguments);
};
q.q = [];
w.oaiq = q;
var js = d.createElement(s);
js.async = true;
js.src = u;
var f = d.getElementsByTagName(s)[0];
f.parentNode.insertBefore(js, f);
})(window, document, "script", "https://bzrcdn.openai.com/sdk/oaiq.min.js");
oaiq("init", {
pixelId: "YOUR_PIXEL_ID"
});
</script>
Bu kodun mümkün olduğunca erken çalışması için sayfanın <head> alanına eklenmesi önerilir. Google Tag Manager üzerinden de kurulabilir; ancak tag manager’ın Pixel’in yüklenmesini veya event çağrılarını engellememesi gerekir.
Kullanıcı verisi nasıl gönderilmeli?
OpenAI Pixel kurulumunda user object opsiyoneldir. Kullanıcı verisi varsa conversion matching’i iyileştirmek için kullanılabilir. Ancak ham e-posta veya ham müşteri ID’si gönderilmemelidir. E-posta ve external ID gibi alanlar SHA-256 hash formatında gönderilmelidir.
Örnek:
oaiq("init", {
pixelId: "YOUR_PIXEL_ID",
user: {
email_sha256: "HASHED_EMAIL_VALUE",
external_id_sha256: "HASHED_EXTERNAL_ID",
country: "TR",
city: "istanbul",
zip_code: "34000"
}
});
Burada dikkat edilmesi gerekenler:
- Kullanıcının e-posta adresi açık bir şekilde gönderilmemeli.
- Açık bir şekilde müşteri ID’si gönderilmemeli.
- Hash değerleri lowercase 64 karakter hexadecimal formatında olmalı.
- Kullanıcıdan alınan veri KVKK/GDPR izinleriyle uyumlu işlenmeli.
- Gerekli olmayan kişisel veri gönderilmemeli.
Product view event örneği
Bir kullanıcı ürün detay sayfasını görüntülediğinde contents_viewed event’i gönderilir.
oaiq("measure", "contents_viewed", {
type: "contents",
contents: [
{
id: "SKU12345",
name: "Askılı Midi Boy Yazlık Keten Kadın Elbise",
content_type: "product"
}
]
});
Buradaki id alanı mutlaka product feed’deki ürün ID’siyle aynı olmalıdır. OpenAI product feed tarafında ürün kimliği için kullanılan item_id, dönüşüm event’lerinde gönderilen ürün ID’siyle tutarlı olduğunda ürün bazlı analiz daha sağlıklı hale gelir. Ayrıca kullanıcıya doğru ürünlerin önerilmesini de kolaylaştırır.
Sepete ekleme event örneği
Kullanıcı sepete ürün eklediğinde items_added event’i gönderilir.
oaiq("measure", "items_added", {
type: "contents",
amount: 249900,
currency: "TRY",
contents: [
{
id: "SKU12345",
name: "Askılı Midi Boy Yazlık Keten Kadın Elbise",
content_type: "product",
quantity: 1,
amount: 249900,
currency: "TRY"
}
]
});
OpenAI event yapısında parasal değerler integer olarak ve ISO 4217 minor unit formatında gönderilmelidir. Örneğin 2.499,00 TL için 249900 değeri kullanılabilir.
Checkout started event örneği
Kullanıcı checkout sürecini başlattığında checkout_started event’i gönderilir.
oaiq("measure", "checkout_started", {
type: "contents",
amount: 249900,
currency: "TRY",
contents: [
{
id: "SKU12345",
name: "Askılı Midi Boy Yazlık Keten Kadın Elbise",
content_type: "product",
quantity: 1
}
]
});
Bu event, satın alma öncesindeki en kritik adımdır. Reklam trafiği ürün sayfasına geliyor ama checkout başlamıyorsa sorun ürün fiyatı, stok durumu, varyant seçimi, teslimat bilgisi veya landing page güven sinyallerinde olabilir.
Purchase / order_created event örneği
Satın alma tamamlandığında order_created event’i gönderilir.
Kullanıcı bir ürün satın aldığında çalışması gereken örnek kod:
oaiq(
"measure",
"order_created",
{
type: "contents",
amount: 249900,
currency: "TRY",
contents: [
{
id: "SKU12345",
name: "Askılı Midi Boy Yazlık Keten Kadın Elbise",
content_type: "product",
quantity: 1
}
]
},
{
event_id: "ORDER98765"
}
);
Birden fazla ürün satın alındığında order_created event’i nasıl gönderilmeli?
Bir siparişte birden fazla ürün satın alındığında order_created event’i tek bir sipariş event’i olarak gönderilmeli, satın alınan ürünlerin tamamı contents array’i içinde ayrı ayrı belirtilmelidir.
Bu yapıda siparişin toplam tutarı üst seviyedeki amount alanında, ürün bazlı adet ve tutar bilgileri ise her ürün objesi içinde gönderilebilir. Ürün ID’lerinin product feed’deki item_id değerleriyle eşleşmesi önemlidir.
oaiq(
"measure",
"order_created",
{
type: "contents",
amount: 5197.00,
currency: "TRY",
contents: [
{
id: "SKU12345",
name: "Askılı Midi Boy Yazlık Keten Kadın Elbise",
content_type: "product",
quantity: 1,
amount: 249900,
currency: "TRY"
},
{
id: "SKU67890",
name: "Kadın Hasır Omuz Çantası",
content_type: "product",
quantity: 1,
amount: 189900,
currency: "TRY"
},
{
id: "SKU24680",
name: "Minimal Altın Rengi Küpe",
content_type: "product",
quantity: 2,
amount: 79900,
currency: "TRY"
}
]
},
{
event_id: "ORDER98765"
}
);
Bu örnekte sipariş toplamı 5197.00 olarak gönderilir. OpenAI event yapısında parasal değerler minor unit formatında gönderildiği için bu değer 5.197,00 TL’yi temsil eder. Ürün bazlı amount değerleri de aynı formatta gönderilmelidir.
Burada dikkat edilmesi gereken en önemli nokta, her ürünün contents array’i içinde ayrı bir obje olarak gönderilmesidir. Aynı ürün birden fazla adet satın alındıysa, tek ürün objesi içinde quantity değeri artırılabilir.
Stratejik not: Çok ürünlü siparişlerde ürün ID eşleşmesi daha kritik hale gelir. Siparişteki ürünlerden bazıları product feed’deki
item_idile eşleşmiyorsa, ürün bazlı performans analizi eksik kalabilir. Bu nedenle checkout ve order event’leri kurulurken ürün ID mapping mutlaka test edilmelidir.
event_id, aynı dönüşüm hem Pixel hem Conversions API ile gönderilecekse deduplication için önemlidir. Aynı satın alma için browser tarafında ve server tarafında aynıevent_idkullanılmalıdır.
OpenAI Pixel'de amount değeri nasıl gönderilmeli?
OpenAI Ads pixel'inde event yapısında amount alanı, ürünün ondalıklı fiyatı şeklinde değil, para biriminin en küçük alt birimi üzerinden ve tam sayı olarak gönderilir.
Türk lirasının alt birimi kuruş olduğu için gerçek tutar 100 ile çarpılır.
Örneğin 2.499,00 TL tutarındaki bir ürün veya sipariş şu şekilde gönderilmelidir:
amount: 249900,
currency: "TRY"
Buradaki 249900 değeri 249.900 TL anlamına gelmez. Bu değer 249.900 kuruşu, yani 2.499,00 TL’yi ifade eder.
| Gerçek tutar | OpenAI’ye gönderilecek amount |
|---|---|
| 24,99 TL | 2499 |
| 249,90 TL | 24990 |
| 2.499,00 TL | 249900 |
| 249.900,00 TL | 24990000 |
Doğru kullanım örneği:
oaiq("measure", "order_created", {
type: "contents",
amount: 249900,
currency: "TRY"
});
amount: 2499.00 şeklinde ondalıklı bir değer göndermek yerine, tutarın kuruş karşılığı tam sayı olarak gönderilmelidir.
| Alan | Açıklama |
|---|---|
amount |
Siparişin toplam tutarıdır. Minor unit formatında gönderilmelidir. |
currency |
Sipariş para birimidir. Örneğin TRY, USD, EUR. |
contents |
Siparişteki ürünleri içeren array yapısıdır. |
contents[].id |
Ürün ID’sidir. Product feed’deki item_id ile eşleşmelidir. |
contents[].quantity |
Üründen kaç adet satın alındığını belirtir. |
contents[].amount |
Ürün bazlı tutardır. Minor unit formatında gönderilmelidir. |
event_id |
Siparişe ait benzersiz event ID’sidir. Pixel ve Conversions API birlikte kullanılıyorsa deduplication için aynı değer gönderilmelidir. |
Conversions API nasıl çalışır?
Conversions API, event’lerin doğrudan sunucudan OpenAI’ye gönderilmesini sağlar. Bu yapı özellikle satın alma, lead veya server-side checkout event’leri için daha güvenilir ölçümleme sunabilir. Tüm OpenAI pixel kodunun Conversion API ile gönderilmesinde bir sorun yoktur.
Temel Conversions API request örneği:
curl -X POST "https://bzr.openai.com/v1/events?pid=YOUR_PIXEL_ID" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"validate_only": false,
"events": [
{
"id": "ORDER98765",
"type": "order_created",
"timestamp_ms": 1773892800000,
"source_url": "https://www.example.com/checkout/confirmation",
"action_source": "web",
"user": {
"email_sha256": "HASHED_EMAIL_VALUE",
"external_id_sha256": "HASHED_EXTERNAL_ID",
"country": "TR",
"city": "istanbul",
"zip_code": "34746",
"ip_address": "203.0.113.1",
"user_agent": "Mozilla/5.0"
},
"data": {
"type": "contents",
"amount": 249900,
"currency": "TRY",
"contents": [
{
"id": "SKU12345",
"name": "Askılı Midi Boy Yazlık Keten Kadın Elbise",
"content_type": "product",
"quantity": 1
}
]
}
}
]
}'
Conversions API kullanırken dikkat edilmesi gerekenler:
- Event’ler yalnızca sunucudan gönderilmelidir.
- API key client-side kod içinde kullanılmamalıdır.
timestamp_msdoğru event zamanını göstermelidir.source_url, web event’leri için eklenmelidir.action_sourceweb, mobile_app, offline, physical_store, phone_call, email veya other gibi uygun değerle gönderilmelidir.- User object event bazında gönderilmelidir.
- Aynı event Pixel ile de gönderiliyorsa deduplication için aynı ID kullanılmalıdır.
oppref neden önemli?
OpenAI Pixel, landing page URL’inden oppref değerini yakalayabilir ve bunu first-party cookie’de saklayabilir. Conversions API tarafında ise bu değer otomatik yakalanmaz. Eğer server-side event gönderiyorsanız, mevcut oppref değerini yakalayıp server event ile birlikte göndermek attribution kalitesi açısından önemlidir.
Özellikle headless commerce, Shopify custom checkout, server-side purchase veya backend order confirmation yapılarında bu alan gözden kaçabilir.
Catalog match rate neden bu kurulumda önemli?
OpenAI Ads dönüşüm takibinde yalnızca event göndermek yeterli değildir. Event içindeki ürün ID’leri ile product feed’deki ürün ID’leri tutarlı olmalıdır.
Örneğin product feed’de ürün ID’si şöyleyse:
item_id = SKU12345
Dönüşüm event’inde de aynı ürün için şu ID gönderilmelidir:
{
"id": "SKU12345",
"content_type": "product"
}
Eğer feed’deki item_id ile event’te gönderilen contents[].id farklıysa, ürün eşleşme oranı düşer ya da hiç eşleşmez.
Bu konu genel olarak katalog eşleşme oranı, yani catalog match rate mantığıyla birlikte düşünülmelidir. Ürün ID’lerinin reklam platformu, feed, web sitesi, analytics ve dönüşüm event’leri arasında tutarlı olması performans ölçümleme için kritiktir. Bu konuyu daha detaylı incelemek için Ürün Eşleşme Oranı Nedir? Catalog Match Rate Nasıl İyileştirilir? yazısını okuyabilirsiniz.
Stratejik tavsiye: OpenAI Ads dönüşüm takibine başlamadan önce ürün ID mapping dokümanı çıkarın. Feed
item_id, web product ID, SKU, GA4 item_id ve conversion eventcontents[].idalanlarının aynı ürünü gösterdiğinden emin olun.
Event yapısında ürün ID eşleşmesi nasıl kurulmalı?
E-ticaret markaları için önerilen ID eşleşme yapısı şu şekilde olmalı:
| Sistem / Alan | Önerilen değer |
| Product feed ürün ID’si | item_id = SKU12345 |
| Web sitesi ürün ID’si | SKU12345 |
GA4 item_id |
SKU12345 |
Pixel contents[].id |
SKU12345 |
Conversions API contents[].id |
SKU12345 |
| Sipariş içi ürün ID’si | SKU12345 |
Bu yapı sağlanırsa reklam tıklaması, ürün görüntüleme, sepete ekleme ve satın alma event’leri aynı ürün kimliği üzerinden daha kolay analiz edilebilir.
Custom event ne zaman kullanılmalı?
OpenAI Ads’te standart event’ler mümkün olduğunca öncelikli kullanılmalıdır. Ancak standart event yapısı içinde karşılığı olmayan bir etkinlik ölçülecekse custom event kullanılabilir.
Örnek:
oaiq(
"measure",
"custom",
{ type: "custom" },
{ custom_event_name: "size_guide_opened" }
);
Custom event kullanırken dikkat edilmesi gerekenler:
- Event adı 1-64 karakter arasında olmalıdır.
- Harf, rakam, alt çizgi veya dash içermelidir.
- Standart event adlarıyla aynı olmamalıdır.
- Küçük harfli ve tutarlı isimlendirme tercih edilmelidir.
- Ads Manager’da custom event adı tam olarak eşleşmelidir.
Pixel ve Conversions API kurulumunda sık yapılan hatalar
| Hata | Etkisi |
| Pixel ID’nin yanlış girilmesi | Event’ler doğru hesaba gitmeyebilir |
| Pixel’in tüm sayfalarda yüklenmemesi | Kullanıcı yolculuğu eksik ölçülür |
| Purchase event’inin yalnızca thank you page’de browser-side çalışması | Tarayıcı engelleri nedeniyle event kaybı yaşanabilir |
| API key’in client-side kullanılması | Güvenlik riski oluşturur |
| Pixel ve API için farklı event ID kullanılması | Aynı dönüşüm iki kez sayılabilir |
contents[].id ile feed item_id değerlerinin farklı olması |
Ürün eşleşme kalitesi düşebilir |
| Amount değerinin decimal gönderilmesi | Format hatası oluşabilir |
| Currency alanının eksik olması | Parasal değerler doğru işlenmeyebilir |
| Custom event adının Ads Manager’daki adla eşleşmemesi | Dönüşüm raporda 0 görünebilir |
Server-side event’te oppref değerinin taşınmaması |
Attribution kalitesi düşebilir |
Optifeed bu süreçte nasıl yardımcı olabilir?
Optifeed, e-ticaret markalarının ürün verilerini reklam platformlarına ve AI shopping deneyimlerine uygun hale getirmesine yardımcı olan AI destekli product feed optimizasyon platformudur.
OpenAI Ads dönüşüm takibinde yalnızca Pixel veya Conversions API kurulumu yeterli değildir. Ürün ID’lerinin feed, web sitesi, GA4 ve conversion event’leri arasında tutarlı olması gerekir. Optifeed bu noktada ürün ID mapping, product feed temizliği, fiyat-stok güncelliği, ürün segmentasyonu ve catalog match rate iyileştirme süreçlerinde destek sağlayabilir.
Optifeed ile markalar:
- Product feed'deki
item_idyapısını düzenleyebilir. - Ürün ID’lerini reklam ve analytics event’leriyle uyumlu hale getirebilir.
- Fiyat, stok ve varyant bilgilerinin güncelliğini koruyabilir.
- Ürünleri performans, stok veya kategori sinyallerine göre segmentleyebilir.
- AI shopping ve OpenAI Ads için daha temiz ürün verisi oluşturabilir.
- Catalog match rate problemlerini tespit edip iyileştirebilir.
Dönüşüm takibi ne kadar iyi kurulursa kurulsun, ürün eşleşmesi zayıfsa performans analizi eksik kalır. Bu nedenle ölçümleme kurulumu ile product feed kalitesi birlikte değerlendirilmelidir.
