Jawaban langsung: Anda dapat mengukur konversiKonversiTindakan yang Anda hitung sebagai hasil, misalnya pesanan terbayar, pendaftaran, atau chat yang menjadi calon pembeli.Buka glosarium ChatGPT Ads dari server saja, tanpa PixelPixelPotongan kode di halaman web yang memberi tahu platform iklan bahwa seseorang membuka halaman atau melakukan tindakan.Apa itu Meta Pixel? di browser. Server menyimpan oppref dari URL landing pageLanding pageHalaman tujuan iklan yang memuat 1 penawaran dan 1 tindakan, tanpa menu yang menarik pengunjung ke tempat lain.Apa itu landing page? dan mengirim setiap aksi bisnis ke Conversions APICAPIJalur server yang mengirim data konversi dari sistem Anda ke platform iklan, tanpa bergantung pada browser pembeli.Apa itu Conversions API (CAPI)?. Aksi bernilai menjadi event standar, dan stage funnelFunnelUrutan tahap yang dilewati calon pembeli, dari mengenal Anda sampai membayar.Buka glosarium menjadi event custom.

Kondisi utama: cara ini berlaku bila server Anda mencatat lead, booking, dan pembayaran, dan bila pengunjung menyetujui pengukuran sesuai hukum. Batas: Pixel ID tetap wajib, dan APIAPIPintu resmi yang dipakai 2 sistem untuk saling mengirim data, tanpa orang menyalin data secara manual.Buka glosarium tidak menangkap oppref sendiri. Event custom tidak dapat menjadi target optimasi.

Kami mengerjakan langkah 1 sampai 4 di akun Ads Manager Rama Digital pada 1 Oktober 2026 dan memasang langkah 5 dan 6 di server kami. Iklan kami belum tayang, jadi tracking terpasang sebelum klik pertama dan atribusiAtribusiCara sebuah sistem menentukan iklan atau channel mana yang mendapat nilai atas 1 penjualan.Klik ramai, sales sepi: masalahnya bisa di tracking baru muncul setelah ada klik. Pixel ID dan API key disamarkan, dan contoh kode memakai <PIXEL-ID> dan <API-KEY>.

Masalah: iklan ChatGPT membawa klik, tetapi pembelian terjadi di tempat lain

OpenAI membuka ChatGPT Ads di Indonesia pada 23 September 2026. Sumber: pengumuman OpenAI tentang ChatGPT Ads di Asia Tenggara dan Taiwan.

Kami membahas cara memilih momen tayang di artikel OpenAI Ads Manager untuk user yang sudah hot. Kami membahas format sponsored agents di artikel sponsored agents.

Pembelian pelanggan sering terjadi di luar halaman web. Pelanggan bertanya lewat chat, menerima invoice, lalu membayar di halaman lain. Pixel di browser tidak melihat langkah-langkah itu.

Tanpa sinyal dari server, Ads Manager hanya menampilkan klik. Kolom konversi tetap 0, dan Anda tidak dapat membandingkan campaign. Masalah yang sama muncul pada iklan WhatsApp, seperti kami bahas di cara tracking iklan CTWA.

Kami menemukan 3 titik putus dalam pengukuran ini:

  • Redirect membuang query string. Pada uji kami, redirect lama di situs kami membuang query string, jadi oppref tidak sampai ke halaman tujuan. Kami memperbaikinya sebelum iklan pertama.
  • Server tidak menyimpan oppref. Dokumentasi OpenAI menulis bahwa API tidak menangkap nilai itu untuk Anda. Sumber: OpenAI Developers: Conversions API.
  • Retry membuat id baru. OpenAI meminta Anda memakai ulang id yang sama saat retry, supaya satu aksi tidak tercatat 2 kali.

Cara kerja pengukuran konversi ChatGPT Ads

Pengukuran memakai 3 objek dan 1 referensi klik. Data source menerima event. Conversion event memilih event yang dihitung sebagai konversi, dan campaign memakai pilihan itu.

Diagram di bawah menunjukkan 7 titik dari klik iklan sampai laporan di Ads Manager.

Diagram 7 titik jalur oppref: klik iklan ChatGPT, landing page dengan oppref, server menyimpan oppref, event bisnis, antrean dan retry, kirim ke bzr.openai.com, dan Ads Manager, dengan kotak titik putus dan 4 hal yang dapat diperiksa
Titik 3 dan 5 rawan putus. Server harus menyimpan oppref di titik 3 sebelum redirect membuangnya. Antrean harus memakai id yang sama di titik 5. Kotak kanan bawah berisi 4 penyebab putus.

