Adjust Device Mode Integration

Send events to Adjust in RudderStack device mode.

After you have successfully instrumented Adjust as a destination in RudderStack, follow this guide to correctly send your events to Adjust in device mode.

See the following GitHub repositories for more information on the implementation:

Add device mode integration

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

Supported events

In device mode, RudderStack supports sending the following events to Adjust:

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.

warning

Make sure to define the event mapping in the Map events to Adjust Event Tokens dashboard setting. Adjust will reject any events apart from these mappings.

You must create the event token in the Adjust dashboard before specifying the mappings.

Callback parameters

RudderStack sends all 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"}];

Partner parameters

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. See the FAQ for more information on adding a partner in Adjust.

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

warning
  • Adjust will reject any properties apart from mappings specified in the RudderStack Parameters to Partner Parameters dashboard setting.
  • The partner parameters only accept the String data type.

Suppose you set the following mappings 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}];

Revenue tracking

To send revenue tracking events to Adjust, add revenue and currency to your event properties:

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

App install attribution

RudderStack’s Adjust mobile integration (iOS and Android) automatically triggers an Install Attributed event if you have enabled Install Attribution tracking in the dashboard settings.

info

The enhanced attribution support is available from:

  • Rudder-Adjust Android v2.1.0 and above
  • Rudder-Adjust iOS v2.2.0 and above

Usage

Follow these steps to use the enhanced attribution tracking feature:

1. Configure token mapping in the Adjust dashboard

  1. In your Adjust dashboard, create a new event token specifically for the Install Attributed event — you can also use an existing event token in case you have one.
  2. Copy the generated event token.
  3. Use this token in the Adjust destination configuration (explained below).

2. Adjust destination configuration in RudderStack

  1. In your RudderStack dashboard, add Adjust as a mobile device mode destination.
  2. Specify your Adjust App Token.
  3. In the Map events to Adjust event tokens dashboard setting, map the Install Attributed event to the event token obtained above.
  4. Save the mapping.

3. Enable automatic attribution tracking

Toggle on the Enable Install Attribution dashboard setting to automatically track the Install Attributed event when the app is installed for the first time.

How attribution tracking works

By leveraging Adjust’s attribution callback on iOS and Android, the integration listens for an attribution change from Adjust’s SDK and triggers the event with the following Adjust attribution parameters:

KeyValueDescription
providerAdjustHardcoded value
trackerTokenattribution.trackerTokenToken of the link to which the device is currently attributed
trackerNameattribution.trackerNameName of the link to which the device is currently attributed
campaign.sourceattribution.networkName of the network to which the device is currently attributed
campaign.nameattribution.campaignName of the campaign to which the device is currently attributed
campaign.contentattribution.clickLabelThe click label tagged with the install
campaign.adCreativeattribution.creativeName of the creative to which the device is currently attributed
campaign.adGroupattribution.adGroupName of the ad group to which the device is currently attributed

An example of the attribution data automatically captured by the Install Attributed event is shown below:

{
  "event": "Install Attributed",
  "properties": {
    "provider": "Adjust",
    "trackerToken": "abc123",
    "trackerName": "Campaign Name",
    "campaign": {
      "source": "google",
      "name": "summer_campaign",
      "content": "click_label",
      "adCreative": "banner_ad",
      "adGroup": "mobile_users"
    }
  }
}
info
If any of the above values are unavailable, they are defaulted to null. This event is then sent to all the connected device mode and cloud destinations.

See the following FAQs for troubleshooting tips:

Environment dependency on log level

Property mapping

RudderStack’s device mode integration automatically handles device information through the native Adjust SDK. The following table shows how RudderStack events map to Adjust’s native methods:

RudderStack event/methodAdjust SDK method
Description
identify()addSessionPartnerParameter()Sets user ID for session attribution
track()
Required
trackEvent()Sends custom events to Adjust
reset()resetSessionCallbackParameters()Resets user session data
properties.revenueRevenue trackingRevenue amount for purchase events
properties.currencyRevenue trackingCurrency code for revenue
properties.*Callback parametersAll properties as callback parameters
properties.* (mapped)Partner parametersMapped properties as partner parameters
info
Device mode automatically handles device identification through the native Adjust SDK, so you don’t need to manually provide context.device information like in cloud mode.

Troubleshooting

IssueResolution
Events not appearing in Adjust dashboard
  • Verify that your event is mapped to an Adjust event token in the dashboard settings.
  • Check that the event token exists in your Adjust dashboard.
  • Ensure your App Token is correctly configured.
Install attribution not working
  • Ensure the Enable Install Attribution setting is enabled in your dashboard configuration.
  • Verify that the Install Attributed event is properly mapped to an Adjust event token.
  • Check that you’re not using the native Adjust SDK alongside RudderStack’s integration.
  • See the Install attribution troubleshooting section for device unregistration steps.
Partner parameters not working
  • Verify that property mappings are configured in the RudderStack Parameters to Partner Parameters setting.
  • Check that only String values are being sent (RudderStack converts numeric values automatically).
  • Ensure the partner is set up in your Adjust dashboard.
SDK integration issues
  • iOS: Ensure you’re using the correct version of RudderAdjust (v1.0.0+ for iOS v2).
  • Android: Verify that all required permissions are added to your AndroidManifest.xml.
  • Unity: Make sure you’re not adding the native Adjust SDK separately.
  • Flutter: Ensure the dependency version is compatible with your Flutter version.
Environment configuration issuesCheck the Adjust environment dependency on log level section to understand how your SDK log level affects the Adjust environment.


Questions? Contact us by Email or on Slack