Custom tracking domains
Serve the SDK and receive events from your own subdomain, such as track.yourdomain.com, with one CNAME record and SSL provisioned for you.
On this page · 6 sections
Convultra can serve the tracking SDK and receive events from your own domain, for example track.yourdomain.com. Tracking then runs first-party: the script and every event request come from a hostname you control, so blocklists that target third-party tracking hosts do not match it, and cookies survive Safari’s restrictions.
Custom domains are optional. The defaults, cdn.convultra.com for the SDK and tracking.convultra.com for events, work without any setup. Use a custom domain when you want blocker resilience or need every tracking request to originate from your own domain. For the step-by-step version, see How do I point a subdomain at Convultra?
Benefits
| Benefit | Description |
|---|---|
| First-party tracking | The script and every event request come from your own domain, so browsers treat them as first-party. |
| Blocker resistance | Most ad blockers keep lists of known tracking hosts. Your subdomain is not on them. |
| Safari cookies | First-party requests keep the visitor and session identifiers Safari would otherwise cut short. |
| Nothing to run | One CNAME record. Convultra provisions the SSL certificate and handles the routing. There is no proxy, worker or certificate to manage. |
How it works
Visitor's browser
|
v
track.yourdomain.com (CNAME -> tracking.convultra.com)
|
v
Convultra (serves /v1/ultra.js, receives /v1/track)
- You add the hostname under Settings → Tracking → Custom tracking domains.
- You add one CNAME record at your DNS provider:
track.yourdomain.compointing attracking.convultra.com. - Convultra detects the record and provisions an SSL certificate for the hostname.
- The domain goes Active. The SDK and the tracking endpoint both answer on it.
Each project can have up to 5 custom tracking domains. Add one per site if the project spans, say, a marketing site and an app.
Status
Each domain in the list shows where it is in the process:
| Status | Meaning |
|---|---|
| Add CNAME record | Convultra is waiting for the DNS record. The record to add is shown under the domain, with copy buttons for the name and value. |
| Provisioning SSL | The CNAME has been detected and the certificate is being issued. This usually takes 1 to 2 minutes. |
| Active | Ready. The panel shows the install snippet for that domain, the tracking endpoint, and when the domain last received an event. |
| Error | Setup failed, usually because the record points somewhere other than tracking.convultra.com. The message explains what to fix. Correct the record and click Check Now. |
While a domain is pending, the page re-checks it every 15 seconds for up to 30 minutes and shows Auto-checking. You can also click Check Now at any time.
SDK URL with a custom domain
Once the domain is Active, load the SDK from it:
<script async src="https://track.yourdomain.com/v1/ultra.js" data-convultra-key="YOUR_API_KEY"></script>
The SDK notices which host it was loaded from and sends every event to https://track.yourdomain.com/v1/track instead of tracking.convultra.com. The project key and the rest of the snippet do not change; only the script URL does. The Active domain’s panel shows the complete snippet with the right URL already filled in, so you can copy it from there.
Removing a domain
Click Remove on the domain and type its name to confirm. Tracking on that hostname stops immediately, so update the snippet on any site still loading the script from it first.
Troubleshooting
- Stuck on Add CNAME record. DNS changes can take a while to propagate. Confirm the record exists at your DNS provider with the name
track(or the full hostname, depending on the provider) and the valuetracking.convultra.com, then click Check Now. - Error after adding the record. The most common message is that the hostname does not CNAME to Convultra’s zone. Check the value is exactly
tracking.convultra.com, that you did not add an A record instead, and that nothing else (such as a CDN or proxy in front of your DNS) is answering for the hostname. - Provisioning SSL for more than a few minutes. Click Check Now. If an error is waiting behind the spinner it will show here.
- The SDK does not load. Open
https://track.yourdomain.com/v1/ultra.jsin a browser. You should see the script. If you do not, the domain is not Active yet. - Confirming events arrive. The Active domain’s panel shows when it last received an event. Through the API or MCP server,
get_tracking_healthlists the custom tracking domains that are live.
Custom domains are managed from a desktop browser; on a phone the section is read-only.