OpenAI Ads (ChatGPT) Attribution and CAPI

This article details how to setup OpenAI Ads (ChatGPT) campaigns with Singular's Attribution and Conversions API for mobile app campaigns, PC/Console installs, and Web campaigns.

Overview

Singular's web-to-app attribution solutions empower marketers to run web campaigns that drive app installs across Mobile, PC, and Console platforms. Singular's OpenAI Ads integration supports the web-to-app flows described in our Web to App Guide here .

Add ChatGPT Partner Configuration in Singular

Add ChatGPT Ads Partner Configuration in Singular

  1. Go to Singular > Attribution > Partner Configuration
  2. Click " Add a Partner ", and type and choose " OpenAI Ads (ChatGPT) "
  3. In the dialog, choose your App and App/Website (platform) to configure. Mobile, Web, PC, and Console apps are supported with this integration
  4. Paste in the " Pixel ID " and " Conversions API Key " from your OpenAI Ads Manager . Use the same Pixel ID and Conversions API Key for every platform you configure, rather than a separate one per platform. See Do I need a separate Pixel ID for web and mobile app? below.
    Singular OpenAI Ads (ChatGPT) partner configuration with the Pixel ID and Conversions API Key fields filled in
  5. Optionally configure any additional events to send OpenAI and map them to an "OpenAI Event Name"
    Singular postback configuration mapping revenue and in-app events to OpenAI event names, with Send All and Include Revenue enabled
  6. Click " Save " to finish.
Event Attributes required for "OpenAI Ads (ChatGPT)"

Event attributes required for the "OpenAI Ads (ChatGPT)" integration

To enable the OpenAI Ads (ChatGPT) integration, please implement and send the following case-sensitive event attributes.

Mobile

Send the following event attributes:

  • ehash : The SHA-256 hash of the user's email address after trimming leading and trailing whitespace and converting it to lowercase.
  • external_id_hash (optional): The SHA-256 hash of a stable, pseudonymous customer identifier from your system.
    • If possible, send both ehash and external_id_hash to improve matching. If ehash is not available, send external_id_hash at a minimum.

Web

