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

FieldRequiredDescription
client_idYesThe 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_secretYesThe password Viant issued with your VDP API credentials. Store securely.
account_idYesNumeric Viant account ID that owns the conversion data (accountId on every record).
advertiser_idYesNumeric Viant advertiser ID the conversions are attributed to (the advertisers array on every record).

Management UI Setup

  1. Go to Integrations > Add Integration > Viant.
  2. Choose a preset: Default (default), Retail (ecommerce), Lead Generation (lead_gen), Insurance (insurance).
  3. 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 eventVendor eventPresets
pagePageViewDefault, Retail, Lead Generation, Insurance
view_itemItemViewDefault, Retail
add_to_cartAddToCartDefault, Retail
begin_checkoutInitiateCheckoutDefault, Retail
purchasePurchaseDefault, Retail, Insurance
generate_leadLeadDefault, Retail, Lead Generation
add_payment_infoAddPaymentInfoRetail
lead_submittedLeadLead Generation
sign_upLeadLead Generation
quote_requestedLeadInsurance
quote_completedLeadInsurance

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.

Viant is an advertising destination and requires marketing consent by default.

Troubleshooting

ProblemSolution
401 on every requestViant’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.

See also