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 | conditional | Provide click_id, email, or email_hash. At least one customer identifier is required. click_id gives the most precise attribution |
email | string | conditional | Plain-text email of the converting shopper (alternative identifier to click_id) |
email_hash | string | conditional | SHA-256 hash of the lowercased email (alternative identifier to click_id) |
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 because 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.