This document covers the necessary settings and configurations to send events to Adobe Analytics via your mobile device mode.

Mobile device mode refers to using the Android or iOS SDK to send your events directly to Adobe Analytics.

To configure Adobe Analytics via the mobile device mode, follow these steps:

  • Click on the Manage Apps option on the left nav bar on your Adobe Mobile Services dashboard.
  • Add your app or click on an existing app and configure the required settings under the Manage App Settings tab, as shown:
  • Click on the Config File option present at the bottom of the same page, as shown:


For Android, place the ADBMobileConfig.json file inside your app under src/main/assets/.

Then, follow the instructions in the Adobe documentation to create the report suite.


For iOS, drag and drop the ADBMobileConfig.json under the Pods section in the Project Navigatorand verify the following:

  • The Copy items if needed checkbox is selected.
  • Create groups is selected.
  • None of the checkboxes in the Add to targets section is selected.

In the File Inspector, add the JSON file to the AdobeMobileSDK target.

Then, follow the instructions in the Adobe documentation to create the report suite.

Adding Device Mode Integration

Follow these steps to add Adobe Analytics to your iOS project:
  • In your Podfile, add the Rudder-Adobe extension:
    pod 'Rudder-Adobe'
  • After adding the dependency followed by pod install , add the imports to your AppDelegate.m file as shown:
    #import <Rudder/Rudder.h>
    #import <RudderAdobeFactory.h>
  • Then, add the initialization of your RSClient as shown:
    RSConfigBuilder *configBuilder = [[RSConfigBuilder alloc] init];
    [configBuilder withDataPlaneUrl:DATA_PLANE_URL];
    [configBuilder withFactory:[RudderAdobeFactory instance]];
    [RSClient getInstance:<YOUR_WRITE_KEY> config:[configBuilder build]];
To add Adobe Analytics to your Android project, follow these steps :
  • Open your app/build.gradle file and add the following under the dependencies section :
    implementation ''
    implementation ''
    implementation ''
    // Adobe Analytics
    implementation ''
  • Initialize the RudderStack SDK in the Application class' onCreate() method as shown:
    // initializing Rudder SDK
    val rudderClient = RudderClient.getInstance(
  • For Android, make sure you add these permissions to your AndroidManifest.xml:
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

Dashboard Settings to Send Events via the Mobile Device Mode

Configure the following settings in the RudderStack dashboard to use the mobile device mode:

  • Set the Heartbeat Tracking Server URL and it should be in the format of [your_namespace]
  • Toggle Check for Heartbeat calls to be made over HTTPS to enable or disable the SSL mode.
  • Enter Prefix to add before all contextData property to append a prefix before a custom property.
  • Select Product Identifier to look for Product Id. By default, it is set to Product Name.

Sending Events

Map all the events defined in the Adobe Mobile Services dashboard in the Map Rudder Events to Adobe Custom Events setting in the RudderStack dashboard.

Sending Custom Properties

Map all the properties defined at the Adobe Mobile Services dashboard in the Map Rudder Context data to Adobe Context Data settings in the Rudderstack dashboard.

For mobile device mode, RudderStack currently does not support the Initialize Heartbeat and Heartbeat Playhead Update video events.


When you make an identify call, RudderStack sets the Adobe visitorId to the value of the user’s RudderStack userId.

A sample identify call looks like the following:

[[RSClient sharedInstance] identify:@"Adobe_iOS_user"];


When you make a track call, RudderStack sends an Adobe trackAction event and passes your event name and any associated properties mapped to Adobe as context data values.

A sample track call is as shown:

[[RSClient sharedInstance] track:@"Order Completed" properties:@{
@"orderId" : @2002,
@"category" : @"Cloths",
@"productId" : @"2200013",
@"name": @"Shirt",
@"price" : @10001,
@"quantity" : @12
MainApplication.rudderClient.track("Order Completed",
.putValue("orderId", "12345")
.putValue("category", "category")
.putValue("revenue", 99.9)
.putValue("shipping", 13.99)
.putValue("tax", 20.99)
.putValue("promotion_id", "PROMO_1234")


When you make a screen call, RudderStack sends an Adobe trackState event and passes the screen name along with any associated properties mapped to Adobe as context data values.

A sample screen call looks like the following:

[[RSClient sharedInstance] track:@"Home Screen"
@"Width" : @"13"
MainApplication.rudderClient.screen("Home Screen",


Calling reset sets the user’s Adobe visitorId to null.

The default value of Adobe's visitorId is null until you explicitly set it (by calling identify).

A sample reset call is as shown:

[[RSClient sharedInstance] reset];


Calling the flush method immediately sends all the locally queued events to Adobe.

A sample flush call is as follows:

The flush call is supported only in Android.

Contact us

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

On this page