Titik 3 dan 5 adalah titik rawan. Server menyimpan oppref di titik 3, dan antrean memakai id yang sama di titik 5.

Data source dan conversion event

Data source adalah penerima event dari situs atau server Anda. Conversion event adalah pengaturan yang memilih satu event dari data source itu sebagai konversi. Campaign memakai conversion event itu untuk laporan.

Mengirim event dan membuat conversion event adalah 2 langkah terpisah. Pengaturan tidak mengirim event. Sumber: OpenAI Developers: Conversion Tracking.

oppref: referensi klik

OpenAI menambahkan parameter oppref di akhir URL landing page. Pixel menyimpan nilai itu di cookie first-party. Sumber: OpenAI Help Center: Conversion Measurement.

Conversions API tidak menangkap oppref. Server Anda menyimpan nilai itu dan mengirimnya apa adanya bersama event. Jangan ubah huruf besar atau kecil, dan jangan potong nilainya.

OpenAI melaporkan konversi bila 4 syarat terpenuhi:

  • Event datang dari data source akun Anda.
  • Event cocok dengan conversion event campaign.
  • Event jatuh di dalam attribution window.
  • Event dapat dihubungkan ke klik.

Conversions API: kirim dari server

Endpoint-nya POST https://bzr.openai.com/v1/events?pid=<PIXEL-ID>. Header Authorization: Bearer <API-KEY> membawa Conversions API key. Body berisi {"events":[...]}.

Satu request menerima sampai 1.000 event. Bila 1 event gagal, seluruh batch gagal. Opsi validate_only: true memeriksa request tanpa menyimpan event.

OpenAI menulis bahwa Conversions API lebih andal daripada Pixel saja, dan meminta Anda mengirim event dari server saja. Ini klaim vendor. Sumber: OpenAI Developers: Conversions API.

Event standar dan event custom

OpenAI mendukung 13 nama event: app_installed, app_opened, appointment_scheduled, checkout_started, contents_viewed, custom, items_added, lead_created, order_created, page_viewed, registration_completed, subscription_created, dan trial_started. Sumber: OpenAI Developers: Supported Events.

Event app_installed dan app_opened hanya tersedia lewat API. Artikel ini tidak memakai keduanya.

Event custom menampung aksi yang tidak punya event standar. Event itu wajib membawa custom_event_name. Kami memakai event custom untuk stage funnel.

Attribution window dan waktu laporan

Click-through window berlaku 7, 14, atau 30 hari. View-through window berlaku 0 atau 1 hari.

OpenAI memakai atribusi last-touch, bukan multi-touch. Sumber: OpenAI Help Center: Measure Results.

Konversi muncul di laporan setelah 24 sampai 48 jam. Event yang tidak cocok dengan conversion event campaign tetap 0 di laporan. OpenAI tidak mengisi ulang data lama.

OpenAI dapat memakai modeled measurement. Jadi angka di Ads Manager dapat berbeda dari jumlah event yang server Anda kirim.

Pixel, Conversions API, atau keduanya

Tabel ini membandingkan 3 jalur pengiriman event. Isi tabel mengikuti dokumentasi OpenAI yang kami baca pada 1 Oktober 2026.

ItemPixel sajaConversions API saja (server-only)Pixel dan Conversions API
Tempat event dikirimBrowser pengunjungServer AndaBrowser dan server
PemasanganPasang kode Pixel di halamanTanpa Pixel di browser. Pixel ID tetap wajibPasang Pixel dan kode server
Penyimpanan opprefPixel menyimpan di cookie first-partyServer Anda menyimpan dan mengirimPixel menyimpan. Server mengirim juga
Aksi di luar browser, seperti pembayaran dan chatTidak terlihatTerlihat bila server mencatatnyaTerlihat bila server mencatatnya
DeduplikasiTidak perluTidak perluWajib: Pixel ID, nama event, dan id harus sama

Sumber: OpenAI Developers: Conversion Tracking. Dokumen itu menulis bahwa setup server-only tetap butuh Pixel ID, tetapi tidak perlu memasang Pixel di browser.

Rekomendasi Rama Digital: pilih server-only bila aksi bernilai terjadi di server atau di luar browser. Pilih Pixel dan Conversions API bersama bila halaman web juga memicu aksi. Pada pilihan kedua, kirim id yang sama dari kedua sisi.

