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
oppreftidak 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.

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.
| Item | Pixel saja | Conversions API saja (server-only) | Pixel dan Conversions API |
|---|---|---|---|
| Tempat event dikirim | Browser pengunjung | Server Anda | Browser dan server |
| Pemasangan | Pasang kode Pixel di halaman | Tanpa Pixel di browser. Pixel ID tetap wajib | Pasang Pixel dan kode server |
| Penyimpanan oppref | Pixel menyimpan di cookie first-party | Server Anda menyimpan dan mengirim | Pixel menyimpan. Server mengirim juga |
| Aksi di luar browser, seperti pembayaran dan chat | Tidak terlihat | Terlihat bila server mencatatnya | Terlihat bila server mencatatnya |
| Deduplikasi | Tidak perlu | Tidak perlu | Wajib: 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.

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.

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.

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.

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.

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:
idwajib. Pakai ulang id yang sama saat retry.timestamp_msberada paling lama 7 hari lalu dan paling jauh 10 menit ke depan.source_urlwajib bilaaction_sourceadalahweb.opprefopsional. Kirim nilainya apa adanya.data.typeharus cocok dengan jenis event, seperti tabel di bawah.
Sumber: OpenAI Developers: Conversions API. Tabel ini menunjukkan data untuk event yang kami pakai.
| Aksi | type | custom_event_name | data |
|---|---|---|---|
| Lead dari form atau chat | lead_created | Tidak ada | {"type":"customer_action"} |
| Booking | appointment_scheduled | Tidak ada | {"type":"customer_action"} |
| Pendaftaran newsletter | registration_completed | Tidak ada | {"type":"customer_action"} |
| Checkout dibuka | checkout_started | Tidak ada | {"type":"contents"} |
| Invoice lunas Rp1.500.000 | order_created | Tidak ada | {"type":"contents","amount":150000000,"currency":"IDR"} |
| Stage quoted | custom | quoted | {"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

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.
| Waktu | Kejadian | Yang server catat | Event ke OpenAI |
|---|---|---|---|
| 09:10 | Pengunjung mengeklik iklan dan membuka /kontak?oppref=SIM-A1B2 | Baris pengunjung baru dengan oppref SIM-A1B2 | Tidak ada. Page view tidak dikirim |
| 09:12 | Pengunjung menyetujui cookie pemasaran | Persetujuan tercatat | Tidak ada |
| 09:20 | Pengunjung mengirim form kontak | Lead L1001 | lead_created, id lead-L1001 |
| 09:35 | Chat naik ke stage conversing | Stage conversing | custom, nama conversing |
| 10:05 | Pengunjung memberi nomor HP | Stage identified | custom, nama identified |
| 10:40 | Tim mengirim penawaran Rp1.500.000 | Quote Q2001 | custom, nama quoted |
| 11:15 | Pengunjung memesan jadwal 30 menit | Booking B3001 | appointment_scheduled |
| 11:30 | Tim menerbitkan invoice | Stage invoiced | custom, nama invoiced |
| 11:32 | Pengunjung membuka halaman bayar | Checkout dibuka | checkout_started |
| 13:00 | Pembayaran Rp1.500.000 masuk | Invoice lunas, stage paid | order_created, amount 150000000 IDR, dan custom nama paid |
| 13:01 | OpenAI menjawab 503 untuk batch pembayaran | Antrean menjadwalkan retry | Antrean 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
- Buat data source dan simpan Pixel ID di konfigurasi server. Pemilik: admin iklan. Bukti: gambar baris data source dengan Pixel ID tersamar.
- Buat 1 conversion event untuk setiap aksi yang Anda ukur. Pemilik: admin iklan. Bukti: gambar tab Conversion Events.
- Simpan Conversions API key sebagai secret, bukan di repo. Pemilik: developer. Bukti: daftar nama secret tanpa nilai.
- Pastikan landing page menyimpan
opprefuji dan redirect membawa query. Pemilik: developer. Bukti: barislocationdari curl. - Jalankan
validate_onlyuntuk setiap jenis event. Pemilik: developer. Bukti: log respons sukses. - Kirim 1 event uji dan lihat di Event Stream dengan channel
server_to_server. Pemilik: developer. Bukti: gambar Event Stream. - Uji retry dengan id yang sama. Pemilik: developer. Bukti: log antrean dengan 2 percobaan dan 1 id.
- Uji penolakan cookie pemasaran dan pastikan 0 event terkirim. Pemilik: pemilik produk. Bukti: log antrean untuk pengunjung uji.
- 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
- Konektor: Hubungkan ChatGPT Ads
- OpenAI Developers: Conversions API
- OpenAI Developers: Supported Events
- OpenAI Developers: Conversion Tracking
- OpenAI Help Center: Conversion Measurement
- OpenAI Help Center: Measure Results
- OpenAI Help Center: Conversion-Optimized Campaigns
- OpenAI: ChatGPT Ads expands to Southeast Asia and Taiwan
- ISO: ISO 4217 currency codes


