ChatGPT Ads Tracking Software with Konektor.id
Konektor.id is ChatGPT ads tracking software for businesses that close sales on WhatsApp. A click from a ChatGPT Ads ad through a landing page carries oppref, and each lead status change sends an event to ChatGPT Ads through the Conversions API. Konektor.id sends it after you add the Pixel ID and the Conversions API key from Ads Manager.
From Rp199.000/month. 14-day trial.
What is the problem with tracking ChatGPT ads to WhatsApp?
An ad in ChatGPT sends a person to your page. After that, many businesses move into a conversation. The buyer asks a question on WhatsApp, receives an offer, and pays without opening another page.
A pixel on a website sees only the pages that open. It does not see the chat, and it does not know who paid in the end. Your ad report stops at the click, while the sale happens two days later somewhere else.
OpenAI offers two routes to tell an ad about a result. The first route is the pixel in the browser. The second route is the Conversions API, which sends events from your own server. The OpenAI documentation says that on the server route you must store oppref from the ad click yourself, because the API does not capture it on its own.
That is the part that is hard for a small team. Someone must store the click identifier, match it with the chat, and send an event when the status changes. This page explains that part: what Konektor.id does, and where its limits are.
A made-up example
Imagine a language course called Kursus Contoh. The names and numbers below are made up. Kursus Contoh runs a ChatGPT Ads ad to a landing page for class sign-up.
A prospective student named Budi taps the ad. OpenAI adds oppref to the page address. Budi opens the page, then taps the WhatsApp button. Konektor.id creates a New lead and stores oppref on that lead. ChatGPT Ads receives the event Lead created.
The team answers questions about the schedule, then marks Budi as Qualified. A few days later Budi pays Rp1.200.000. The team changes the status to Closed won and fills in the closing value. ChatGPT Ads receives Purchase together with the value. Kursus Contoh can now judge that ad by the students who paid, not only by clicks.
How does Konektor.id track it?
The path from the ad to the event runs in seven stages.
- A person taps the ChatGPT Ads ad. OpenAI adds oppref to the destination address.
- The tracking script on the landing page stores oppref and the UTM parameters from the Ad link template.
- The script adds the visitor code to the WhatsApp link. A Direct link carries oppref along the same route.
- The WhatsApp Link button is tapped. Konektor.id creates a New lead and stores oppref on that lead.
- A message with the code
[K-XXXX]arrives at your number. The code matches the chat with the same lead. - Your team or an automatic rule changes the lead status. Each change reads the Event for each lead status table.
- Konektor.id sends that event from the server to ChatGPT Ads. The result shows in the Delivery log.
Konektor.id recognizes a lead as a ChatGPT Ads lead from two signs. The first sign is oppref. The second sign is utm_source=chatgpt-ads from the Ad link template. Oppref takes priority over the click identifier of any other platform.
The automatic pixel on the landing page
The option Install the ChatGPT Ads pixel automatically on the landing page makes the Konektor.id tracking code load the OpenAI pixel for you. That pixel records page visits. You do not need to change your site code.
If a visitor refuses the use of ad data, the pixel is switched off and Konektor.id does not pass on the browser reference. Turn this option off if your site already has its own ChatGPT Ads pixel.
The data that goes to ChatGPT Ads
| Data | What it is for | Form when it leaves |
|---|---|---|
oppref | Ties the event to the ad click | As it is, with no change |
| Browser reference | Recognizes the visitor's browser on your site | As it is, only if the visitor did not refuse ad data |
| Email, phone, name, external ID | Helps OpenAI match the person | SHA-256 hash |
| City, region, postal code, country | Extra matching when the lead has them | Plain text, as OpenAI requires |
| IP address and user agent | Extra matching when recorded on the lead | Plain text, as OpenAI requires |
| Event ID | Prevents a double count | One fixed ID for each event |
| Event time | Places the event on the right day | The moment the status changed |
| Value and currency | Counts the value of the sale | The smallest unit of the currency, as OpenAI requires |
Konektor.id sends the data that the lead holds. A lead with no email still goes out with the other data that exists.
A built-in event goes out once for each lead
Konektor.id sends each built-in event once for each lead. For example, Purchase goes out one time for each lead. If the status Closed won happens again, that same row shows Skipped in the Delivery log.
This rule keeps the number of events in ChatGPT Ads in line with the number of leads. An event that you set yourself in the table does not follow this rule.
Strict mode or Send all
Strict mode is the default. It sends the leads that are proven to come from a ChatGPT Ads click. Other leads show Skipped. Send all sends every eligible lead, including those that did not come from an ad click.
The OpenAI Conversions API documentation recommends sending all conversion events, not only those that carry oppref. The choice of strategy stays with you. You set it in Conversions, under Send strategy.
How do you tell a ChatGPT Ads click from a link in a normal ChatGPT answer?
Only a click from an ad counts as an ad. OpenAI adds oppref to an ad click. A link that appears in a normal ChatGPT answer carries no oppref.
For that reason Konektor.id treats the two differently. A visitor from a normal answer link is recorded as organic traffic. Their lead has no ad status, so Strict mode skips it.
| Origin of the click | Sign it carries | Result in Konektor.id |
|---|---|---|
| ChatGPT Ads ad with the Ad link template | oppref and utm_source=chatgpt-ads | ChatGPT Ads lead |
| ChatGPT Ads ad with oppref only | oppref | ChatGPT Ads lead |
| Link in a normal ChatGPT answer | No oppref | Organic traffic |
Put the Ad link template in every ad. An ad that already runs needs a new destination address. Without the template, Konektor.id loses the campaign ID, the ad group, and the ad.
How do you read the result in the Delivery log?
Open Tracking & Ads, then Conversions, then the Delivery log tab. Choose the platform ChatGPT Ads to see only your events.
The result has two layers. The first layer: did ChatGPT Ads receive the event. The status Sent answers it. The second layer: does the report in Ads Manager already show and attribute the conversion. That layer belongs to OpenAI, so the numbers in Ads Manager can differ from the numbers in Konektor.id.
The ChatGPT Ads row in Website Tracking has three statuses. Healthy means real events arrived in the last 7 days. Waiting for events means the connection is right and the first event is still awaited. Issue means delivery is not running, and a note on how to fix it shows below that row.
A few things often appear during a test:
- A test lead with no ad click shows Skipped in Strict mode. Konektor.id runs as you set it.
- The Test send button sends a sample event that does not enter reports. Use it to check the key, not to test the status mapping.
- A failed Test connection means that the Pixel ID and the key come from different data sources, or the key was replaced. Copy both again from the same data source.
How long can an event be sent again?
ChatGPT Ads accepts only events from the last 7 days. Konektor.id skips an older event and refuses to resend it, with the reason written on the button.
Is ChatGPT Ads available in Indonesia?
Konektor.id does not state it. The OpenAI documentation pages that this page rests on hold no list of countries where ads can run. Your Ads Manager account answers that question, not Konektor.id.
If your account can already create a campaign and a data source, the route on this page applies. Konektor.id needs no specific location. It only reads the clicks that arrive through your ad address.
Ad policy
Your ads still follow the OpenAI ad policies. This page does not change those rules. Konektor.id only sends the conversion data that your lead already holds, and it takes no part in deciding whether an ad is approved. The policy link is in the Sources section.
Which events does Konektor.id send to ChatGPT Ads?
| Event | When it is sent |
|---|---|
| Lead created (lead_created) | When a lead reaches the status New, for example when a landing page visitor taps the WhatsApp Link button. The Sales and Leads campaign types use the same event. |
| qualified_lead (custom event) | When the lead status becomes Qualified. This is a custom event: it shows in ChatGPT Ads reports, but it cannot be an optimization goal for a campaign. |
| Checkout started (checkout_started) | When the lead status becomes Proposal. Only the Sales campaign type sends it. The Leads type sends nothing for this status. |
| Purchase (order_created) | When the lead status becomes Closed won. The event carries a value and a currency when Send conversion value is on. |
| No event for other statuses | The statuses Page view, Contacted, Responded, Hot, Negotiation, Invoice sent, and Loss send nothing to ChatGPT Ads in the default mapping. |
| Your own choice of event | In the Event for each lead status table, the ChatGPT Ads column holds other standard events, a Custom event with a name you choose, or Not sent. |
Click identifiers: oppref
What do you need?
- A ChatGPT Ads Manager account with one Web data source. From there you copy the Pixel ID and create a Conversions API key.
- ChatGPT Ads is added in Website Tracking, with a Pixel ID and a Conversions API key that pass Test connection.
- Your ads point to your landing page through the Ad link template. OpenAI adds oppref to the destination address when a person taps the ad.
- The tracking script is installed on the landing page, and the WhatsApp button uses the Direct link of a WhatsApp Link.
- Your business WhatsApp number is linked to Konektor.id, so a chat is matched with the same lead.
- Your team or a rule changes the lead status. That status change triggers the event to ChatGPT Ads.
- The workspace owner role. Only the owner can save the connection and change the conversion settings.
What are the limits?
- Konektor.id sends events only for leads that pass through a landing page or a Direct link. Konektor.id does not read an ad click from a chat that opens without a landing page.
- Konektor.id sends events to ChatGPT Ads after you add the Pixel ID and the Conversions API key. Without both, a lead is still recorded, but no event goes out.
- A ChatGPT Ads row with the status Sent means that ChatGPT Ads answered that it received the event. Konektor.id does not prove the numbers in reports, in Event Stream, or in the optimization goal in Ads Manager.
- ChatGPT Ads accepts only events from the last 7 days. An older event is skipped, and the resend button refuses it.
- A custom event, including the default qualified_lead, cannot be an optimization goal. Choose a standard event for a campaign that optimizes for conversions.
- Strict mode is the default strategy. A lead that is not proven to come from a ChatGPT Ads ad shows Skipped in the Delivery log, including a test lead with no ad click.
- A link inside a normal ChatGPT answer carries no oppref. Konektor.id counts that click as organic traffic, not as an ad.
- Konektor.id sends each built-in event once for each lead. An event that you set yourself does not follow that rule.
- If your site already loads its own ChatGPT Ads pixel, turn off the automatic Konektor.id pixel. Two pixels on one page can count a visit twice.
- Konektor.id does not state that ChatGPT Ads is available in a given country, and it does not promise ad approval, cost per result, or any ad result.
Who is it for, and who is it not for?
Good fit for
- Businesses that run ChatGPT Ads ads to a landing page, then to a WhatsApp button, and close the sale in chat.
- Teams that want a Purchase from a WhatsApp chat to return to ChatGPT Ads as a standard event.
- Owners who want to see leads by campaign and by ad, with the ChatGPT Ads click badge in the lead detail.
Not a fit for
- Businesses that need the result of a chat from an ad with no landing page to return to ChatGPT Ads.
- Businesses that close sales only on a website checkout page, with no WhatsApp conversation.
- Businesses that look for a promised ad result or a guarantee that an ad is approved.
How do you set it up?
Create a data source and a key in Ads Manager
Open ChatGPT Ads Manager, then Tools > Conversions. Click Create data source and choose Web. Copy the Pixel ID, then under Conversion keys click Create new key and save the Conversions API key.
Add ChatGPT Ads in Website Tracking
Open Tracking & Ads > Website Tracking, then click Add ad platform. At Where do your ads appear?, choose ChatGPT Ads.
Paste the credentials and test the connection
At the Paste credentials step, enter the Name, the Pixel ID, and the Conversions API key, then click Test connection. The message Connected. The test event was received and does not appear in reports means the key matches.
Install the tracking code on the landing page
In Website Tracking, click View code, copy the code, then paste it in the head of every landing page. Leave Install the ChatGPT Ads pixel automatically on the landing page on, unless your site already has that pixel.
Create a WhatsApp Link and place the button
Open WhatsApp Links, click Create Link, then add the destination number. Put the Direct link on the landing page button. Do not use a wa.me link.
Copy the Ad link template
In Website Tracking, open Ad link templates and choose the ChatGPT Ads tab. Enter the Landing page, click Copy, then paste the result in the destination link field of every ad in ChatGPT Ads Manager.
Connect your WhatsApp number
Open Connection > Connect WhatsApp and choose the path of your number. After the connection succeeds, a chat from the landing page matches the same lead.
Set the event for each lead status
Open Tracking & Ads > Conversions. Choose a Campaign type, read the ChatGPT Ads column in the Event for each lead status table, choose Strict mode or Send all under Send strategy, then click Save changes.
Choose the conversion event in the campaign
In ChatGPT Ads Manager, open Tools > Conversions and create a conversion event for the same event, for example Purchase. Then choose that event as the goal of your campaign.
Test with one click from an ad
Click your ad, send a message from the WhatsApp button, then change the lead status to Closed won. Open Conversions > Delivery log. A ChatGPT Ads row with the status Sent means that ChatGPT Ads received the event.
How much does it cost?
From Rp199.000/month. 14-day trial.
| Plan | Per month |
|---|---|
| Starter | Rp199.000 |
| Pro | Rp499.000 |
| Enterprise | Rp1.999.000 |
Frequently asked questions
What is ChatGPT ads tracking software for WhatsApp?
It is software that records a WhatsApp chat from a ChatGPT Ads click together with the click identifier, then sends events to ChatGPT Ads as the lead moves forward. Konektor.id does this for ads that point to a landing page with a WhatsApp button.
What is oppref in ChatGPT Ads?
Oppref is the click identifier from OpenAI. OpenAI appends it to the destination address of the ad, and the pixel stores it in a cookie on your own site. Konektor.id stores it on the lead, then passes it on unchanged when it sends an event.
Is ChatGPT Ads available in Indonesia?
Konektor.id cannot confirm it. The OpenAI documentation pages we read hold no country list that names Indonesia. Check availability in the Ads Manager of your own account. Konektor.id only measures ads from an account that is already active.
Which events does Konektor.id send to ChatGPT Ads?
In the default mapping: Lead created for the status New, qualified_lead (custom) for Qualified, Checkout started for Proposal in the Sales type, and Purchase for Closed won. You can change the mapping in Conversions.
Does Konektor.id use the OpenAI Conversions API?
Yes. Konektor.id sends events from the server through the Conversions API. You give the Pixel ID and the Conversions API key from Ads Manager in Website Tracking. The key is stored encrypted, and after you save it only the last 4 characters show.
Is customer data sent as a hash?
Email, phone number, name, and external ID go out as a SHA-256 hash. Oppref, location, IP address, and user agent go out as they are. The browser reference goes out as it is too, but not when the visitor refuses the use of ad data.
Why does my ChatGPT Ads event show Skipped in the Delivery log?
The most common cause: Strict mode is on, and the lead is not proven to come from a ChatGPT Ads ad. Other causes: the event is older than 7 days, or that built-in event was already sent for the same lead.
Can an event count twice if I also install my own ChatGPT Ads pixel?
It can, if both routes send the same visit or event. OpenAI merges pixel and server events only when the Pixel ID, the event name, and the event ID match. Turn off the automatic Konektor.id pixel if you already have your own.
Next steps
Sources
- Conversions API · OpenAI Ads developer documentation · Checked October 14, 2026
- Measurement Pixel · OpenAI Ads developer documentation · Checked October 14, 2026
- Conversion Tracking · OpenAI Ads developer documentation · Checked October 14, 2026
- Supported Events · OpenAI Ads developer documentation · Checked October 14, 2026
- Conversion-optimized Campaigns · OpenAI Ads developer documentation · Checked October 14, 2026
- Ad policies · OpenAI · Checked October 14, 2026