Prasyarat

  • Akun Ads Manager dengan akses ke menu Tools › Conversions.
  • Landing page di domain Anda yang menerima parameter di URL.
  • Server atau Worker yang menyimpan data pengunjung dan menjalankan antrean pengiriman.
  • Tempat penyimpanan secret untuk Conversions API key.
  • 1 identitas uji dengan email dan nomor HP dummy.
  • 1 transaksi uji yang boleh Anda buat dan batalkan.
  • Persetujuan pengunjung untuk pengukuran, bila hukum mewajibkannya.

Langkah 1: Buat data source di Tools › Conversions

Buka Tools › Conversions di Ads Manager. Panel Set up conversion tracking menampilkan langkah pertama, Create a data source (buat sumber data). Buat data source dari halaman itu, lalu isi dialognya.

Hapus teks awal di kolom Pixel Name. Pada uji kami, dialog mengisi nama awal My first pixel. Ketik nama Anda setelah teks itu hilang, misalnya ramadigital.id server.

Pilih tipe Web. Teks Automatic advanced matching menjelaskan bahwa Pixel menormalkan dan meng-hash data pelanggan di browser. Setup server-only tidak memasang Pixel, jadi Anda menghitung hash sendiri di langkah 6.

Dialog Edit pixel di Tools, Conversions dengan nama ramadigital.id server, tipe Web, teks Automatic advanced matching, dan baris data source dengan Pixel ID yang disamarkan
(1) Kolom Pixel Name berisi nama data source. (2) Tombol Create menyetujui Conversion Terms dan membuat data source. (3) Baris data source tampil dengan Pixel ID yang kami samarkan. Nama baris masih menampilkan teks awal selama penyimpanan.

Tombol Create berarti Anda menyetujui Conversion Terms. Baca syaratnya sebelum menekan tombol.

Ads Manager menampilkan pesan Data source created setelah data source jadi. Salin Pixel ID dari baris data source ke konfigurasi server Anda. Artikel ini memakai placeholder <PIXEL-ID>.

Verifikasi: baris data source tampil dengan Pixel ID dan jumlah event 0. Sumber: OpenAI Developers: Conversion Tracking.

Langkah 2: Buat conversion event untuk setiap aksi bisnis

Buka tab Conversion Events di halaman yang sama, lalu pilih Create. Dialog Create custom conversion memiliki 4 bagian. Isi satu dialog untuk setiap aksi bisnis yang ingin Anda ukur.

Dialog Create custom conversion yang masih kosong dengan kolom Data source, Base event, Conversion name, dan Attribution windows bawaan 30 hari klik dan 1 hari tayang
(1) Data source memilih sumber event. (2) Base event memilih event OpenAI yang dihitung. (3) Conversion name memuat maksimal 30 karakter dan tampil di laporan. (4) Attribution windows bawaan: 30 hari klik, 1 hari tayang.

Pilih data source Anda di Data source. Pilih event OpenAI di Base event (event dasar). Ketik nama yang jelas di Conversion name, karena nama itu tampil di laporan dan di pengaturan campaign.

Attribution window bawaan adalah 30 hari untuk klik dan 1 hari untuk tayang. OpenAI mengizinkan click window 7, 14, atau 30 hari. Sumber: OpenAI Help Center: Measure Results.

Dialog Create custom conversion yang terisi: data source ramadigital.id server, Base event Registration completed, dan nama Registration Completed
(1) Data source ramadigital.id server. (2) Base event Registration completed. (3) Conversion name Registration Completed, 22 dari 30 karakter. Window tetap bawaan.

Pada uji kami, kami membuat 4 conversion event: Order Created, Lead Created, Appointment Scheduled, dan Registration Completed. Kami tidak membuat conversion event untuk checkout_started dan untuk event custom pada 1 Oktober 2026. Kami membuat semuanya sebelum event pertama, karena OpenAI tidak mengisi ulang data lama.

Tab Conversion Events dengan 4 conversion event Registration Completed, Appointment Scheduled, Lead Created, dan Order Created, kolom Base event, dan panel Set up conversion tracking dengan langkah 1 dan 2 tercentang
(1) 4 conversion event dengan nama yang jelas. (2) Kolom Base event menampilkan nama event OpenAI. (3) Panel Set up conversion tracking mencentang langkah 1 dan 2. (4) Penghitung menampilkan 4 conversion event.

Dokumentasi API juga menunjukkan conversion event untuk event custom. Pengaturan itu memakai custom_event_name yang sama dengan event yang server Anda kirim. Kami belum membuat pengaturan itu di akun kami.

