Adjust is an industry-leading mobile attribution provider that allows you to bring all your business data together to get powerful insights from it.

RudderStack supports Adjust as a destination to which you can seamlessly send your event data.

Find the open source transformer code for this destination in the GitHub repository. You can also refer to the specific repositories for the Android and iOS implementations.

Getting started

Before configuring Adjust as a destination in RudderStack, verify if the source platform is supported by Adjust by referring to the table below:

Connection ModeWebMobileServer
Device mode-Supported-
Cloud modeSupportedSupportedSupported
To learn more about the difference between cloud mode and device mode in RudderStack, refer to the RudderStack Connection Modes guide.

Once you have confirmed that the platform supports sending events to Adjust, follow these steps:

  1. From your RudderStack dashboard, add the source. Then, from the list of destinations, select Adjust.
  2. Assign a name to the destination and click Continue.

Connection settings

To successfully configure Adjust as a destination, you will need to configure the following settings:

Adjust connection settings Adjust connection settings
  • APP Token: Enter your Adjust app token.
For more information on obtaining your Adjust app token, refer to the FAQ section below.
  • Send to Production Environment on Adjust: Enable this setting to send the data to the production environment in Adjust. By default, RudderStack sends the data to the Adjust sandbox environment.
  • Client-side Events Filtering: This setting lets you specify which events should be blocked or allowed to flow through to Adjust.
This setting is applicable only when sending events to Adjust via the device mode. For more information, refer to the Client-side Events Filtering guide.
  • Map events to Adjust Event Tokens: This setting lets you map the RudderStack events to Adjust's event tokens.
For more information on creating an event token in Adjust, refer to the FAQ section below.
  • RudderStack Parameters to Partner Parameters: This setting lets you map your event properties to specific Adjust partner parameters.
  • Delay Time before SDK initialization: This setting is applicable only for sending events via the device mode. You can use it to initiate a delay in loading the SDK for the first time.
For more information on delaying the SDK's first launch, refer to the Adjust documentation.
  • Use device mode to send events: Enable this setting for the Android/iOS SDK to send events to Adjust via the device mode.
Do not add native Adjust SDK to your project as it will prevent you from integrating it successfully.

Adding device mode integration

Follow the below steps to add Adjust to your project depending on your integration platform:

To add Adjust to your iOS project, follow these steps:
  1. Add the following line to your CocoaPods Podfile:
    pod 'Rudder-Adjust'
  2. After adding the dependency, register the RudderAdjustFactory with your RudderClient initialization as a factory of RudderConfig. Run the following command to import RudderAdjustFactory.h file in your AppDelegate.m file:
    #import <Rudder-Adjust/RudderAdjustFactory.h>
  3. Then, change the SDK initialization to the following:
    RudderConfigBuilder *builder = [[RudderConfigBuilder alloc] init];
    [builder withDataPlaneUrl:DATA_PLANE_URL];
    [builder withFactory:[RudderAdjustFactory instance]];
    [RudderClient getInstance:WRITE_KEY config:[builder build]];
This device mode integration is supported for Adjust v4.29.7 and above.
To add Adjust to your iOS project, follow these steps:
  1. Install RudderAdjust (available through CocoaPods) by adding the following line to your Podfile:
    pod 'RudderAdjust', '~> 1.0.0'
  2. Run the pod install command.
  3. Next, import the SDK depending on your preferred platform:
    import RudderAdjust
    @import RudderAdjust;
  4. Add the imports to your AppDelegate file under the didFinishLaunchingWithOptions method, as shown:
    let config: RSConfig = RSConfig(writeKey: WRITE_KEY)
    .dataPlaneURL(DATA_PLANE_URL)
    RSClient.sharedInstance().configure(with: config)
    RSClient.sharedInstance().addDestination(RudderAdjustDestination())
    RSConfig *config = [[RSConfig alloc] initWithWriteKey:WRITE_KEY];
    [config dataPlaneURL:DATA_PLANE_URL];
    [[RSClient sharedInstance] configureWith:config];
    [[RSClient sharedInstance] addDestination:[[RudderAdjustDestination alloc] init]];
