Viant
Datafly Signal sends online conversions to Viant DSP through the VDP Conversion API, for measurement, reporting and optimisation.
Prerequisites
Request VDP API access
Ask your Viant representative for API access and sign the API agreement. Viant emails the VDP API username and password (separate from your DSP login).
Find your IDs
Note your numeric Account ID and Advertiser ID in Viant DSP.
Configure in Signal
Configuration Fields
| Field | Required | Description |
|---|---|---|
client_id | Yes | The username Viant issued with your VDP API credentials (separate from your Viant DSP login). Used with the password to request an access token from /v1/oauth2/authenticate. |
client_secret | Yes | The password Viant issued with your VDP API credentials. Store securely. |
account_id | Yes | Numeric Viant account ID that owns the conversion data (accountId on every record). |
advertiser_id | Yes | Numeric Viant advertiser ID the conversions are attributed to (the advertisers array on every record). |
Management UI Setup
- Go to Integrations > Add Integration > Viant.
- Choose a preset: Default (
default), Retail (ecommerce), Lead Generation (lead_gen), Insurance (insurance). - Fill in the fields above and click Save.
Request format
POST https://vdp-connect-api.viantinc.com/v1/conversions
[
{
"accountId": 2222,
"advertisers": [
55812
],
"salesData": {
"amount": 259.99,
"channel": "Online",
"conversionEventType": "Purchase",
"conversionTimestamp": "2025-09-22T00:13:20Z",
"currency": "GBP",
"identifiers": [
{
"type": "email_sha256",
"value": "86e0b9e56c17cc4d12387e1949b85053fbe73bc3ce5a1188713a9d300cc6133d"
},
{
"type": "ip",
"value": "203.0.113.9"
}
],
"purchasedItems": [
{
"itemId": "SKU_1",
"price": 120,
"productCategory": "Jackets",
"productName": "Parka",
"quantity": 2
},
{
"itemId": "SKU_2",
"price": 19.99,
"productCategory": "Accessories",
"productName": "Gloves",
"quantity": 1
}
],
"transactionId": "ORD-1001"
}
}
]A JSON array of records {accountId, advertisers, salesData}; salesData carries transactionId, conversionEventType, conversionTimestamp (ISO 8601) and at least one identifier, plus amount, currency and purchasedItems. Up to 10 MB per request.
Event Mapping
| Signal event | Vendor event | Presets |
|---|---|---|
page | PageView | Default, Retail, Lead Generation, Insurance |
view_item | ItemView | Default, Retail |
add_to_cart | AddToCart | Default, Retail |
begin_checkout | InitiateCheckout | Default, Retail |
purchase | Purchase | Default, Retail, Insurance |
generate_lead | Lead | Default, Retail, Lead Generation |
add_payment_info | AddPaymentInfo | Retail |
lead_submitted | Lead | Lead Generation |
sign_up | Lead | Lead Generation |
quote_requested | Lead | Insurance |
quote_completed | Lead | Insurance |
Signal forwards properties the preset does not map unless the integration’s strict output contract is on. Turn on strict_output_contract for this integration so only the documented fields are sent.
Identity
identifiers carries email_sha256 (normalised SHA-256), ip and mobile_id.
Consent
Viant is an advertising destination and requires marketing consent by default.
Troubleshooting
| Problem | Solution |
|---|---|
| 401 on every request | Viant’s token endpoint needs the username and password as HTTP Basic credentials, which Signal cannot send yet (#1450). This integration cannot deliver until then. |
Blueprint
The Viant blueprint version is 0.5.0. It was last reviewed against the vendor’s documentation on 2026-09-22.