Adjust
This integration is currently in beta. Contact your MetaRouter support team to get started.
What Is Adjust?
Adjust is a mobile measurement and attribution platform that helps app marketers understand where users come from and how they engage after install. It provides tools for tracking installs, sessions, in-app events, and revenue so teams can measure campaign performance, optimize media spend, and share data with advertising partners. Adjust supports attribution, fraud prevention, analytics, and partner integrations to give marketers a unified view of user acquisition and lifecycle performance.
Product Type: Analytics
Integration Type: Starter Kit
Event Source Type: Web & Mobile Web
Event Scope: Full-Funnel Events
Capabilities
- Sends events to Adjust for attribution and reporting
- Initializes user sessions in Adjust to ensure devices are recognized before events are tracked
- Supports custom events so you can measure key user actions across the app journey
- Includes device and app context to improve attribution accuracy and campaign reporting
Considerations
- In our testing, requests above ~20,000 characters in the URL began to fail. While this isn’t a formally documented limit, it may be a practical constraint to consider when using this integration.
- All values must be URL-encoded and arrays pipe-delimited.
- Events are sent one at a time (batching is not supported), and throughput limits may apply depending on your Adjust configuration (for example, ~50–100 events per second).
- Complex lists (for example, product lists) must be manually pipe-delimited.
callback_paramsmust be string key-value pairs; convert non-string values to strings before sending.- Custom fields can be sent under
callback_paramsorpartner_params; they serve different purposes in Adjust reporting and partner sharing. - The Adjust event endpoint can error with “Device not found” unless the device has been initialized in Adjust (for example, via Adjust SDK or session submission).
- The session endpoint must be enabled in Adjust for apps that require it.
- For the session endpoint,
os_nameshould be normalized toandroidorios. - If customers use Google Ads or Google Marketing Platform and have users located in the EEA, additional consent-related parameters may be required for compliance.
Limitations
- Batching is not supported.
- Adjust throughput limits may apply (for example, ~50–100 events per second depending on configuration).
- Events may be rejected if no recognized device identifier has been initialized in Adjust (for example, “Device not found”).
Starter Kit Setup Guide
1. Gather Credentials
- You will need the following credentials:
2. Add a Adjust Integration
- From the integration library, add a Adjust integration. Then, fill out the Connection Parameters:
| Connection Parameter | Description |
|---|---|
ADJUST_AUTH_TOKEN | Bearer token used to authorize S2S requests (required for session endpoint). |
APP_TOKEN | Adjust app token used to associate S2S requests to the correct app. |
3. Configure Event Mapping
- MetaRouter provides all of the event mappings that Adjust integrations typically require. You may add custom events, parameters, or mappings in accordance with Adjust’s API documentation.
4. Deploy to Pipeline
- In the Pipelines tab, add your Adjust integration.
- Select the correct integration revision
- Click Add Integration to finalize deployment.
Event Mappings
Global
Global mappings will be applied to all events. If your parameter names do not match the Expected Inputs provided, you will need to overwrite the Inputs provided with your own.
| Output Key | Description | Expected Input |
|---|---|---|
s2s Required | String: Indicates server-to-server submission. | Enrichment – 1 |
app_token Required | String: Adjust app token from the dashboard. | Enrichment – $$APP_TOKEN$$ |
ip_address | String: IP address of the user. | context.ip |
created_at_unix | Integer: Event timestamp in seconds since epoch. | Expression – convert RFC3339 timestamp to Unix epoch |
user_agent | String: User agent string. | context.userAgent |
| Mobile Device IDs | Object: Dynamically maps mobile advertising identifiers based on context.device.type. For iOS devices, sets idfv (uppercased) and idfa. For Android devices, sets android_id (lowercased with hyphens removed) and gps_adid. | Expression – sends idfv, idfa, android_id, and gps_adid |
Event Specific
Page
| Output Key | Description | Expected Input |
|---|---|---|
event_token Required | String: Adjust event token from the dashboard. | Enrichment – ADD_EVENT_TOKEN_HERE |
callback_params.url | String: Page URL. | properties.url |
callback_params.path | String: Page path. | properties.path |
callback_params.referrer | String: Referrer URL. | properties.referrer |
callback_params.title | String: Page title. | properties.title |
Product Viewed
| Output Key | Description | Expected Input |
|---|---|---|
event_token Required | String: Adjust event token from the dashboard. | Enrichment – ADD_EVENT_TOKEN_HERE |
callback_params.product_id | String: Product identifier. | properties.product_id |
callback_params.sku | String: Product SKU. | properties.sku |
callback_params.name | String: Product name. | properties.name |
callback_params.category | String: Product category. | properties.category |
callback_params.price | String: Product price. | properties.price |
callback_params.currency | String: ISO currency code. | properties.currency |
Product Added
| Output Key | Description | Expected Input |
|---|---|---|
event_token Required | String: Adjust event token from the dashboard. | Enrichment – ADD_EVENT_TOKEN_HERE |
callback_params.product_id | String: Product identifier. | properties.product_id |
callback_params.sku | String: Product SKU. | properties.sku |
callback_params.category | String: Product category. | properties.category |
callback_params.price | String: Product price. | properties.price |
callback_params.quantity | String: Quantity added. | properties.quantity |
callback_params.cart_id | String: Cart identifier. | properties.cart_id |
callback_params.currency | String: ISO currency code. | properties.currency |
Cart Viewed
| Output Key | Description | Expected Input |
|---|---|---|
event_token Required | String: Adjust event token from the dashboard. | Enrichment – ADD_EVENT_TOKEN_HERE |
callback_params.cart_id | String: Cart identifier. | properties.cart_id |
callback_params.currency | String: ISO currency code. | properties.currency |
callback_params.total | String: Total cart value derived from products. | Expression – sum product values and stringify |
callback_params.products | String: Product identifiers list. | Expression – join sku/product_id values |
Order Completed
| Output Key | Description | Expected Input |
|---|---|---|
event_token Required | String: Adjust event token from the dashboard. | Enrichment – ADD_EVENT_TOKEN_HERE |
revenue | String/Number: Revenue amount for the purchase. | properties.revenue |
currency | String: ISO currency code. | properties.currency |
callback_params.order_id | String: Order identifier. | properties.order_id |
callback_params.checkout_id | String: Checkout identifier. | properties.checkout_id |
callback_params.total | String: Order total. | properties.total |
callback_params.discount | String: Discount amount. | properties.discount |
callback_params.shipping | String: Shipping amount. | properties.shipping |
callback_params.tax | String: Tax amount. | properties.tax |
callback_params.products | String: Product identifiers list. | Expression – join sku/product_id values |
Products Searched
| Output Key | Description | Expected Input |
|---|---|---|
event_token Required | String: Adjust event token from the dashboard. | Enrichment – ADD_EVENT_TOKEN_HERE |
callback_params.query | String: Search query text. | properties.query |
Checkout Started
| Output Key | Description | Expected Input |
|---|---|---|
event_token Required | String: Adjust event token from the dashboard. | Enrichment – ADD_EVENT_TOKEN_HERE |
callback_params.order_id | String: Order identifier. | properties.order_id |
callback_params.currency | String: ISO currency code. | properties.currency |
callback_params.total | String: Total value derived from products. | Expression – sum product values and stringify |
callback_params.products | String: Product identifiers list. | Expression – join sku/product_id values |
Session Started
| Output Key | Description | Expected Input |
|---|---|---|
environment | String: Environment name for the session submission. | Enrichment – production |
app_version | String: App version. | context.app.version |
os_version | String: OS version. | context.os.version |
os_name | String: OS name (normalize to ios/android). | context.os.name |
device_type | String: Device type. | context.device.type |
device_name | String: Device name/model. | context.device.name |
language | String: Two-letter language code derived from locale. | Expression – substring of context.locale |
Required & Recommended Identifiers
These identifiers must be mapped to Adjust in order for successful user matching to occur. Without these IDs, any events sent to Adjust may not be accurately reflected in reporting.
| Attribute | Example | Sync Injector Required? |
|---|---|---|
idfa Recommended | 29DDE430-CE81-4F00-A50C-689595AAD142 | No |
idfv Recommended | 59E27F41-A86B-4560-B585-63161F871C4B | No |
gps_adid Recommended | 660e1d86-6796-463a-be86-897993136018 | No |
android_id Recommended | a1b2c3d4e5f67890 | No |
ip_address Recommended | 203.0.113.10 | No |
user_agent Recommended | Mozilla/5.0 (...) | No |
Integration Validation
To validate the Adjust integration:
- Trigger standard events (e.g., Product Viewed, Product Added, Checkout Started, Order Completed) from your app.
- Confirm that events appear in the Adjust dashboard under Last events for the device.
- Verify that revenue from order events appears in Adjust reporting.
- Confirm that mobile device IDs are visible in the Adjust Testing Console for user tracking.
Expected Results:
- App events successfully populate in the Adjust platform.
- Revenue metrics are reflected in reporting.
- Device identifiers are recognized for user tracking.
Note: Campaign-level metrics (e.g., CTR, ad impressions) require live ad traffic and cannot be validated without active campaigns.
Additional Adjust Documentation
S2S API Overview
S2S Security
Event Endpoint Documentation
Session Endpoint Documentation
Create an S2S Token
S2S Developer Guide
Updated 1 day ago