Verifikasi: penghitung menampilkan jumlah conversion event yang Anda buat, dan panel menandai langkah 1 dan 2. Sumber: OpenAI Developers: Conversion Tracking.

Langkah 3: Pilih event standar atau custom untuk setiap stage

Petakan setiap aksi bisnis dan setiap stage funnel ke 1 event OpenAI. Pakai event standar bila ada yang cocok. Pakai event custom bila tidak ada.

Tabel peta 8 baris: aksi bisnis atau stage funnel, event OpenAI, jenis standar atau custom, dan apakah event itu dapat menjadi target optimasi
Lima aksi bisnis memakai event standar dan dapat menjadi target optimasi. Stage funnel dan quote memakai event custom dan tidak dapat menjadi target optimasi. Page view tidak kami kirim.

Peta di atas adalah peta yang kami pakai. Kami tidak mengirim page view.

Stage funnel chat dan quote menjadi event custom dengan nama stage, misalnya conversing, identified, quoted, invoiced, dan paid. Stage adalah posisi pelanggan di funnel. Event custom membuat posisi itu terbaca di Event Stream dan di laporan.

Aturan nama event custom dari OpenAI:

  • Panjang 1 sampai 64 karakter.
  • Pakai huruf, angka, garis bawah, atau tanda hubung.
  • Mulai dan akhiri dengan huruf atau angka.
  • Jangan pakai nama event standar. API mengubah nama menjadi huruf kecil.

Sumber: OpenAI Developers: Supported Events. Bila stage Anda bernama sama dengan event standar, tambahkan awalan seperti stage_.

Event custom tidak dapat menjadi target optimasi. Campaign Conversions butuh tepat 1 event standar. Sumber: OpenAI Help Center: Conversion-Optimized Campaigns.

Rekomendasi Rama Digital: pilih target optimasi dari event standar yang paling dekat dengan uang dan yang benar-benar terjadi di akun Anda. Bila penjualan terjadi lewat chat, pilih lead_created. Bila pembayaran terjadi online, pilih order_created.

Kami belum menguji apakah event custom dapat menjadi sumber audiens. Periksa menu Audiences di akun Anda sebelum Anda mengandalkan fungsi itu.

Verifikasi: setiap baris peta Anda punya nama event, jenis, dan jawaban ya atau tidak untuk target optimasi.

Langkah 4: Buat Conversions API key dan simpan sebagai secret server

Buka bagian Conversion keys di halaman Conversions, lalu buat key baru. Conversions API key hanya mengautentikasi request ke bzr.openai.com. Sumber: OpenAI Developers: Conversion Tracking.

Ads Manager menampilkan key dengan nilai tersamar di bagian itu. Salin nilai key ke secret server Anda. Pada uji kami, kami menyimpan key sebagai secret Worker, bukan di kode, dan kami tidak menampilkan gambar key di artikel ini.

# Cloudflare Workers: wrangler meminta nilai key di terminal
npx wrangler secret put OPENAI_CAPI_KEY

# Server lain: isi OPENAI_CAPI_KEY dari secret manager, bukan dari berkas di repo

Kirim event dari server saja. Jangan taruh key di browser, di repo, atau di log. Bila pihak lain melihat key, buat key baru dan ganti secret.

Verifikasi: perintah daftar secret menampilkan nama OPENAI_CAPI_KEY tanpa nilainya. Kode server membaca secret itu saat runtime.

Langkah 5: Tangkap oppref dan jaga lewat redirect

Simpan oppref pada kunjungan pertama, sebelum redirect atau form mengubah URL. OpenAI menambahkan nilai itu di akhir URL landing page, dan API tidak menangkapnya untuk Anda. Sumber: OpenAI Developers: Conversions API.

Contoh di bawah menyimpan oppref bersama pengunjung. Nama fungsi dan penyimpanan hanya contoh generik.

// Jalankan di setiap permintaan ke landing page.
export async function recordLanding(request, store) {
  const url = new URL(request.url);
  const oppref = url.searchParams.get('oppref');
  if (!oppref) return;
  // Simpan nilai apa adanya. Jangan ubah, potong, atau ganti huruf.
  await store.saveVisit({
    visitorId: readVisitorId(request),
    oppref: oppref,
    landingPath: url.pathname,
    seenAt: Date.now(),
  });
}

