Basis
Datafly Signal delivers conversion events to Basis (Basis Technologies, formerly Centro) server-to-server by firing the Basis DSP conversion pixel directly from your infrastructure. This provides reliable conversion attribution for your programmatic campaigns that is not affected by ad blockers or browser tracking prevention, and removes the client-side Basis pixel from your pages.
Basis is a conversion-attribution surface, not a full-funnel analytics destination. Signal fires the Basis conversion pixel only on the high-value actions you want to attribute to your campaigns (purchases, leads, sign-ups) and drops everything else.
Prerequisites
Before configuring Basis in Signal, you need a Basis DSP account with a conversion pixel created for the action you want to track.
Step 1: Create a Conversion Pixel in Basis DSP
- Sign in to Basis DSP.
- Go to Pixels (under the campaign/measurement area) and create a new Conversion Pixel (or open an existing one).
- Give the pixel a clear name (for example “Purchase” or “Lead”).
- Save the pixel. Basis generates a pixel snippet.
Step 2: Find Your Conversion Pixel ID
Open the pixel snippet. It looks like this:
<img src="https://clickserv.sitescout.com/conv/144188c2bb62a178" width="1" height="1" />The alphanumeric value after /conv/ (here 144188c2bb62a178) is your Conversion Pixel ID. Copy it.
Step 3: Enable Server-Side (Postback) Firing
Confirm with your Basis account team that the conversion pixel is provisioned to accept server-side / postback firing. Signal calls the pixel URL from your server rather than from the browser, so the pixel must be allowed to attribute conversions from a server request.
Configure in Signal
Configuration Fields
| Field | Required | Description |
|---|---|---|
conversion_id | Yes | Your Basis conversion pixel ID — the segment after /conv/ in the pixel URL. |
pixel_id | No | Universal Pixel ID (the segment after /up/). Only needed if you track via a Universal Pixel postback instead of a classic conversion pixel. |
Management UI Setup
Add the integration
Go to Integrations > Add Integration > Basis.
Enter your pixel ID
Enter your conversion_id. Leave pixel_id blank unless you use a Universal Pixel.
Select consent categories
Select the consent category that gates advertising (typically advertising or marketing). Events without marketing consent are dropped before they reach Basis.
Save
Click Save. Signal will begin firing the conversion pixel server-side on the mapped events.
API Endpoint
Signal fires the Basis conversion pixel as an HTTP GET:
GET https://clickserv.sitescout.com/conv/{conversion_id}?transactionId={order_id}&cntr_revenue={revenue}The conversion pixel ID in the URL path is the conversion’s identity — there is no event-name parameter. Each tracked action uses its own conversion pixel.
| Parameter | Description |
|---|---|
{conversion_id} (path) | Your conversion pixel ID. Identifies which conversion is being counted. |
transactionId | The order / transaction ID. Used for reporting and de-duplication. Must be alphanumeric (no symbols). |
cntr_revenue | Dynamic conversion revenue, with no currency symbol (for example 46.12). |
ord | A per-request cache-buster Signal generates automatically so repeat conversions are not collapsed. |
Basis also documents revenue as a trailing path segment (/conv/{conversion_id}/46.12). Signal sends revenue as the cntr_revenue query parameter. If your pixel is configured to read revenue only from the path segment, contact Datafly so we can adjust the delivery format for your pixel.
Identity Signals
Basis matches server-side conversions to a served impression or click using its own bid-side cookies plus the visitor’s IP and User-Agent, which Signal forwards from the original browser request.
| Signal | Sent as | Description |
|---|---|---|
| Visitor IP | X-Forwarded-For header | The visitor’s IP address, forwarded from the original request. |
| User-Agent | User-Agent header | The visitor’s browser User-Agent, forwarded from the original request. |
No PII (email, phone, name) is sent to Basis — the conversion pixel does not accept user-provided match keys. Attribution relies on the forwarded IP and User-Agent plus Basis’s own cookies.
Event Mapping
Default preset
| Signal event | Basis action | Parameters sent |
|---|---|---|
Order Completed | Conversion pixel fire | transactionId (order id), cntr_revenue, cntr_currency |
Lead Generated | Conversion pixel fire | cntr_revenue (if a value is provided) |
Signed Up | Conversion pixel fire | (count only) |
All other events (page, product views, cart events) are dropped — Basis only receives the conversions you choose to attribute.
To customise, edit the integration’s Field Mappings in the Management UI.
Example: Purchase Event
Datafly.js call:
datafly.track("Order Completed", {
order_id: "ORD0012345",
revenue: 46.12,
currency: "USD"
});Conversion pixel request fired by Signal:
GET https://clickserv.sitescout.com/conv/144188c2bb62a178?transactionId=ORD0012345&cntr_revenue=46.12&cntr_currency=USD&ord=8421765
User-Agent: Mozilla/5.0 ...
X-Forwarded-For: 203.0.113.50transactionId must be alphanumeric only (letters and numbers, no symbols). If your order IDs contain hyphens or other punctuation, normalise them before sending — for example send ORD0012345 rather than ORD-001-2345.
Testing Your Integration
Basis does not provide a test-event sandbox for conversion pixels. Validate as follows:
Trigger a conversion
Complete a tracked action (for example a test purchase) on your site so the mapped Signal event fires.
Check Signal’s event debugger
In the Management UI, open the Event Debugger for the Basis integration and confirm the conversion pixel request was sent with a 2xx/302 response and the expected transactionId and cntr_revenue.
Check Basis reporting
In Basis DSP, open the conversion pixel’s reporting. Conversions appear after Basis’s attribution window (typically 24-48 hours). Confirm the count and, if you sent revenue, the attributed revenue.
Troubleshooting
| Problem | Solution |
|---|---|
| Conversions not appearing in Basis | Confirm the conversion_id matches the segment after /conv/ in your pixel snippet. Confirm the pixel is provisioned for server-side / postback firing with your Basis account team. Allow 24-48 hours for the attribution window. |
| Revenue missing or zero | Ensure your Order Completed event sends a numeric revenue with no currency symbol. If your pixel requires path-segment revenue, contact Datafly. |
transactionId rejected or de-dup not working | The transactionId must be alphanumeric with no symbols. Strip hyphens and punctuation from order IDs. |
| Events not firing at all | Check that marketing/advertising consent is granted — Signal drops advertising events without consent before they reach Basis. |
Limitations
- Conversion-only. Basis accepts conversion counts, not full-funnel analytics. Page views and product-browsing events are dropped by design.
- No user-provided match keys. The pixel does not accept hashed email/phone; attribution uses forwarded IP + User-Agent and Basis cookies.
- One conversion per pixel. Each tracked action needs its own Basis conversion pixel ID. Add a separate Signal integration per conversion pixel if you track multiple distinct actions.