Adjust
Datafly Signal sends in-app events from the Datafly mobile SDKs to Adjust’s S2S events API (s2s.adjust.com/event) for mobile attribution, with the platform’s device identifiers, revenue and each event’s Adjust event token.
Prerequisites
Enable S2S for your app
Ask Adjust (or your Adjust representative) to enable S2S session measurement for the app, and turn on S2S Security to generate the token Signal sends as Authorization: Bearer.
Create event tokens
In the Adjust dashboard, create an event for each app event you want to count and copy its event token. Adjust counts every request against the token it carries, so give each event its own token.
Send the device identifiers from the app
The Datafly iOS and Android SDKs send the advertising ID (IDFA or Google advertising ID) once the app passes it with setAdvertisingId, and the IDFV on iOS. If your app uses the Adjust SDK, pass its adid with setCollectedId("adjust_adid", ...).
Configure in Signal
Configuration Fields
| Field | Required | Description |
|---|---|---|
app_token | Yes | Your Adjust app token, found in the Adjust dashboard under App Settings. |
event_token | Yes | Adjust event token used for any event that has no token of its own below (Adjust dashboard > your app > Events). Adjust counts every request against the token it carries, so set a token per event for separate event counts. |
s2s_secret | Yes | The server-to-server (S2S) security secret for authenticating server-side API calls. |
environment | Yes | The Adjust environment to send events to. Use sandbox for testing. |
sign_up_event_token | No | Adjust event token for sign_up events (Adjust dashboard > your app > Events). Leave blank to use the Event token. |
login_event_token | No | Adjust event token for login events (Adjust dashboard > your app > Events). Leave blank to use the Event token. |
view_item_event_token | No | Adjust event token for view_item events (Adjust dashboard > your app > Events). Leave blank to use the Event token. |
view_item_list_event_token | No | Adjust event token for view_item_list events (Adjust dashboard > your app > Events). Leave blank to use the Event token. |
search_event_token | No | Adjust event token for search events (Adjust dashboard > your app > Events). Leave blank to use the Event token. |
add_to_cart_event_token | No | Adjust event token for add_to_cart events (Adjust dashboard > your app > Events). Leave blank to use the Event token. |
add_to_wishlist_event_token | No | Adjust event token for add_to_wishlist events (Adjust dashboard > your app > Events). Leave blank to use the Event token. |
begin_checkout_event_token | No | Adjust event token for begin_checkout events (Adjust dashboard > your app > Events). Leave blank to use the Event token. |
add_payment_info_event_token | No | Adjust event token for add_payment_info events (Adjust dashboard > your app > Events). Leave blank to use the Event token. |
purchase_event_token | No | Adjust event token for purchase events (Adjust dashboard > your app > Events). Leave blank to use the Event token. |
generate_lead_event_token | No | Adjust event token for generate_lead events (Adjust dashboard > your app > Events). Leave blank to use the Event token. |
trial_started_event_token | No | Adjust event token for trial_started events (Adjust dashboard > your app > Events). Leave blank to use the Event token. |
subscription_started_event_token | No | Adjust event token for subscription_started events (Adjust dashboard > your app > Events). Leave blank to use the Event token. |
quote_completed_event_token | No | Adjust event token for quote_completed events (Adjust dashboard > your app > Events). Leave blank to use the Event token. |
content_viewed_event_token | No | Adjust event token for content_viewed events (Adjust dashboard > your app > Events). Leave blank to use the Event token. |
Management UI Setup
- Go to Integrations > Add Integration > Adjust.
- Choose a preset: Default (
default), Retail (ecommerce), Travel (travel), Media (media), Insurance (insurance). - Fill in the fields above and click Save.
Request format
A purchase from an iOS app:
POST https://s2s.adjust.com/event
adid=a1b2c3d4e5f60718293a4b5c6d7e8f90&app_token=4w565xzmb54d&att_status=3&callback_params=%7B%22transaction_id%22%3A%22ORD-1001%22%7D&created_at_unix=1758500000¤cy=GBP&device_name=iPhone16%2C2&device_type=mobile&environment=sandbox&event_token=p9rch5&idfa=29DDE430-CE81-4F00-A50C-689595AAD142&idfv=59E27F41-A86B-4560-B585-63161F871C4B&ip_address=203.0.113.9&os_name=ios&os_version=17.5.1&partner_params=%7B%22item_id%22%3A%22%5B%5C%22SKU_1%5C%22%2C%5C%22SKU_2%5C%22%5D%22%7D&revenue=259.99&s2s=1&user_agent=ShopApp%2F5.2+%28iPhone%3B+iOS+17.5.1%29On Android the advertising ID goes to gps_adid with tracking_enabled; idfa, idfv and att_status are iOS only.
Event Mapping
| Signal event | Vendor event | Presets |
|---|---|---|
sign_up | sign_up | Default, Retail, Travel, Media, Insurance |
login | login | Default, Retail, Travel, Media, Insurance |
view_item | view_item | Default, Retail, Travel, Insurance |
search | search | Default, Retail, Travel, Media |
add_to_cart | add_to_cart | Default, Retail |
begin_checkout | begin_checkout | Default, Retail, Travel, Insurance |
purchase | purchase | Default, Retail, Travel, Insurance |
generate_lead | generate_lead | Default, Insurance |
trial_started | trial_started | Default, Media |
subscription_started | subscription_started | Default, Media |
view_item_list | view_item_list | Retail |
add_to_wishlist | add_to_wishlist | Retail |
add_payment_info | add_payment_info | Retail |
booking_completed | booking_completed | Travel |
content_viewed | content_viewed | Media |
quote_completed | quote_completed | Insurance |
Identity
Adjust requires a device identifier on every request. Signal sends idfa and idfv (upper-cased) on iOS, gps_adid (lower-cased) on Android, and adid when the app set the Adjust device ID. os_name (ios or android) comes from the SDK’s device context. Events with no device identifier, including every web event, are not sent. No personal data is sent.
Consent
Adjust has no per-event consent parameter (third-party sharing is a separate Adjust API). Assign a consent category to the integration in Signal to gate delivery. The tracking status is sent as att_status 3 on iOS when the app reported the advertising ID with tracking enabled, and tracking_enabled on Android; the full ATT status is planned.
Troubleshooting
| Problem | Solution |
|---|---|
| Every event counts as the same Adjust event | Set a token per event (for example Purchase event token); events without one use the default Event token. |
| No events arrive | Check the app sends context.device.advertising_id or idfv: events without a device identifier are dropped. |
| 401 or 403 | The S2S Security token is missing or wrong. |
Blueprint
The Adjust blueprint version is 0.5.1. It was last reviewed against the vendor’s documentation on 2026-09-23.