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.
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
| Field | Type | Required | Details |
|---|---|---|---|
account_id | string | ✓ | Your Disco-provisioned advertiser account ID |
event_name | string | ✓ | The configured conversion event (e.g. SIGNUP, PURCHASE). Case-insensitive |
click_id | string | ✓ | One of click_id, email, or email_hash is required as a customer identifier |
email | string | Plain-text email of the converting shopper | |
email_hash | string | SHA-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
| Status | Message | Cause |
|---|---|---|
| 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 |
| 422 | Detailed JSON response | Most likely the account_id is missing or incorrect |
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.