Skip to main content

DiscoAds Conversion tracking

Send conversion events to a single unified endpoint. Both GET (postback) and POST (server-side / Web SDK) are supported, authenticated by account_id.

Advertisers can send Disco multiple events, with one designated as the primary conversion event; secondary events can drive secondary optimizations. There must be a persistent identifier across events to ensure accurate attribution.

Endpoint

https://partners.disconetwork.com/advertiser/events/

No API key required — authentication is via account_id, provisioned by your Disco account team. Event names must be configured in Disco's system before they'll fire; share your event-name options with your account team.

Required fields

FieldTypeRequiredDetails
account_idstringYour Disco-provisioned advertiser account ID
event_namestringThe configured conversion event (e.g. SIGNUP, PURCHASE). Case-insensitive
click_idstringOne of click_id, email, or email_hash is required as a customer identifier
emailstringPlain-text email of the converting shopper
email_hashstringSHA-256 hash of the lowercased email

GET — postback URL

Use GET when integrating via postback URL; pass parameters as query strings. Any extra parameters are captured as custom metadata for analytics.

https://partners.disconetwork.com/advertiser/events/?account_id=YOUR_ACCOUNT_ID&event_name=SIGNUP&click_id=dsc_abc123

With event_datetime + custom metadata:

https://partners.disconetwork.com/advertiser/events/?account_id=YOUR_ACCOUNT_ID&event_name=PURCHASE&click_id=dsc_abc123&event_datetime=2026-03-17T12%3A00%3A00Z&sku1=value1&sku2=value2

POST — server-side (JSON)

Send Content-Type: application/json from your backend. Use event_properties for identifiers and custom_metadata for anything else.

{
"event_name": "SIGNUP",
"account_id": "YOUR_ACCOUNT_ID",
"event_properties": {
"click_id": "dsc_abc123",
"email": "shopper@example.com",
"email_hash": "c9b780607...",
"event_datetime": "2026-04-20T17:30:00Z",
"custom_metadata": { "sku1": "SERUM-01", "sku2": "CREAM-02" }
}
}

Web SDK / GTM

Integrating directly on your site or via Google Tag Manager? Both methods send requests from the browser to the Disco Events API. GET is recommended — it works out of the box. Fire the script on your conversion event (e.g. purchase-confirmation page load); in GTM, add either as a Custom HTML tag with the right trigger.

<script>
var url = "https://partners.disconetwork.com/advertiser/events/" +
"?account_id=YOUR_ACCOUNT_ID" +
"&event_name=YOUR_EVENT_NAME" +
"&click_id=YOUR_CLICK_ID";
fetch(url);
</script>
<script>
fetch("https://partners.disconetwork.com/advertiser/events/", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
account_id: "YOUR_ACCOUNT_ID",
event_name: "YOUR_EVENT_NAME",
event_properties: { click_id: "YOUR_CLICK_ID" }
})
});
</script>

Error responses

StatusMessageCause
400"Request missing required properties."Missing a user identifier or custom metadata
400"Events not configured for this account."No event names set up yet — contact your Disco account team
400"event_name not provided on request."The event_name field is missing
400"Event name not configured for account. Options: [...]"The event_name doesn't match a configured event; the response lists valid names
422Detailed JSON responseMost likely the account_id is missing or incorrect
tip

event_name is case-insensitive. Never include PII in custom_metadata. Contact your Disco account team to provision new event_name or account_id values.

Already on Shopify?

The Disco app handles conversion tracking automatically — no code required. Just install and connect your store.

Dig deeper

  • Web SDK — direct and Google Tag Manager setup, step by step.
  • Event API — server-side payloads and identifiers.
  • Field descriptions — every field, type, and example.