Raw Data Exports

Adjust gives you the option to access your raw data through automatic uploads to an Amazon S3 bucket. Once activated, Adjust will periodically upload the customized CSV to your pre-defined S3 bucket, from which you can access your data as you need.

Note: Ensure that the s3:ListBucket, s3:GetBucketLocation, and s3:PutObject permissions are all enabled within your Amazon S3 bucket setup. For more information, see here.

Here is an example policy:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetBucketLocation",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::YOUR-BUCKET-NAME-HERE"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::YOUR-BUCKET-NAME-HERE/*"
            ]
        }
    ]
}
Activating automatic uploads

All the steps to have your data automatically uploaded to your S3 bucket can be found in one location:

  1. Click on the settings tab of the app for which you wish to activate automatic uploads.
  2. Select Raw Data Export.
  3. Enter your Amazon S3 Bucket Credentials in their respective fields.
    • The name of the bucket used for Transfer Acceleration must be DNS-compliant and must not contain periods (“.”).
  4. Select which events you wish to be included in the data uploads.
  5. Finally, define your CSV structure in the bottom box. Examples of acceptable CSV definitions can be found below.

Once you have completed these steps Adjust will immediately start recording and uploading your raw data to your S3 bucket.

CSV File naming convention

The format of the name of the file that Adjust will upload your data to follows the following pattern.

appToken_2006-01-02T150405_hash.csv.gz
  • apptoken = your app token
  • timestamp = the start of the hour, as one file will be created every hour.
  • hash = is a unique hash created from the CSV definition, thus when you change your csv definition a new hash and thus new file will be created.

An actual example could be

53fzmd3b1234_2016-10-11T100000_a5b80537df7f9099424548c7a65edaga.csv.gz
Defining your data CSV column formats

You define your CSV format essentially by defining the first row of the CSV. You would take your desired header elements and separate each by a comma (with no spaces in between). You must define a minimum of 1 column. Your CSV upload format can be set up with 3 types of values as the columns:

  • Placeholder:
    Defined in the CSV structure as {placeholder} and selected from the list of available placeholders. Adjust will replace the value of that placeholder when available, if the activity being recorded is outside the scope of the placeholder, or if it is unavailable, the cell will be left blank.

  • Callback parameter:
    Defined in the CSV structure as [callback_parameter], this is the name of the callback parameter as defined within the Adjust SDK. Adjust will replace the value of that callback parameter as received from the sdk and if unavailable, again, the cell will be left blank.

  • Constant (optional):
    Defined in the CSV structure as "constant" this can be any desired constant. This value will be inserted simply as is into all rows of the CSV.

Example CSV column formats

Lets say you want a simple 3 column CSV, where each row includes the constant "My awesome app users", the placeholder {idfa} and the callback parameter [user_id]. In this case your CSV structure would be defined as follows:
- "My awesome app users",{idfa},[user_id]

You can define as many placeholders, callback parameters and constants as you wish. The following would be a more elaborate, as well as legitimate, CSV structure:
- "const1",{gps_adid},"const2",{idfa},[user_id],[callbackParam2],[anotherCallbackParam],{tracker_name}

If you are going to be uploading more than one event or activity to your S3 bucket, in order to distinguish between them, ensure that you use the {activity_kind} and {event_name} placeholders.

Notes
- Placeholders, parameter names and constants containing the following special characters will break the above mentioned formatting and thus must not be used: , " [ ] { }.