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_params must be string key-value pairs; convert non-string values to strings before sending.
  • Custom fields can be sent under callback_params or partner_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_name should be normalized to android or ios.
  • 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:
    • Adjust Auth Token (S2S token) - See documentation here.
    • Adjust App Token - See documentation here.

2. Add a Adjust Integration

  • From the integration library, add a Adjust integration. Then, fill out the Connection Parameters:
Connection ParameterDescription
ADJUST_AUTH_TOKENBearer token used to authorize S2S requests (required for session endpoint).
APP_TOKENAdjust 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 KeyDescriptionExpected Input
s2s RequiredString: Indicates server-to-server submission.Enrichment – 1
app_token RequiredString: Adjust app token from the dashboard.Enrichment – $$APP_TOKEN$$
ip_addressString: IP address of the user.context.ip
created_at_unixInteger: Event timestamp in seconds since epoch.Expression – convert RFC3339 timestamp to Unix epoch
user_agentString: User agent string.context.userAgent
Mobile Device IDsObject: 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 KeyDescriptionExpected Input
event_token RequiredString: Adjust event token from the dashboard.Enrichment – ADD_EVENT_TOKEN_HERE
callback_params.urlString: Page URL.properties.url
callback_params.pathString: Page path.properties.path
callback_params.referrerString: Referrer URL.properties.referrer
callback_params.titleString: Page title.properties.title

Product Viewed

Output KeyDescriptionExpected Input
event_token RequiredString: Adjust event token from the dashboard.Enrichment – ADD_EVENT_TOKEN_HERE
callback_params.product_idString: Product identifier.properties.product_id
callback_params.skuString: Product SKU.properties.sku
callback_params.nameString: Product name.properties.name
callback_params.categoryString: Product category.properties.category
callback_params.priceString: Product price.properties.price
callback_params.currencyString: ISO currency code.properties.currency

Product Added

Output KeyDescriptionExpected Input
event_token RequiredString: Adjust event token from the dashboard.Enrichment – ADD_EVENT_TOKEN_HERE
callback_params.product_idString: Product identifier.properties.product_id
callback_params.skuString: Product SKU.properties.sku
callback_params.categoryString: Product category.properties.category
callback_params.priceString: Product price.properties.price
callback_params.quantityString: Quantity added.properties.quantity
callback_params.cart_idString: Cart identifier.properties.cart_id
callback_params.currencyString: ISO currency code.properties.currency

Cart Viewed

Output KeyDescriptionExpected Input
event_token RequiredString: Adjust event token from the dashboard.Enrichment – ADD_EVENT_TOKEN_HERE
callback_params.cart_idString: Cart identifier.properties.cart_id
callback_params.currencyString: ISO currency code.properties.currency
callback_params.totalString: Total cart value derived from products.Expression – sum product values and stringify
callback_params.productsString: Product identifiers list.Expression – join sku/product_id values

Order Completed

Output KeyDescriptionExpected Input
event_token RequiredString: Adjust event token from the dashboard.Enrichment – ADD_EVENT_TOKEN_HERE
revenueString/Number: Revenue amount for the purchase.properties.revenue
currencyString: ISO currency code.properties.currency
callback_params.order_idString: Order identifier.properties.order_id
callback_params.checkout_idString: Checkout identifier.properties.checkout_id
callback_params.totalString: Order total.properties.total
callback_params.discountString: Discount amount.properties.discount
callback_params.shippingString: Shipping amount.properties.shipping
callback_params.taxString: Tax amount.properties.tax
callback_params.productsString: Product identifiers list.Expression – join sku/product_id values

Products Searched

Output KeyDescriptionExpected Input
event_token RequiredString: Adjust event token from the dashboard.Enrichment – ADD_EVENT_TOKEN_HERE
callback_params.queryString: Search query text.properties.query

Checkout Started

Output KeyDescriptionExpected Input
event_token RequiredString: Adjust event token from the dashboard.Enrichment – ADD_EVENT_TOKEN_HERE
callback_params.order_idString: Order identifier.properties.order_id
callback_params.currencyString: ISO currency code.properties.currency
callback_params.totalString: Total value derived from products.Expression – sum product values and stringify
callback_params.productsString: Product identifiers list.Expression – join sku/product_id values

Session Started

Output KeyDescriptionExpected Input
environmentString: Environment name for the session submission.Enrichment – production
app_versionString: App version.context.app.version
os_versionString: OS version.context.os.version
os_nameString: OS name (normalize to ios/android).context.os.name
device_typeString: Device type.context.device.type
device_nameString: Device name/model.context.device.name
languageString: 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.

AttributeExampleSync Injector Required?
idfa Recommended29DDE430-CE81-4F00-A50C-689595AAD142No
idfv Recommended59E27F41-A86B-4560-B585-63161F871C4BNo
gps_adid Recommended660e1d86-6796-463a-be86-897993136018No
android_id Recommendeda1b2c3d4e5f67890No
ip_address Recommended203.0.113.10No
user_agent RecommendedMozilla/5.0 (...)No

Integration Validation

To validate the Adjust integration:

  1. Trigger standard events (e.g., Product Viewed, Product Added, Checkout Started, Order Completed) from your app.
  2. Confirm that events appear in the Adjust dashboard under Last events for the device.
  3. Verify that revenue from order events appears in Adjust reporting.
  4. 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