OpenAI Ads Dönüşüm Takibi Nasıl Kurulur? Pixel, Conversions API ve Event Yapısı

| Zafer Kavaklı

OpenAI Ads Dönüşüm Takibi Nasıl Kurulur? Pixel, Conversions API ve Event Yapısı

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_id kullanı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:

  1. page_viewed
  2. contents_viewed
  3. items_added
  4. checkout_started
  5. order_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_id ile 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_id kullanı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_ms doğru event zamanını göstermelidir.
  • source_url, web event’leri için eklenmelidir.
  • action_source web, 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 event contents[].id alanları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_id yapı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.

About the author
Zafer Kavaklı - Optifeed

Zafer Kavaklı

Co-Founder at Optifeed

Zafer Kavaklı is co-founder of Woom Digital and Optifeed. He is an experienced digital marketer who has been working in the field since 2012. He started his career as a digital marketing intern at Teknosa and then worked at Modanisa as a digital marketing specialist. After that he worked as digital marketing manager at ebebek. Following these roles, he ventured into entrepreneurship by establishing his own performance marketing agency named Woom Digital. Zafer has embarked on a new business venture in the SaaS sector, creating a product management tool named Optifeed.