Adjust Source Beta

Ingest your event data from Adjust into RudderStack.

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

This guide will help you set up Adjust as a source in RudderStack.

Get started

  1. Go to your RudderStack dashboard and click Add Source. From the list of Event Streams sources, select Adjust.
  2. Assign a name to your source and click Continue.
  3. Your Adjust source is now configured. Go to the Settings tab of the source and note the Webhook URL:
Adjust webhook URL
  1. Log in to your Adjust dashboard and go to your app setup. Then, go to the Data management tab.
  2. Under Server callbacks, go to Add callback > Guided setup.
  3. Select the activity or event to trigger the callback in the Callback trigger list.
  4. Enter the webhook URL obtained in Step 3 in the Server endpoint field, where you can receive the data.
info
You can also add a condition in combination with the placeholders and values to trigger a callback only when the condition is satisfied.
  1. Click Add a placeholder to dynamically include user/engagement data in your callback. Note that you can select multiple supported placeholders as per your requirement.
  2. Click Create callback URL to generate the final encoded callback URL.

Go to the Server callbacks overview page to view and manage the callback URL at any later point.

Event transformation

RudderStack ingests the Adjust callbacks as track calls.

Adjust fires global callbacks in addition to any other callback specified at the individual event level. For example, if you have set a global callback along with a callback at the in-app event level, Adjust fires two callbacks - one containing the data requested in the global callback and the other containing the data for the in-app event.

Supported mappings

RudderStack maps the following Adjust properties associated with the global callbacks to the track event properties:

Adjust propertyRudderStack property
activity_kindproperties.activity_kind
app_namecontext.app.name
created_atoriginalTimestamp
eventproperties.event_token
event_namemessage.event
gps_adidproperties.gps_adid
idfacontext.device.advertisingId
For iOS
idfvcontext.device.id
For iOS
adidcontext.device.id
trackerproperties.tracker
tracker_nameproperties.tracker_name

It also maps the following properties associated with the Erased User callbacks to the track properties:

Adjust propertyRudderStack property
ip_addresscontext.ip
request_ip
tracking_enabledproperties.tracking_enabled
info
RudderStack ingests the fields coming via all the other callbacks as is in the message.properties object with the above global callback mappings.

Sample payload and transformation

This section details how RudderStack receives the data from Adjust and creates the resulting payload.

A sample payload sent by Adjust is shown:

https://<webhook-domain>/v1/webhook?writeKey=<source_write_key>
&gps_adid=38400000-8cf0-11bd-b23e-10b96e40000d&adid=XXX
&tracker_token=abc123&app_name=MyApp&activity_kind=event
&created_at=1404214665&event_token=bkrfgq
&event_name=purchase_100_coins/mobile_attribution
&tracker_name=dummy&idfv=XXX

RudderStack transforms the above payload into the following track payload:

{
  context: {
    library: {
      name: 'unknown',
      version: 'unknown',
    },
    app: {
      name: 'MyApp'
    },
    integration: {
      name: 'Adjust',
    },
    device: {
      'id ': 'XXX',
    },
  },
  integrations: {
    Adjust: false,
  },
  type: 'track',
  event: 'purchase_100_coins/mobile_attribution',
  originalTimestamp: '2014-07-01T11:37:45.000Z',
  timestamp: '2014-07-01T11:37:45.000Z',
  properties: {
    gps_adid: '38400000-8cf0-11bd-b23e-10b96e40000d',
    tracker_token: 'abc123',
    activity_kind: 'event',
    tracker_name: 'dummy',
  },
  anonymousId: '97fcd7b2-cc24-47d7-b776-057b7b199513',
}

Questions? Contact us by email or on Slack