Adjust Destination Config Reference
Beta- free
- growth
- enterprise
8 minute read
Adjust is a mobile attribution destination. RudderStack sends track events to Adjust’s server-to-server API from its servers, or loads Adjust’s SDK in the app in device mode on Android, iOS, Unity, and Flutter.
In an Adjust destination spec:
type: adjdefinition_version: 1
Sample configuration
version: rudder/v1
kind: destination
metadata:
name: adjust-prod
spec:
id: adjust-prod
display_name: Adjust Production
type: adj
definition_version: 1
enabled: true
config:
app_token: "{{ .ADJUST_APP_TOKEN }}"
environment: true
custom_mappings:
- from: Order Completed
to: tf4gm5
- from: Install Attributed
to: k2pd7x
partner_params_keys:
- from: revenue
to: price
enable_install_attribution_tracking:
android_kotlin: true
ios_swift: true
event_filtering:
blacklist:
- Application Backgrounded
connection_mode:
android_kotlin: device
ios_swift: device
cloud: cloud
consent_management:
android_kotlin:
- provider: oneTrust
consents:
- marketingThe above example loads Adjust’s SDK in Kotlin and Swift apps in device mode and sends server-side events in cloud mode. environment and partner_params_keys affect only the cloud-mode traffic, and enable_install_attribution_tracking only the device-mode apps — see Install attribution.
Config keys
config accepts only the keys listed below. The shared config key rules cover unknown keys, defaults, and immutability.
Several Adjust keys affect only one connection mode, or only some SDKs. Each key says which. Rudder CLI accepts every key whatever the mode — a key for the other mode is stored and ignored.
In
cloudmode Adjust accepts onlytrackevents. Indevicemode, mobile sources sendidentifyandtrack.
Connection
app_token
RequiredSecretType:
string
Description: Token of your Adjust app, which identifies it to Adjust in both modes. The dashboard calls it APP Token.
Notes:
- At most 100 characters, and must not contain line breaks.
- Templates aren’t accepted in place of a literal; a template is measured as text against the same limit.
Supply it as a {{ .VAR }} reference rather than a literal — see Secrets.
environment
Type:
boolean
Default value:
false
Description:
Send events to Adjust’s production environment. When false — the default — they go to the sandbox environment. The dashboard calls it Send to Production Environment on Adjust.
Notes:
- Applies to
cloudmode only. Indevicemode, the SDK picks sandbox or production from the log level it runs with, and iOS SDK v2 always sends to production.
delay
Type:
string
Description: Delay, in seconds, before Adjust’s SDK initializes in the app. Written as a string. The dashboard calls it Delay Time (in seconds).
Notes:
- Applies to
devicemode onunitysources, and oniossources running iOS SDK v2. Other SDKs initialize Adjust without a delay. - Values below
0or above10are clamped to that range, and a value that isn’t a number means no delay. - At most 100 characters, and must not contain line breaks. Not otherwise validated locally.
- Templates aren’t accepted in place of a literal; a template is measured as text against the same limit.
delay: "5"Event mapping
custom_mappings
Type:
array of objects
Description:
Maps RudderStack event names to Adjust event tokens. Only mapped events reach Adjust: a track event without a mapping isn’t delivered, in either mode. The dashboard calls it Map Events to Adjust Event Tokens.
Notes:
from— RudderStack event name.to— Adjust event token. Create the event token in Adjust before you map to it.- Each is at most 100 characters, or a
{{ path || fallback }}template.
custom_mappings:
- from: Order Completed
to: tf4gm5partner_params_keys
Type:
array of objects
Description:
Maps track event properties to Adjust partner parameters, which Adjust forwards to the partners set up in your Adjust account. Properties without a mapping aren’t sent as partner parameters. The dashboard calls it Rudderstack Parameters to Partner Parameters.
Notes:
from— name of the property in the event’sproperties.to— Adjust partner parameter key. RudderStack sends each value as a string.- Each is at most 100 characters, or a
{{ path || fallback }}template. - Applies to
cloudmode only. Indevicemode the SDK ignores this list, and sets onlyanonymousIdanduserIdas partner parameters.
partner_params_keys:
- from: revenue
to: priceSee Partner parameters and How can I set up new partners in Adjust?.
Install attribution
enable_install_attribution_tracking
Type:
object
Description:
Track an Install Attributed event when Adjust attributes the app install, with Adjust’s tracker, network, campaign, click label, creative, and ad group in its properties. The SDK tracks it like any other event, so it reaches every destination the source is connected to. The dashboard calls it Enable Install Attribution.
Notes:
android,android_kotlin,ios,ios_swift— booleans. Each applies to sources of its own type:androidtoandroidsources, and so on.- Applies to
devicemode on those source types. Onios, iOS SDK v2 ignores it. - To record the event in Adjust too, map
Install Attributedto an event token incustom_mappings.
enable_install_attribution_tracking:
android_kotlin: true
ios_swift: trueEvent filtering
Client-side event filtering applies only to sources connected indevicemode — the dashboard shows these controls only then, and the SDK is what applies the filter. Rudder CLI accepts the block in any mode, but it has no effect on cloud-mode events.
event_filtering
Type:
object
Description:
Restricts which track events the SDK passes to Adjust, by event name.
Notes:
whitelist— array of event names to allow; every othertrackevent is dropped.blacklist— array of event names to drop; every othertrackevent is allowed.- The two are mutually exclusive, and Rudder CLI enforces it — setting both fails validation.
- Each name is at most 100 characters, or a
{{ path || fallback }}template.
Per-source keys
Both keys are objects keyed by the local source type — the tokens listed under Source types. A key naming a source type this destination doesn’t support fails validation.
connection_mode
Type:
object
Description: Maps each source type you connect to the mode its events reach Adjust in, using the modes in Source types.
Notes:
- An entry is required for each source type you connect — see Connect a source.
- A mode the source type doesn’t support on this destination fails validation — for example
deviceforreact_native.
connection_mode:
android: device
ios: device
cloud: cloudconsent_management
Type:
object
Description:
Consent provider configuration per source type. The entry shape, accepted providers, and the rules on resolution_strategy and consents are shared across all destination types — see Consent management.
Source types
Adjust accepts events from these source types in the mentioned connection modes:
| Source type | Connection mode |
|---|---|
android | cloud, device |
android_kotlin | cloud, device |
ios | cloud, device |
ios_swift | cloud, device |
unity | cloud, device |
react_native | cloud |
flutter | cloud, device |
cordova | cloud |
cloud | cloud |
warehouse | cloud |
android, android_kotlin, ios, ios_swift, unity, and flutter offer device mode. react_native and cordova are cloud only. See Adjust device mode.
Adjust doesn’t accept web sources, even in the dashboard.
warehouse is the token a Reverse ETL source resolves to. Rudder CLI manages the destination’s warehouse entry — if the destination is connected to a Reverse ETL source, set connection_mode.warehouse: cloud in its spec, or apply removes it.
Rudder CLI can also declare the Reverse ETL connection itself, for the types listed under Supported destinations — see Manage Reverse ETL Connections using Rudder CLI.
The dashboard additionally offers Adjust to Shopify sources. Rudder CLI doesn’t manage those connections, soshopifyis invalid here.
Connect a source
An event stream connection to this destination is checked against two rules at validate time.
The source’s type must be supported. A source’s type resolves to one of the tokens above before the check — webhook and server-side SDK sources resolve to cloud. A JavaScript source resolves to web, which Adjust doesn’t accept, and reports, for example:
destination 'adjust-prod' (type 'adj') does not support source 'my-web-app':
source type 'web' is not among supported source types: android, android_kotlin, ios, ios_swift, unity, react_native, flutter, cordova, cloud, warehouseThe destination config must carry a connection_mode entry for that source type. This lives on the destination spec, not on the connection spec. Without it:
destination 'adjust-prod' config has no 'connection_mode' entry for source type 'android'Adjust needs no additional config keys to connect a source of any type, in any mode.
Secrets
app_token is the only secret key. Write it as a {{ .VAR }} reference and supply the value at apply time:
config:
app_token: "{{ .ADJUST_APP_TOKEN }}"export RUDDER_ADJUST_APP_TOKEN="..."
rudder-cli apply
# or
rudder-cli apply --var-file secrets.vars.yamlNote that:
rudder-cli importwrites only the secrets the API returns, as{{ .VAR }}references, and leaves the others out. Add any secret key it leaves out, then supply the variables before you apply — see Secrets.- In
devicemode the app token is embedded in the app, so masking it protects your YAML, not the value itself.
See How to Use Variable Substitution in Rudder CLI.
Changes by release
No changes since this type became available.
For changes across every destination type, see Destination Type Changes by Release.
See more
- Adjust Destination for the app token, event tokens, and connection settings
- Adjust Cloud Mode Integration and Adjust Device Mode Integration for how events reach Adjust in each mode
- Destination Type Reference for Rudder CLI for the rules shared across destination types
- Destination YAML Reference for the spec envelope