Pada implementasi kami, server menyimpan oppref di baris pengunjung saat kunjungan. Antrean server mengirim event ke OpenAI. Antrean mengirim hanya bila pengunjung menyetujui cookie pemasaran.

Jaga oppref lewat setiap redirect. Redirect yang membuang query string memutus jalur klik. Gunakan redirect yang menyalin seluruh query.

// Redirect yang membawa seluruh query string, termasuk oppref dan UTM.
export function redirectKeepingQuery(request, newPath) {
  const from = new URL(request.url);
  const to = new URL(newPath, from.origin);
  to.search = from.search;
  return Response.redirect(to.toString(), 308);
}

Periksa redirect Anda dengan satu perintah. Ganti domain dengan domain Anda, dan pakai nilai uji, bukan oppref asli.

curl -sI "https://www.example.com/kontak?oppref=UJI123&utm_source=chatgpt" | grep -i "^location"

Baris location harus memuat oppref=UJI123 dan utm_source=chatgpt. Bila salah satu hilang, perbaiki redirect itu sebelum Anda lanjut. Kami menemukan kasus ini di redirect lama kami.

Verifikasi: buka landing page dengan ?oppref=UJI123, lalu periksa bahwa data pengunjung menyimpan UJI123. Nilai uji tidak terhubung ke klik. Nilai itu hanya membuktikan bahwa server menyimpan dan meneruskan nilai.

Langkah 6: Kirim event dari server dan uji dengan validate_only

Kirim setiap aksi bisnis sebagai satu event lewat POST ke Conversions API. Mulai dengan validate_only: true, karena request validasi tidak muncul di pemantauan event. Sumber: OpenAI Developers: Conversion Tracking.

Contoh request ini memvalidasi 1 event lead_created. Ganti timestamp_ms dengan waktu aksi yang sebenarnya.

curl -X POST "https://bzr.openai.com/v1/events?pid=<PIXEL-ID>" \
  -H "Authorization: Bearer <API-KEY>" \
  -H "Content-Type: application/json" \
  --data '{
    "validate_only": true,
    "events": [
      {
        "id": "lead-L1001",
        "type": "lead_created",
        "timestamp_ms": 1791166800000,
        "oppref": "<OPPREF-DARI-URL>",
        "action_source": "web",
        "source_url": "https://www.example.com/kontak",
        "user": {
          "emails_sha256": ["<SHA-256-HEX>"],
          "phone_numbers_sha256": ["<SHA-256-HEX>"]
        },
        "data": { "type": "customer_action" }
      }
    ]
  }'

Aturan field yang paling sering salah:

  • id wajib. Pakai ulang id yang sama saat retry.
  • timestamp_ms berada paling lama 7 hari lalu dan paling jauh 10 menit ke depan.
  • source_url wajib bila action_source adalah web.
  • oppref opsional. Kirim nilainya apa adanya.
  • data.type harus cocok dengan jenis event, seperti tabel di bawah.

Sumber: OpenAI Developers: Conversions API. Tabel ini menunjukkan data untuk event yang kami pakai.

Aksitypecustom_event_namedata
Lead dari form atau chatlead_createdTidak ada{"type":"customer_action"}
Bookingappointment_scheduledTidak ada{"type":"customer_action"}
Pendaftaran newsletterregistration_completedTidak ada{"type":"customer_action"}
Checkout dibukacheckout_startedTidak ada{"type":"contents"}
Invoice lunas Rp1.500.000order_createdTidak ada{"type":"contents","amount":150000000,"currency":"IDR"}
Stage quotedcustomquoted{"type":"custom"}

Hash data pelanggan sebelum Anda mengirimnya. OpenAI meminta SHA-256 dalam format hex huruf kecil.

Email: buang spasi di tepi, lalu huruf kecil. Nomor HP: angka dengan kode negara, tanpa tanda plus dan tanpa nol di depan, misalnya +62 812-3456-7890 menjadi 6281234567890.

Kota, wilayah, kode pos, dan negara dikirim sebagai nilai mentah. Sumber: OpenAI Developers: Conversions API.

Fungsi di bawah membangun event, menghitung hash, dan mengirim batch dengan retry. Fungsi mengulang request hanya untuk kode 429 dan 5xx.

const ENDPOINT = 'https://bzr.openai.com/v1/events';

async function sha256Hex(value) {
  const bytes = new TextEncoder().encode(value);
  const digest = await crypto.subtle.digest('SHA-256', bytes);
  return [...new Uint8Array(digest)].map((b) => b.toString(16).padStart(2, '0')).join('');
}

