Select spec version:

Adjust Destination Config Reference

Beta
Complete Rudder CLI reference for the Adjust destination config keys, event token mapping, partner parameters, install attribution, and device mode.
Available Plans
  • free
  • growth
  • enterprise

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: adj
  • definition_version: 1

Sample configuration

yaml
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:
            - marketing

The 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 cloud mode Adjust accepts only track events. In device mode, mobile sources send identify and track.

Connection

app_token

RequiredSecret

Type: 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.

See Where can I find the Adjust app token?.

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 cloud mode only. In device mode, 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 device mode on unity sources, and on ios sources running iOS SDK v2. Other SDKs initialize Adjust without a delay.
  • Values below 0 or above 10 are 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.
yaml
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.
yaml
custom_mappings:
  - from: Order Completed
    to: tf4gm5

See How can I create a new event token in Adjust?.

partner_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’s properties.
  • 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 cloud mode only. In device mode the SDK ignores this list, and sets only anonymousId and userId as partner parameters.
yaml
partner_params_keys:
  - from: revenue
    to: price

See 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: android to android sources, and so on.
  • Applies to device mode on those source types. On ios, iOS SDK v2 ignores it.
  • To record the event in Adjust too, map Install Attributed to an event token in custom_mappings.
yaml
enable_install_attribution_tracking:
  android_kotlin: true
  ios_swift: true

See App install attribution.

Event filtering

Client-side event filtering applies only to sources connected in device mode — 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 other track event is dropped.
  • blacklist — array of event names to drop; every other track event 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 device for react_native.
yaml
connection_mode:
  android: device
  ios: device
  cloud: cloud

Source types

Adjust accepts events from these source types in the mentioned connection modes:

Source typeConnection mode
androidcloud, device
android_kotlincloud, device
ioscloud, device
ios_swiftcloud, device
unitycloud, device
react_nativecloud
fluttercloud, device
cordovacloud
cloudcloud
warehousecloud

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, so shopify is 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, warehouse

The 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:

yaml
config:
  app_token: "{{ .ADJUST_APP_TOKEN }}"
bash
export RUDDER_ADJUST_APP_TOKEN="..."
rudder-cli apply

# or
rudder-cli apply --var-file secrets.vars.yaml

Note that:

  • rudder-cli import writes 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 device mode 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

Questions? Let's figure it out together.

Join the RudderStack Slack community to connect with other users, customers, and the RudderStack team — or reach out for direct support.