Adjust
Send server-to-server (S2S) events to Adjust for mobile measurement and attribution analytics. Zeotap syncs event data from your warehouse directly to the Adjust S2S API, enabling offline conversion tracking, revenue reporting, and custom event attribution.
Prerequisites
- An Adjust account with an active app
- Your Adjust App Token (found in your app settings)
- An Event Token for the event you want to track (created in the Adjust dashboard)
- An S2S Authentication Token with the Events scope (generated under Protection > S2S Security)
Authentication
Adjust uses S2S Security Token authentication for server-to-server requests.
- In the Adjust dashboard, navigate to Protection > S2S Security
- Enable S2S authentication if not already active
- Click Generate Token and give it a descriptive name
- Select the Events scope (and optionally Sessions, Ad revenue)
- Copy the generated token
- Enter the token in Zeotap as the S2S Token
Configuration
| Field | Type | Required | Description |
|---|---|---|---|
| App Token | Text | Yes | The Adjust app token identifying your application |
Target Settings
| Field | Type | Required | Description |
|---|---|---|---|
| Event Token | Text | Yes | The Adjust event token for the event you want to track |
Supported Operations
Sync Modes
| Mode | Supported |
|---|---|
| Insert | Yes |
| Upsert | — |
| Update | — |
| Mirror | — |
Adjust is an append-only event tracking API. Only the Insert sync mode is supported because events cannot be updated or deleted after submission.
Audience Sync Modes
Adjust does not support audience or segment membership management. Audience syncs are not available for this destination.
Features
- Field Mapping: Yes
- Schema Introspection: No
Required Mapping Fields
| Field | Description |
|---|---|
| device_id | A device advertising identifier (IDFA, Google Advertising ID, Android ID, etc.) |
Default Destination Fields
| Field | Type | Description |
|---|---|---|
| device_id | string | Device advertising identifier (maps to idfa, gps_adid, or adid depending on device_id_type) |
| device_id_type | string | Type of device identifier: idfa, gps_adid, android_id, idfv, or adid |
| created_at | timestamp | When the event occurred (ISO 8601 or UNIX timestamp) |
| ip_address | string | IPv4 address of the device |
| user_agent | string | Device user agent string |
| revenue | number | Revenue amount in full currency units (minimum 0.001) |
| currency | string | Currency code (e.g. USD, EUR) for revenue events |
| environment | string | sandbox or production (defaults to production) |
| callback_params | json | JSON object of string key-value pairs for raw data exports |
| partner_params | json | JSON object of string key-value pairs shared with network partners |
How It Works
- Zeotap reads rows from your configured model or audience
- Each row is mapped to Adjust S2S event parameters using your field mapping
- The
device_idfield is sent as the appropriate device identifier parameter (idfa,gps_adid,android_id,idfv, oradid) based on thedevice_id_typefield - Events are sent individually via POST to
https://s2s.adjust.com/eventwithapplication/x-www-form-urlencodedcontent type - Each request includes the
app_token,event_token,s2s=1flag, and the Bearer token in the Authorization header - Failed events are retried up to 3 times with exponential backoff
Rate Limits
Adjust does not publish explicit rate limits for the S2S API. Zeotap sends events sequentially to avoid overwhelming the endpoint. If you experience throttling (HTTP 429 responses), Zeotap automatically retries with exponential backoff and respects Retry-After headers.
Best Practices
- Always provide
device_id_typealongsidedevice_idto ensure the correct identifier parameter is used. Without it, the ID defaults toadid(Adjust device ID). - Include timestamps via the
created_atfield to ensure accurate event attribution. Events must be submitted chronologically per device. - Submit events within 58 days of when they occurred. Adjust rejects events older than 58 days.
- Use
sandboxenvironment for testing before switching toproduction. - Map revenue and currency together when tracking revenue events. Both fields are required for revenue attribution.
- Include
ip_addresswhen available for geo-attribution accuracy. Only IPv4 addresses are supported.
Troubleshooting
Events not appearing in Adjust dashboard
Verify your App Token and Event Token are correct. Check that the event token belongs to the app associated with the app token. Events may take a few minutes to appear in the dashboard.
401 Unauthorized errors
Your S2S token is invalid or expired. Generate a new token in the Adjust dashboard under Protection > S2S Security and ensure it has the Events scope enabled.
Missing device identifier errors
Every event requires at least one device identifier. Ensure your field mapping includes device_id and consider providing device_id_type to specify the identifier format.
Revenue not tracked
Both revenue and currency fields must be mapped for revenue events. The revenue value must be at least 0.001 in full currency units (e.g., 1.50 for $1.50, not 150 cents).
Events rejected as too old
Adjust rejects events older than 58 days. Ensure your created_at timestamp is within this window. If not provided, Adjust uses the server receipt time.
Sandbox events appearing in production
Check that the environment field is set to sandbox for test data. If omitted, Adjust defaults to production.