To add Adjust to your Android project, follow these steps:
  1. Add mavenCentral() to the repositories section of your build.gradle file:
    repositories {
    mavenCentral()
    }
  2. Next, add the following permissions to your AndroidManifest.xml file:
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    // If you are not targeting the Google Play Store, you need to add the following permission:
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    // If you are targeting Android 13 and above (API level 33), you need to add the com.google.android.gms.AD_ID permission to read the device's advertising ID.
    <uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
  3. Finally, add the following lines in your build.gradle file under dependencies:
    // RudderStack Android-SDK
    implementation 'com.rudderstack.android.sdk:core:[1.0,2.0)'
    // RudderStack Adjust-SDK
    implementation 'com.rudderstack.android.integration:adjust:1.0.1'
    // Add Google Play Services library to enable the Google Advertising ID for Adjust SDK
    implementation 'com.google.android.gms:play-services-ads-identifier:17.0.1'
    // To support the Google Play Referrer API, make sure you have the following in your build.gradle file:
    implementation 'com.android.installreferrer:installreferrer:2.2'
    For more information on the implementation com.google.android.gms:play-services-ads-identifier:17.0.1, refer to the Adjust documentation.
  4. After adding the dependency, register the RudderAdjustFactory with your RudderClient initialization as a factory of RudderConfig. Add the following line in your Application class:
    import com.rudderstack.android.integration.adjust.AdjustIntegrationFactory;
  5. Finally, change the SDK initialization to the following:
    val rudderClient: RudderClient = RudderClient.getInstance(
    this,
    WRITE_KEY,
    RudderConfig.Builder()
    .withDataPlaneUrl(DATA_PLANE_URL)
    .withFactory(AdjustIntegrationFactory.FACTORY)
    .build()
    )
To add Adjust to your Unity app, follow these steps:
  1. First, add the RudderStack Unity SDK to your project.
  2. Download the Adjust SDK extension package and import it in your project.
    The package comes with Adjust Unity SDK embedded in it along with the required jar files for Android Install Referrer. It is strongly recommended to not add the Adjust SDK separately.
  3. After importing the rudder-unity-extension-adjust.unitypackage to your project, attach the RudderPreferbs.prefab file from RudderUnityPlugin to your main GameObject.
  4. Finally, change the SDK initialization, as shown:
    // Build your config
    RudderConfigBuilder configBuilder = new RudderConfigBuilder()
    .WithEndPointUrl(DATA_PLANE_URL)
    .WithFactory(RudderAdjustIntegrationFactory.GetFactory());
    // Get instance for RudderClient
    RudderClient rudderClient = RudderClient.GetInstance(
    WRITE_KEY,
    configBuilder.Build()
    );
Follow the below steps to add Adjust to your Flutter Project:
  1. Add the following dependency to the dependencies section of your pubspec.yaml file.
    rudder_integration_adjust_flutter: ^1.0.1
  2. Run the below command to install the dependency added in the above step:
    flutter pub get
  3. Import the RudderIntegrationAdjustFlutter in your application where you are initializing the SDK.
    import 'package:rudder_integration_adjust_flutter/rudder_integration_adjust_flutter.dart';
  4. Finally, change the initialization of your RudderClient as shown:
    final RudderController rudderClient = RudderController.instance;
    RudderConfigBuilder builder = RudderConfigBuilder();
    builder.withFactory(RudderIntegrationAdjustFlutter());
    rudderClient.initialize(<WRITE_KEY>, config: builder.build(), options: null);

Identify

RudderStack's identify call lets you identify a visiting user and associate them to their actions.

RudderStack sends the user information in the identify call to Adjust's addSessionPartnerParameter method to set the userId (or anonymousId, in case userId is absent), so that the user information is passed to the subsequent calls.

A sample identify call is shown below:

[[RudderClient sharedInstance] identify:@"developer_user_id"
traits:@{@"foo": @"bar", @"foo1": @"bar1"}];

Track

The track call lets you record the user actions along with any properties associated with them.

When you make a track call, RudderStack maps the event name with the corresponding Adjust custom event in the dashboard using Adjust's trackEvent method.

