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.

⚠️

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.

Why route VideoAmp through Datafly Signal

  • Conversions survive ad blockers and tracking prevention. A browser tag served from an advertising domain is blocked outright for part of your traffic, and Safari’s ITP shortens the cookies it can set. Signal sends the event from your own server, so the conversions VideoAmp optimises against are not filtered by the browser.
  • Email and phone number are hashed before leaving your infrastructure. Signal normalises (trim and lowercase) and applies SHA-256 inside your own deployment, so VideoAmp receives match keys rather than raw personal data.
  • Client IP and user agent are preserved. Server-to-server delivery normally loses both, which weakens matching. Signal forwards the genuine visitor values as request headers so VideoAmp attributes the event to the right session.
  • One consent decision governs every destination. VideoAmp is gated by the same consent state as the rest of your stack, so a withdrawal applies everywhere at once.
  • No vendor tag on the page. Removing it removes its page weight and its independent access to your visitors.

Prerequisites

Before configuring VideoAmp in Signal you need:

  1. An active VideoAmp advertiser account.
  2. Your VideoAmp advertiser_id (numeric account ID).
  3. A bearer token (api_token) issued by VideoAmp authorising conversion writes against your advertiser.
  4. 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

FieldRequiredDescription
advertiser_idYesYour VideoAmp advertiser ID (numeric).
api_tokenYesBearer token authorising server-side conversion writes. Treat as a secret.

Management UI Setup

  1. Go to Integrations > Add Integration > VideoAmp.
  2. Choose the Retail preset (purchases + leads).
  3. Enter your advertiser_id and api_token.
  4. Select consent categories — marketing is the default.
  5. 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:

SignalFieldDescription
external_idtop-levelDatafly anonymous_id — stable cross-session identifier.
emailtop-levelSHA-256 hashed, lowercased email when supplied via datafly.identify().
phonetop-levelSHA-256 hashed phone (E.164) when supplied via datafly.identify().
iptop-levelVisitor IP forwarded from the original browser request.
user_agenttop-levelVisitor 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 eventVideoAmp event
Order Completedconversion
Lead Submittedlead

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

  1. Configure the integration in a non-production source first.
  2. Trigger the configured conversion events on your site.
  3. 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.
  4. Once verified end-to-end, promote the configuration to production.

Troubleshooting

ProblemSolution
401 / 403 responsesThe api_token is invalid, expired, or scoped to a different advertiser. Re-issue via your VideoAmp rep.
400 Bad RequestField 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 loopIncrease 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.