// Email: buang spasi di tepi, lalu huruf kecil.
const normalizeEmail = (email) => email.trim().toLowerCase();

// HP: angka saja, dengan kode negara, tanpa + dan tanpa nol di depan.
// +62 812-3456-7890 dan 0812-3456-7890 menjadi 6281234567890.
function normalizePhone(phone, defaultCountry = '62') {
  const hasPlus = phone.trim().startsWith('+');
  let digits = phone.replace(/\D/g, '');
  if (!hasPlus && digits.startsWith('0')) digits = defaultCountry + digits.replace(/^0+/, '');
  return digits.replace(/^0+/, '');
}

async function buildEvent(action) {
  const user = {};
  if (action.email) user.emails_sha256 = [await sha256Hex(normalizeEmail(action.email))];
  if (action.phone) user.phone_numbers_sha256 = [await sha256Hex(normalizePhone(action.phone))];
  const event = {
    id: action.id, // id stabil dari baris aksi Anda, bukan angka acak
    type: action.type,
    timestamp_ms: action.occurredAtMs,
    action_source: 'web',
    source_url: action.sourceUrl,
    data: action.data,
  };
  if (action.oppref) event.oppref = action.oppref;
  if (action.customEventName) event.custom_event_name = action.customEventName;
  if (Object.keys(user).length) event.user = user;
  return event;
}

async function sendEvents({ pixelId, apiKey, events, validateOnly = false }) {
  const url = ENDPOINT + '?pid=' + encodeURIComponent(pixelId);
  const body = JSON.stringify({ validate_only: validateOnly, events });
  for (let attempt = 1; attempt <= 4; attempt += 1) {
    let response;
    try {
      response = await fetch(url, {
        method: 'POST',
        headers: { Authorization: 'Bearer ' + apiKey, 'Content-Type': 'application/json' },
        body, // body yang sama di setiap percobaan, jadi id event tetap sama
      });
    } catch {
      response = null; // kegagalan jaringan: ulangi
    }
    if (response && response.ok) return;
    const retryable = !response || response.status === 429 || response.status >= 500;
    if (!retryable || attempt === 4) {
      throw new Error('Event ditolak: ' + (response ? response.status + ' ' + (await response.text()) : 'tanpa respons'));
    }
    await new Promise((resolve) => setTimeout(resolve, 500 * 2 ** attempt));
  }
}

Pegang 4 aturan ini di antrean Anda:

  • Tulis event ke penyimpanan sebelum Anda mengirimnya.
  • Pakai id dari baris aksi, bukan angka acak.
  • Buang event yang berumur lebih dari 7 hari, karena API menolaknya.
  • Kirim batch yang aman untuk diulang, karena 1 event gagal membuat seluruh batch gagal.

Kirim nilai uang sebagai bilangan bulat dalam satuan minor mata uang, dan kirim currency bersama amount. Menurut ISO 4217, IDR memiliki 2 desimal. Jadi Rp1.500.000 menjadi amount 150000000 dengan currency IDR.

Dokumentasi OpenAI tidak menyebut IDR. Ini temuan kami, bukan fakta resmi. Kirim 1 transaksi uji, lalu periksa kolom Order Created Sales setelah 24 sampai 48 jam.

Verifikasi: request validate_only menjawab sukses untuk setiap jenis event di tabel. Setelah itu, kirim 1 event uji dengan validate_only: false.

Langkah 7: Verifikasi di Diagnostics dan Event Stream

Buka tab Diagnostics sebelum Anda mengirim event pertama. Tab itu menampilkan 3 peringatan pada akun kami:

  • No active campaigns use conversion events
  • No recent server-to-server events
  • No recent conversion events
Tab Diagnostics dengan 3 peringatan sebelum event pertama: tidak ada campaign aktif yang memakai conversion event, tidak ada event server-to-server baru, dan tidak ada conversion event baru
(1) Tidak ada campaign aktif yang memakai conversion event. (2) Tidak ada event server-to-server dalam 24 jam UTC terakhir. (3) Tidak ada conversion event baru untuk data source. Ini keadaan sebelum event pertama.

Peringatan kedua menghitung 24 jam UTC penuh. Kirim event uji dari langkah 6, lalu buka tab Event Stream. Periksa peringatan itu lagi setelah event pertama masuk.

Event Stream menampilkan event terbaru. Endpoint pemantauan OpenAI mengembalikan sampel event dari sekitar 15 menit terakhir, jadi periksa segera setelah Anda mengirim.