Send the following event attributes:

  • page_url (required): The full URL of the page where the event occurred (for example, https://shop.example.com/checkout/confirmation ).
  • ehash : The SHA-256 hash of the user's email address after trimming leading and trailing whitespace and converting it to lowercase.
  • external_id_hash (optional): The SHA-256 hash of a stable, pseudonymous customer identifier from your system.
    • page_url is required. For user fields, if possible, send both ehash and external_id_hash to improve matching. If ehash is not available, send external_id_hash at a minimum.
Create Singular Link for "ChatGPT Ads"

Create Singular Link for "ChatGPT Ads"

  1. Go to Singular > Attribution > Manage Links
  2. Select your mobile app from the list of apps on the left
  3. Select "Create Link" -> Link Type "Partner" -> Source Name "OpenAI Ads (ChatGPT)"
  4. Continue through the step-by-step link creation.
  5. Set the redirect destination. This is where the user is sent when they do not have the app installed. The default is your app's store URL. To send those users to your website instead, choose the Web URL option and enter the destination. Web campaigns that convert on your site use this option.
  6. (Optional) Add any additional parameters or macros you need in the Additional Parameters section. Add them here rather than editing the generated link afterwards.
  7. Click "Generate"
  8. Copy the "Click-through Tracking Link" for the next step

The generated link already carries the campaign parameters and the OpenAI Ads dynamic macros. Every parameter is forwarded to the redirect destination, where the Singular Web SDK reads it to attribute the web conversion. A generated link looks like this:

https://yourapp.sng.link/XXXXX/YYYY?_dl=yourapp%3A%2F%2Fmy_default_deeplink&_smtype=3&wpcl={oppref}&wpscid={ad_group_id}&pcid={campaign_id}&_forward_params=1&pscid={ad_group_id}&pcrid={ad_id}&wpcrid={ad_id}&cl={oppref}&wpsrc=ChatGPT%20Web%20CAPI&wpcid={campaign_id}

Do not edit the generated query string. The link carries wpsrc=ChatGPT%20Web%20CAPI, which sets the Source that the OpenAI Ads postback is attached to. If that value is changed, removed, or re-encoded, Singular will not send conversion data to OpenAI and no error is raised. _forward_params=1 must also stay in place, because it is what forwards the parameters to the redirect destination. If you need extra parameters, add them in the Additional Parameters section of the link setup.

Set up your OpenAI Ads (ChatGPT Ads) Campaign

Set up your OpenAI Ads (ChatGPT Ads) Campaign

  1. In OpenAI Ads Manager, create a campaign and continue to the Ad Group step.
  2. Enter the Singular Link created above in the "Default Ad Destination URL":
    OpenAI Ads new campaign ad group settings with a Singular sng.link tracking link entered in Default Ad Destination URL
  3. Leave the macros in the link as they are. OpenAI Ads replaces {campaign_id}, {ad_group_id}, {ad_id} and {oppref} at click time, so the campaign breakdown reaches Singular without any manual substitution.

FAQ

How does Singular report ChatGPT attributions?

Once an attribution is tracked, ChatGPT attributions are reported as follows:

  • Source = "ChatGPT"
  • Tracker Source Name = "ChatGPT"
Where can you find the Pixel ID?
  1. Navigate to the OpenAI Conversions page.
  2. Select " Create ", and choose "Data Source": OpenAI Ads Manager Conversions page with the Create new data source dialog, naming a Web data source Singular Pixel
  3. Once done, copy the new Pixel ID:
    OpenAI Ads Manager Data Source list showing the Singular Pixel entry with its Pixel ID beneath the name
Do I need a separate Pixel ID for web and mobile app?

No. Use one OpenAI Pixel ID per advertiser, brand, or integration-partner destination, not per platform. For Singular, use the same Pixel ID and Conversions API Key for web, iOS, and Android measurement.

Singular sets the platform on each event automatically: action_source: "web" for web events, and action_source: "mobile_app" for iOS and Android events. There is nothing to configure for this.

OpenAI does not currently support native mobile data sources, so there is no app-type data source to create. Create a web data source and use its Pixel ID for every platform you measure.

Multiple Pixel IDs are intended for a different purpose: when the same website measures conversions for more than one advertiser, brand, or integration partner. Platform is not a reason to create a second Pixel ID.

Where can you find the Conversions API Key?
  1. Navigate to the OpenAI Conversions page.
  2. Select " Conversion keys ", and choose "Create new key":
    OpenAI Ads Manager Create New Conversion Key dialog with the name Singular Conversions API Key
  3. Copy your new key to Singular's Partner Configuration:
    OpenAI Ads Manager Save your key dialog showing the generated key with Copy and Download buttons
What data does Singular send via API?
Parameter Details
event_name
  • A standard event or custom event name. This field is automatically mapped to the Singular Event Name. This value is used to assist OpenAI in the deduplication of events. The event_id parameter is also used in deduplication.
action_source
  • Identifies the platform the event came from. Singular sets this automatically: web for web events, and mobile_app for iOS and Android events. This is how web and app events are distinguished on a shared Pixel ID, so no separate mobile Pixel ID is required.
hashed email
  • Optional
  • Hashed email may be passed as a Singular instrumented event attribute "ehash"
  • Hashed email value must be normalized and SHA 256 hashed
hashed external user ID
  • Optional
  • Hashed external ID may be passed as a Singular instrumented event attribute "external_id_hash"
IP address
  • The Client IP Address
user agent
  • The Client User-Agent
For Deduplication of Events (Optional)
event_id
  • Required Parameter for Deduplication
  • Pass the event_id value to Singular in the Event Arguments using an attribute name: " eventId ".
  • The event_id parameter must be added to your events from both the Conversions API and the OpenAI Pixel.
  • The event_id parameter is an identifier that can uniquely distinguish between similar events.
Where do campaign names come from?

The tracking link captures campaign, ad group, and ad IDs, not names. Singular takes the names from the OpenAI Ads Data Connector and matches them to the IDs captured on the link, so your reports show readable names against the clicks and installs.

This is why names are not placed on the link. IDs are stable join keys, so a campaign that is renamed still reports correctly against historical clicks.

Dimension ID captured on the link Name supplied by the Data Connector
Campaign adn_campaign_id adn_campaign_name
Ad group adn_sub_campaign_id adn_sub_campaign_name
Ad / creative adn_creative_id adn_creative_name

Campaign names and cost both come from the Data Connector, so set it up alongside this integration. See OpenAI Ads (ChatGPT) Data Connector.