Make sure you have defined the event mapping in the Map events to Adjust Event Tokens dashboard setting. Adjust will reject any events apart from these mappings.
The event token must already be created and present in the Adjust dashboard. For more information on creating a new event token, refer to the FAQ section below.

Sending callback parameters to Adjust

RudderStack sends all the custom properties in your track calls as callback parameters.

A sample track call is shown below:

[[RudderClient sharedInstance] track:@"test_event"
properties:@{@"key":@"value", @"foo": @"bar"}];

Sending partner parameters to Adjust

You can also send custom properties in your track calls as partner parameters to Adjust. Adjust then sends those parameters to the external partners you have set up in your Adjust dashboard.

For more information on adding a partner in Adjust, refer to the FAQ section below.
Make sure you have defined the property mapping in the RudderStack Parameters to Partner Parameters dashboard setting. Adjust will reject any properties apart from these mappings.

RudderStack uses the property mappings specified in the RudderStack Parameters to Partner Parameters setting to check if a key is present in the track event properties and maps it to the corresponding Adjust partner parameter object.

The partner parameters only accept the String data type.

Suppose a customer sets the following mapping in the RudderStack dashboard:

RudderStack propertyAdjust partner parameter
revenueprice
quantityquantity

A sample track call with the above properties is shown below:

[[RudderClient sharedInstance] track:@"purchase"
properties:@{@"revenue":@20.99,
@"currency": @"USD",
@"quantity": @10}];

The corresponding Adjust payload highlighting the parameters is shown below:

"params": {
"android_id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a",
"gps_adid": "3f034872-5e28-45a1-9eda-ce22a3e36d1a",
"att_status": 3,
"tracking_enabled": true,
"currency": "USD",
"ip_address": "[::1]",
"s2s": 1,
"app_token": "t1yurrb968zk",
"event_token": "tf4gm5",
"environment": "production",
"partner_params": {"price":"20.99","quantity":"10"}
},
RudderStack converts numeric values into strings before sending the data to Adjust.

Sending revenue tracking events to Adjust

To send revenue tracking events to Adjust, your can add total and currency to your event properties, as shown:

[[RudderClient sharedInstance] track:@"purchase"
properties:@{@"total":@2.99, @"currency": @"USD"}];

Reset

You can use RudderStack's reset method to call resetSessionCallbackParameters of the Adjust SDK to reset the user ID and the associated traits.

A sample reset call is shown below:

[[RudderClient sharedInstance] reset];

App install attribution

Adjust's native SDK handles app install attribution out of the box with RudderStack.

This feature is not supported when sending events via the cloud mode.
For testing install attribution and troubleshooting tips, refer to the Adjust documentation.

Adjust environment dependency on log level

RudderStack sends data to the Adjust environment depending on the RudderLogLevel set in the SDK, as listed in the below table:

RudderLogLevelAdjust EnvironmentAdjust SDK LogLevel
DEBUG / VERBOSESandboxVERBOSE
NONE/ ERROR / WARN/ INFOProductionERROR
For more information on the RudderLogLevel, refer to the following SDK documentation:

FAQ

Where can I find the Adjust app token?

To get your Adjust app token, follow these steps:

  1. Log into your Adjust dashboard.
  2. Find your app and select the app options caret (^), as shown:
Adjust app token
  1. You will find your app token listed here.
Adjust app token

How can I create a new event token in Adjust?

To create a new event token, follow these steps:

  1. Log into your Adjust dashboard.
  2. Find your app and select the app options caret (^), as shown:
Adjust app token
  1. Go to All Settings > Events, as shown:
Adjust event token
  1. Under CREATE NEW EVENT, enter the name of the event token and click CREATE.

How can I set up new partners in Adjust?

Adjust lets you provide additional data to certain integrated partners. To set up a new partner in Adjust, follow these steps:

  1. Log into your Adjust dashboard.
  2. Find your app and select the app options caret (^), as shown:
Adjust app token
  1. Go to All Settings > Partner Setup > ADD PARTNERS, as shown:
Adjust partner setup
  1. Select the partner from the list and click the + option on the right to add.
  2. Enter the relevant details to complete the configuration and click SAVE to complete the setup.

Contact us

For more information on the topics covered on this page, email us or start a conversation in our Slack community.