App management

This document should provide all the details on various aspects of using Adjust App Automation API.

Creating new Apps

App creation is a one-off action triggered by sending data such as store ID/bundle ID using POST request to POST /app endpoint.

If the App does not exist in Adjust it will be created during the request and the new App token will be returned immediately to the client in the response for further use.

Once the app token is available to the user GET /app/<adjust_app_token> endpoint can be used to fetch basic app information.

Settings are copied from the Template app in the Background jobs.

App settings updates

When a new app is created using POST /app endpoint, a background job will be created which will migrate the settings from Template app to the destination app and the POST data remembered for future reference.

Background jobs

Once the Adjust App Automation receives the request from the client it schedules a background job to do actual work.

Background jobs will automatically populate App Settings, Events, RAW Export and other Adjust settings based on the Template app and pre-shared configuration (i.e. S3 secrets, network accounts etc).

Background jobs that migrate settings are only created if the POST data we received has changed since the last request. Requests that create new apps will always create background jobs.

Reasoning for this behavior is that once you create a new app out of the Template app there is nothing to update later unless the user provides additional setup data in the request.

Forcing settings updates

In the case you have updated the Template app after the target app has been created you can force update of all the settings by sending all the necessary POST data and adding force_update keyword to the JSON data sent to the endpoint.

{
  "name": "Strava",
  "platform": "android",
  "bundle_id": "com.strava",
  "force_update": true
}

Settings requiring additional data

Some settings depend on data to be sent in the POST request, such as Partner Setup which requires certain information from the client for channel setup. If this data is missing in the request, dependent settings will be skipped.

It is possible to send additional data in subsequent requests.

Android signatures

In the case of Android, once SHA1 hash is available, an additional POST /app request can be used to start the Signature file generation.

Fetching signatures

Cross-platform requests of GET /signature?bundle_id=<bundle_id> can be used to collect the SDK signature binaries using bundle_id. Once available, Automation API will provide a single archive for both platforms to be unpacked into the Unity project.

Sections

It is possible to update or create only specific app settings sections. Add into POST /app request the field sections and the list of interested sections to sync:

{
  "name": "Strava",
  "platform": "android",
  "bundle_id": "com.strava",
  "store_id": "com.strava",
  "sections": ["events", "csv_upload_settings"]
}

The possible values:

[
  "events",
  "partners",
  "csv_upload_settings",
  "skad_network",
  "attribution_settings",
  "trackers",
  "callbacks",
  "sdk_secrets",
  "external_data_forwarding",
  "fraud_prevention_settings",
  "purchase_verification"
]

Warning

Some of the sections depend on each other.
  • csv_upload_settings update depends on events section..

  • trackers update depends on partners and events.

  • partners update depends on events

  • callbacks update depends on events

It’s the user’s responsibility to include dependent sections to the request. The user can ignore it if no changes have been done in Template app into conditional sections.

Other

GET /app?store_id=<>&platform=<> endpoint is used to collect the CrossPromotion tracker token once it is available.

GET /app/<adjust_app_token>/channels method will be available to query the networks which are available to create new campaigns for.

POST /campaign is used to request Click and Impression URLs to be shared with the corresponding partner.