Rokt
Datafly Signal sends conversions to Rokt Ads server-to-server through the Rokt Events API, the integration Rokt recommends. The older Conversions API (api.rokt.com/v1/conversions) is deprecated and no longer receives updates.
Why route Rokt 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 what Rokt receives is not filtered by the browser.
- Personal data is hashed before it leaves your infrastructure. Signal normalises and SHA-256 hashes the identifiers inside your own deployment, so the vendor receives match keys, never the raw values.
- Click identifiers are captured and replayed. Signal keeps the click ID first-party when the visitor lands and attaches it to the later conversion.
- One consent decision governs every destination. Rokt 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
Request Events API credentials
Ask your Rokt account manager for an Events API key and secret. They are used for HTTP Basic authentication.
Keep the Rokt click ID
Rokt appends rtid (the Rokt click ID) to the destination URL. Keep it on your landing pages; Signal forwards it as other2 and passbackconversiontrackingid.
Send the customer’s email
Rokt requires an email or its hash on every conversion. Call datafly.identify() with the email at checkout or sign-up; a conversion without one is not sent.
Configure in Signal
Configuration Fields
| Field | Required | Description |
|---|---|---|
account_id | No | Not used by the Rokt Events API, which identifies the account by its API key. Retained so existing configurations still load. |
api_key | Yes | The Events API key from your Rokt account manager. Used as the username in HTTP Basic authentication. |
api_secret | Yes | The Events API secret from your Rokt account manager. Used as the password in HTTP Basic authentication. Keep this secret. |
Management UI Setup
- Go to Integrations > Add Integration > Rokt.
- Choose a preset: Default (
default), Retail (ecommerce), Lead Generation (lead_gen), Subscriptions / SaaS (saas), Insurance (insurance), Travel (travel). - Fill in the fields above and click Save.
Request format
One conversion per request. The visitor (user_identities, user_attributes, ip, device_info) is batch-level, so Signal never merges two visitors’ conversions into one request.
POST https://s2s.us2.mparticle.com/v2/events{
"device_info": {
"http_header_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)"
},
"environment": "production",
"events": [
{
"data": {
"custom_attributes": {
"amount": "259.99",
"confirmationref": "ORD-1001",
"conversiontype": "purchase",
"currency": "GBP"
},
"custom_event_type": "transaction",
"event_name": "conversion",
"source_message_id": "evt-e2-1",
"timestamp_unixtime_ms": 1758500000123
},
"event_type": "custom_event"
}
],
"integration_attributes": {
"1277": {
"passbackconversiontrackingid": "e8335d31-2031-4bff-afec-17ffc1784697"
}
},
"ip": "203.0.113.9",
"user_attributes": {
"firstnamesha256": "81f8f6dde88365f3928796ec7aa53f72820b06db8664f5fe76a7eb13e24546a2",
"lastnamesha256": "799ef92a11af918e3fb741df42934f3b568ed2d93ac1df74f1b8d41a27932a6f",
"mobilesha256": "983c25606b8b0ac842c0bb1b723f3f600de24cd8a792d6e29a7da88d732af0be"
},
"user_identities": {
"customerid": "crm-user-9",
"other": "86e0b9e56c17cc4d12387e1949b85053fbe73bc3ce5a1188713a9d300cc6133d",
"other2": "e8335d31-2031-4bff-afec-17ffc1784697"
}
}Event Mapping
| Signal event | Vendor event | Presets |
|---|---|---|
purchase | purchase | Default, Retail, Insurance, Travel |
sign_up | signup | Default, Retail, Lead Generation, Subscriptions / SaaS |
generate_lead | lead | Default, Lead Generation, Insurance |
trial_started | trial | Subscriptions / SaaS |
subscription_started | subscription | Subscriptions / SaaS |
quote_completed | quote | Insurance |
booking_completed | purchase | Travel |
The vendor event is the conversiontype. Rokt deduplicates on conversiontype plus confirmationref, so use the same values in any Rokt Web SDK integration.
Signal forwards event 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
Email (user_identities.other), phone (user_attributes.mobilesha256, the national number before hashing, as Rokt documents) and first and last name (firstnamesha256, lastnamesha256) are sent only as SHA-256 hashes of the trimmed, lower-cased values. The signed-in user ID is customerid. IP address and user agent are sent unhashed.
Consent
Rokt is an advertising destination and requires marketing consent by default.
Known limitations
- The collector captures
rclidbut notrtid, Rokt’s default landing parameter (#1461); Signal readsrtidfirst and falls back torcliduntil the collector captures it.
Troubleshooting
| Problem | Solution |
|---|---|
| Conversions dropped in Signal | The visitor has no email: Rokt requires one. |
| 401 from Rokt | Use the Events API key and secret, not the old rpub/rsec Conversions API pair. |
Blueprint
The Rokt blueprint version is 0.7.0. It was last reviewed against the vendor’s documentation on 2026-09-22.