Event dari browser memakai channel pixel_sdk, dan event dari server memakai server_to_server. Sumber: OpenAI Developers: Conversion Tracking.

Pastikan data source di baris itu adalah data source yang Anda buat di langkah 1.

Event Stream membuktikan bahwa event sampai. Event Stream tidak membuktikan atribusi. OpenAI melaporkan konversi hanya bila event cocok dengan conversion event campaign dan terhubung ke klik.

Verifikasi: Event Stream menampilkan event uji dengan channel server_to_server dalam 15 menit setelah Anda mengirimnya.

Langkah 8: Hubungkan conversion event ke campaign

Hubungkan conversion event ke campaign supaya Ads Manager melaporkan hasilnya. Panel Set up conversion tracking menampilkan langkah 4, Link event to a campaign (hubungkan event ke campaign). Pilih campaign dan conversion event yang ingin Anda pantau.

Aturan dari OpenAI untuk langkah ini:

  • Campaign Clicks atau ImpressionsImpresiJumlah kali iklan atau halaman Anda tampil di layar orang. Impresi bukan jumlah orang dan bukan jumlah pencarian.Buka glosarium dapat memantau konversi tanpa mengganti objective.
  • Campaign Conversions butuh tepat 1 conversion event standar yang aktif.
  • Objective campaign tidak dapat diubah setelah campaign jadi.
  • Conversion event pada campaign Conversions tidak dapat diganti setelah campaign jadi.
  • Event custom tidak dapat menjadi target optimasi.

Sumber: OpenAI Developers: Conversion Tracking dan OpenAI Help Center: Conversion-Optimized Campaigns. Billing tetap Clicks atau Impressions. OpenAI tidak menagih per konversi.

Rekomendasi Rama Digital: mulai dengan campaign Clicks dan pasang conversion event untuk memantau. Pilih campaign Conversions setelah Anda yakin event standar mana yang menjadi target, karena Anda tidak dapat mengganti pilihan itu. Aturan ini berlaku bila Anda belum punya data event yang stabil.

Tambahkan parameter URL dinamis OpenAI ke URL iklan, yaitu {campaign_id}, {ad_group_id}, {ad_id}, dan {ad_account_id}. Simpan nilainya bersama oppref, supaya Anda membaca hasil per iklan di penyimpanan Anda sendiri. Sumber: OpenAI Help Center: Measure Results.

Iklan Rama Digital belum tayang pada 1 Oktober 2026. Kami memasang tracking sebelum iklan pertama. Artikel ini tidak melaporkan angka konversi, karena atribusi baru muncul setelah ada klik.

Verifikasi: campaign menampilkan conversion event yang Anda pilih. Setelah ada klik, kolom konversi terisi dalam 24 sampai 48 jam.

Contoh kerja: 1 hari dengan data dummy

Contoh ini adalah simulasi dengan data dummy untuk 1 pengunjung fiktif pada Senin, 5 Oktober 2026. Bisnisnya fiktif, dan angkanya bukan hasil pelanggan. Waktu memakai WIB.

WaktuKejadianYang server catatEvent ke OpenAI
09:10Pengunjung mengeklik iklan dan membuka /kontak?oppref=SIM-A1B2Baris pengunjung baru dengan oppref SIM-A1B2Tidak ada. Page view tidak dikirim
09:12Pengunjung menyetujui cookie pemasaranPersetujuan tercatatTidak ada
09:20Pengunjung mengirim form kontakLead L1001lead_created, id lead-L1001
09:35Chat naik ke stage conversingStage conversingcustom, nama conversing
10:05Pengunjung memberi nomor HPStage identifiedcustom, nama identified
10:40Tim mengirim penawaran Rp1.500.000Quote Q2001custom, nama quoted
11:15Pengunjung memesan jadwal 30 menitBooking B3001appointment_scheduled
11:30Tim menerbitkan invoiceStage invoicedcustom, nama invoiced
11:32Pengunjung membuka halaman bayarCheckout dibukacheckout_started
13:00Pembayaran Rp1.500.000 masukInvoice lunas, stage paidorder_created, amount 150000000 IDR, dan custom nama paid
13:01OpenAI menjawab 503 untuk batch pembayaranAntrean menjadwalkan retryAntrean mengirim ulang batch yang sama dengan id yang sama

