VideoAmp
Datafly Signal delivers conversion events to VideoAmp server-to-server via the VideoAmp Conversions API. This closes the attribution loop for cross-platform video and CTV campaigns by feeding downstream outcomes (purchases, leads) back into VideoAmp’s measurement stack.
This integration is alpha. VideoAmp does not publish an extensive public Conversions API reference. The blueprint targets the published api.videoamp.com/v1/conversions endpoint with bearer-token auth; field names and the exact payload shape may differ for your VideoAmp account. Verify the endpoint, payload structure, and required identifiers with your VideoAmp rep before going to production.
Prerequisites
Before configuring VideoAmp in Signal you need:
- An active VideoAmp advertiser account.
- Your VideoAmp
advertiser_id(numeric account ID). - A bearer token (
api_token) issued by VideoAmp authorising conversion writes against your advertiser. - Confirmation from VideoAmp that the Conversions API is enabled and the field names below match your account configuration.
Step 1: Request Conversions API Access
Contact your VideoAmp account team and ask them to:
- Enable the Conversions API for your advertiser.
- Issue a long-lived API token (
api_token) scoped to the advertiser. - Confirm the expected payload shape, especially around identity field names (
external_id,email,phone) and event types (conversion,lead).
Configure in Signal
Configuration Fields
| Field | Required | Description |
|---|---|---|
advertiser_id | Yes | Your VideoAmp advertiser ID (numeric). |
api_token | Yes | Bearer token authorising server-side conversion writes. Treat as a secret. |
Management UI Setup
- Go to Integrations > Add Integration > VideoAmp.
- Choose the Retail preset (purchases + leads).
- Enter your
advertiser_idandapi_token. - Select consent categories —
marketingis the default. - Click Save.
Management API Setup
curl -X POST http://localhost:8084/v1/admin/integrations \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"source_id": "src_abc123",
"vendor": "videoamp",
"name": "VideoAmp Production",
"enabled": true,
"config": {
"advertiser_id": "1234567",
"api_token": "va_token_secret_abc123"
},
"consent_categories": ["marketing"]
}'API Endpoint
POST https://api.videoamp.com/v1/conversions
Authorization: Bearer {api_token}The advertiser_id is carried inside the JSON body so a single token can write against multiple advertisers if VideoAmp permits.
Identity Signals
VideoAmp matches server conversions back to cross-platform video exposures using:
| Signal | Field | Description |
|---|---|---|
external_id | top-level | Datafly anonymous_id — stable cross-session identifier. |
email | top-level | SHA-256 hashed, lowercased email when supplied via datafly.identify(). |
phone | top-level | SHA-256 hashed phone (E.164) when supplied via datafly.identify(). |
ip | top-level | Visitor IP forwarded from the original browser request. |
user_agent | top-level | Visitor User-Agent forwarded from the original browser request. |
All hashing is performed by Signal before the event leaves your infrastructure — raw PII never reaches VideoAmp.
Event Mapping
Retail preset
| Signal event | VideoAmp event |
|---|---|
Order Completed | conversion |
Lead Submitted | lead |
To customise, edit the integration’s Field Mappings in the Management UI.
Example: Purchase Event
Datafly.js call:
datafly.track("Order Completed", {
order_id: "ORD-001",
revenue: 129.99,
currency: "USD",
email: "jane.doe@example.com"
});VideoAmp payload sent by Signal:
{
"event": "conversion",
"advertiser_id": "1234567",
"external_id": "anon_abc123def456",
"email": "0d8af753a8a1bd2... (sha256)",
"ip": "203.0.113.50",
"user_agent": "Mozilla/5.0 ...",
"transaction_id": "ORD-001",
"value": 129.99,
"currency": "USD"
}Testing Your Integration
- Configure the integration in a non-production source first.
- Trigger the configured conversion events on your site.
- Share a sample payload (capturable via Signal’s event preview) with your VideoAmp rep and confirm they’re seeing the events against the right advertiser.
- Once verified end-to-end, promote the configuration to production.
Troubleshooting
| Problem | Solution |
|---|---|
| 401 / 403 responses | The api_token is invalid, expired, or scoped to a different advertiser. Re-issue via your VideoAmp rep. |
| 400 Bad Request | Field names in the payload may not match your account’s expectations. Capture a request from Signal’s preview tool and share with VideoAmp support. |
| Conversions arriving but not closing the attribution loop | Increase identity coverage: pass email and phone via datafly.identify() so VideoAmp can match against household-level exposures. |
Rate Limits
VideoAmp does not publish a public rate-limit number. Signal will retry on 429 / 5xx with exponential backoff.