Server mengirim 9 event untuk 1 pengunjung. Dari 9 event itu, 3 cocok dengan conversion event yang kami buat: lead_created, appointment_scheduled, dan order_created. Ads Manager melaporkan 3 event itu sebagai konversi bila ada klik yang cocok.

Event checkout_started dan 5 event custom tidak punya conversion event. Event itu tidak menambah kolom konversi. Event itu tetap membantu Anda membaca di stage mana pelanggan berhenti.

Checklist sebelum Anda menaikkan budget

  1. Buat data source dan simpan Pixel ID di konfigurasi server. Pemilik: admin iklan. Bukti: gambar baris data source dengan Pixel ID tersamar.
  2. Buat 1 conversion event untuk setiap aksi yang Anda ukur. Pemilik: admin iklan. Bukti: gambar tab Conversion Events.
  3. Simpan Conversions API key sebagai secret, bukan di repo. Pemilik: developer. Bukti: daftar nama secret tanpa nilai.
  4. Pastikan landing page menyimpan oppref uji dan redirect membawa query. Pemilik: developer. Bukti: baris location dari curl.
  5. Jalankan validate_only untuk setiap jenis event. Pemilik: developer. Bukti: log respons sukses.
  6. Kirim 1 event uji dan lihat di Event Stream dengan channel server_to_server. Pemilik: developer. Bukti: gambar Event Stream.
  7. Uji retry dengan id yang sama. Pemilik: developer. Bukti: log antrean dengan 2 percobaan dan 1 id.
  8. Uji penolakan cookie pemasaran dan pastikan 0 event terkirim. Pemilik: pemilik produk. Bukti: log antrean untuk pengunjung uji.
  9. Buat 1 transaksi uji dan bandingkan kolom Order Created Sales dengan nilai transaksi. Pemilik: admin iklan. Kriteria berhenti: berhenti menaikkan budget bila Event Stream kosong 15 menit setelah event uji, atau bila angka Sales berbeda dari nilai transaksi.

Pertanyaan yang sering muncul

Apakah saya perlu memasang OpenAI Pixel di browser? Tidak untuk setup server-only. Anda tetap butuh Pixel ID dari data source, tetapi OpenAI menulis bahwa Anda tidak perlu memasang Pixel di browser.

Apakah Conversions API menangkap oppref sendiri? Tidak, server Anda harus menyimpan oppref dari URL landing page dan mengirimnya apa adanya bersama event. Pixel menyimpan nilai itu di cookie first-party, tetapi API tidak.

Dapatkah saya mengirim stage funnel sebagai event custom dan mengoptimasi ke stage itu? Anda dapat mengirim stage sebagai event custom, tetapi Anda tidak dapat mengoptimasi ke event custom. Campaign Conversions butuh tepat 1 event standar.

Berapa lama konversi muncul di laporan? Konversi muncul 24 sampai 48 jam setelah event. Event tanpa conversion event yang cocok tetap 0, dan OpenAI tidak mengisi ulang data lama.

Bagaimana cara mengirim nilai rupiah? Kirim bilangan bulat dalam satuan minor bersama currency IDR, misalnya 150000000 untuk Rp1.500.000. Dokumentasi OpenAI tidak menyebut IDR, jadi periksa kolom Order Created Sales setelah 1 transaksi uji.

Bagaimana mencegah event ganda bila saya memakai Pixel dan Conversions API? Pakai Pixel ID, nama event, dan id yang sama di kedua sisi, dan pakai custom_event_name yang sama untuk event custom. OpenAI memakai event pertama yang masuk dan mengabaikan duplikatnya.

Langkah berikutnya

Tracking ini memberi OpenAI sinyal yang dapat Anda periksa. Hasil iklan tetap bergantung pada penawaran, materi iklan, dan kecepatan Anda menjawab chat. Kami tidak menjanjikan angka konversi, karena iklan kami belum tayang.

Pilihan tanpa coding: bila Anda tidak mau repot memasang server sendiri, pakai Konektor. Setup butuh sekitar 5 menit: tempel Pixel ID dan Conversions API key, tes koneksi, lalu pasang template link iklan. Konektor memberi trial gratis 14 hari tanpa kartu kredit, dan langkahnya ada di panduan Hubungkan ChatGPT Ads di Konektor.

Bila Anda ingin setiap klik iklan terhubung ke lead dan pembayaran, layanan Attribution Bridge memasang jalur ini di server Anda. Bila Anda ingin memeriksa kesiapan akun dan landing page lebih dulu, jadwalkan Konsultasi Awal 30 menit.

Sumber