Unity Advertising Management API
Introduction
The Management API is a streamlined solution designed to automate and optimize your acquire advertising operations.
It offers dynamic apps & campaign management, budget allocation and creative management through robust API endpoints.
This translates into a reduced manual workload and an increase in dynamic, data-driven decision-making capabilities.
With Management API you can:
- Automate bulk campaign & app creation and adjustments
- Seamlessly adjust budget allocations for your campaigns
- Efficiently manage and assign your creatives and creative packs
How to use this documentation?
- The Get Started guide will help you set up the Service account and start using the API
- The Basic Concepts section will provide you with general information about the Management API, including API structure, versioning, and deprecation policy
- The Endpoints section has all the information about actual API endpoints and error handling
If you have any questions or feedback regarding the API you can reach out to us at unityads-support@unity3d.com.
Get Started
Prerequisites: You have the Unity account.
To get started, you will first need to create a service account and assign suitable roles for it. Note that you must be an
Organization Owner to manage service accounts.
How to Gain Access?
Note: To be able to access the API and to create service accounts, your organization needs to have access granted
to the Advertising Management API. Please contact
your Unity Client Partner or email us at unityads-support@unity3d.com.
Set up a service account
You can find information on how to create a service account
here.
After the service account has been created, you will need to authenticate an API and choose the roles that would be assigned to it.
Authentication & Authorization
To learn how to authenticate your requests, please visit the
Admin API authentication page
Roles and Permissions
The service account must have the relevant access to be able to call the APIs. Please see below for the available
service account roles and their corresponding access rights:
Role | Access Rights |
|---|---|
| Advertise API Admin | Grants full read and write access. |
| Advertise API Viewer | Grants access to all the read endpoints. |
| Advertise API Apps Editor | Grants access to all the read and update endpoints for apps. |
| Advertise API Campaigns Editor | Grants access to all the read and update endpoints for campaigns. |
| Advertise API Bids Editor | Grants access to all the read and update endpoints for all the bid types. |
| Advertise API Creative Packs Editor | Grants access to all the read and update endpoints for creatives, creative packs and assigned creative packs. |
| Advertise API Targeting Editor | Grants access to all the read and update endpoints for targeting options. |
You can learn more about the roles available for Management API on the
Admin API authentication page under Growth section.
First Call: List Apps
Learn how to send your first API request with Management API. Before we start, please make sure that you have set up a Service Account with necessary roles.
The first call we will perform is List Apps request. To be able to perform this request, the service account needs to have one of the following roles:
GET- Advertise API Viewer
- Advertise API Apps Editor
- Advertiser API Admin
In this guide, we are going to be using the command line tool in the Unix terminal.
curlFollow these steps:
Step 1
The key ID and secret key that you should have gotten as part of the service account setup should be Base64 encoded before authenticating an API with the Unix terminal. Assuming you have key ID and secret key , the following command will Base64 encode the key string:
7e0f1152-e0dd-4b14-8e37-04cab07efeb0NKxoRp2m2w3e9gzJfssNQnTfypFgtJn7echo -n "7e0f1152-e0dd-4b14-8e37-04cab07efeb0:NKxoRp2m2w3e9gzJfssNQnTfypFgtJn7" | base64
In the output you should get a string that looks like this: .
N2UwZjExNTItZTBkZC00YjE0LThlMzctMDRjYWIwN2VmZWIwOk5LeG9ScDJtMnczZTlnekpmc3NOUW5UZnlwRmd0Sm43Step 2
Get the organization ID following the guide in the Resource IDs section. You should end up with an ID that looks like this: .
5772562874846Step 3
Construct the API call URL. For the List Apps endpoint, it has the following format: . If we use the organization ID from the previous step, the full URL is going to be .
https://services.api.unity.com/advertise/v1/organizations/{organizationId}/appshttps://services.api.unity.com/advertise/v1/organizations/5772562874846/appsStep 4
Let's put all the pieces together and construct the command that will perform the List Apps request:
curlcurl -H "Authorization: Basic N2UwZjExNTItZTBkZC00YjE0LThlMzctMDRjYWIwN2VmZWIwOk5LeG9ScDJtMnczZTlnekpmc3NOUW5UZnlwRmd0Sm43" \ https://services.api.unity.com/advertise/v1/organizations/5772562874846/apps
If your organization has multiple apps, you can consider limiting the number of returned apps to make it easier to check the result. It can be done by adding the query parameter:
limitcurl -H "Authorization: Basic N2UwZjExNTItZTBkZC00YjE0LThlMzctMDRjYWIwN2VmZWIwOk5LeG9ScDJtMnczZTlnekpmc3NOUW5UZnlwRmd0Sm43" \ https://services.api.unity.com/advertise/v1/organizations/5772562874846/apps?limit=1
Step 5
Check the output. If your organization does not have any apps, the result will look like this:
curl{"total":0,"offset":0,"limit":1000,"results":[]}
If your organization has apps, the result will contain a list of apps:
{"total":10,"offset":0,"limit":1,"results":[{"id":"651bffb0c4466ba162a56531","name":"My awesome game","store":"apple","storeId":"1358236","gameId":500269499,"adomain":null,"createdAt":"2023-10-03T11:49:04.953Z","updatedAt":"2023-10-03T11:49:04.953Z"}]}
Step 6
Congratulations! You’re ready to manage your apps and campaigns with the Management API.
Feel free to let us know what you think of this guide: unityads-support@unity3d.com.
Basic Concepts
Overview
The guides in this series provide an overview of the entities, methods and endpoints available in the Management API.
After reading these guides, you will understand the following key concepts:
- How the Management API is structured
- How Management API versioning works
- Which API endpoints to use to retrieve entities
- Which API endpoints to use to modify entities
- How to structure and sequence API calls
The API endpoints are hosted at the following base URL: https://services.api.unity.com.
Glossary
This section provides a more detailed explanation of the vocabulary used in the API.
Apps and Campaigns
Bid Types
Entity | Description |
|---|---|
| CPI Bid | CPI (cost per install) bids are used for targeting and pricing on a per-country basis within your ad campaign. |
| Source Bid | Source bids are used for granularly targeting and pricing apps (sources) on a per-country basis within your ad campaign. |
| ROAS Bid | ROAS (Return On Ad Spend) bids are dynamically priced bids that are used for targeting users that are predicted to generate revenue through in-app purchases or watching ads. |
| Retention Bid | Retention bids are dynamically priced bids that are used for targeting users that are likely to remain in your game 7 days after install. |
Creative Packs and Creatives
Entity | Description |
|---|---|
| Creative | Creative holds either one or two ad assets (files). More information about creative types can be found in the Creative Types section. |
| Creative Pack | A creative pack combines 1-3 creatives into one entity that can be assigned to one or more campaigns. More information about creative pack types can be found in the Creative Pack Types section. |
Creative Types
Creative Type | Description |
|---|---|
| End Card Creative | End cards are creative assets displayed at the end of a video with a call to action for users to download the advertised product. It can be either a single square image or combination of portrait and landscape images. |
| Playable Creative | Playable ads allow users to play a quick interactive demo of your game. |
| Video Creative | Video creative is a video that is used for marketing your app. |
Creative Pack Types
Creative Pack Type | Description |
|---|---|
| Video and static end card | A video ad with an image-type end card. Consists of 1 or 2 Video creatives (portrait/landscape) and one End Card creative. |
| Playable | A playable is an interactive ad. Includes only Playable creative. |
| Video and playable end card | A video ad with an interactive-type end card. Consists of 1 or 2 Video creatives (portrait/landscape) and one Playable creative. |
Entity Relationships
This section provides an overview on what the different resources in the API are and how they relate to each other.
At the top level, the API has a resource that is called . The resource corresponds to a single app/game
that has been published in a single app store. If you have published your app/game in more than one app store then
you will have a separate resource for each of those stores. Note that it is also possible to have more than one
resources that correspond to the same app/game in a store. The following diagram visualizes this relationship
for a game called :
AppAppAppAppMy GameApps contain advertisement campaigns and resources related to those campaigns such as budgets, bids and creatives:
Resource IDs Used in the API Calls
To identify your organization as well as its apps and campaigns we use the following identifiers:
- organizationId: identifies your organization
- campaignSetId: identifies your app (collection of campaigns) within your organization
- campaignId: identifies a single advertising campaign within your app
How to Look Up organizationId
To look up the , please use the following steps:
organizationId- Open the Acquire Dashboard
- Select Settings from the navigation.
- On the settings page, you will see two separate Organization ID fields. For the Advertising Management API, pick
the value from the field.
Organization Core ID
Note: The organizations are identified with two separate identifiers due to legacy reasons. The full name of the
organization identifier used in the Advertising Management API is but due to practical reasons
it has been shortened to be in this API documentation.
Organization Core IDorganizationIdHow to Look Up campaignSetId and campaignId
To look up the and , the following options are available:
campaignSetIdcampaignIdApps and their respective campaignSetIds can be retrieved using the List Apps
endpoint. In the API response, the -field holds the campaignSetId. Likewise, campaigns and their respective
campaignIds can be retrieved using the List Campaigns endpoint.
idThe campaignSetId and campaignId identifiers are also available via the Advertising Statistics API
where you can find them under the columns and , respectively.
app idcampaign idIt is also possible to find all the identifiers from the URLs of the Unity Acquire dashboard. First, open the
dashboard and then click Apps and choose an app and a campaign to view.
After that the IDs are visible in the URL in following spots:
https://dashboard.unity3d.com/organizations/<ORGANIZATION_ID>/acquire/campaign-sets/<CAMPAIGN_SET_ID>/campaigns/<CAMPAIGN_ID>Versioning
Our API endpoints are versioned and typically structured in the following format:
<BASE_URL>/<VERSION>/<API_NAMESPACE>/<...>
where is the version number of the API (example: v1).
<VERSION>The API may receive non-breaking changes without its version number being changed. Breaking changes are introduced only to new API versions.
The current API version is v1. For all API updates, view our API changelog.
Breaking/Non-breaking Changes Explained
Non-breaking changes can include (but are not limited to) for example:
- Adding new optional request headers
- Adding new fields to the response
- Adding new status codes to the response status codes list
- Changing a required field to be optional
- Changes to rate limits
- Under-the-hood fixes that don’t change the URL signature, the request format or the response format
Breaking changes can include (but are not limited to) for example:
- Changing the URL signature
- Removing a field from the response
- Adding a new required field to the request
- Removing endpoints
- Behavioral changes in filters or options
- Request format alterations for endpoints
Deprecation Policy
If a newer version of the API is released or if the service is discontinued, the API or one of its versions may be
deprecated and eventually shutdown.
Deprecation of an API version will occur in 2 steps:
- Unity's client partner or support team will email Organization owners, informing them of the new version's imminent release and the current version's deprecation date. A deprecation notice will appear on the HTTP headers of any deprecated API, and the documentation will be updated as such.
- After 3 months of continued support for a deprecated version, Unity may cease support or shut down the version entirely. A complete shutdown notice will be sent 1 month in advance.
Feature Release Lifecycle
The Management API is designed to mirror the feature lifecycle stages — Closed Beta, Open Beta, and General Availability (GA)
— ensuring a seamless user experience. If you have access to a feature in the Closed Beta phase within the platform,
you can expect parallel API-level access. This congruency extends through the Open Beta and onto GA,
offering a consistent interface for interactions and functionality.
In essence, API capabilities evolve in tandem with the feature's lifecycle for a unified workflow.
If you find that a feature you have access to isn't available on the Management API,
please reach out to your Client Partner or contact our support team for assistance at unityads-support@unity3d.com.
Rate Limits
The API has rate limiting in place. The maximum number of requests per IP address is limited to 10 to 20 requests per
second and to 4000 requests per 30 minutes.
Additionally, all operations that modify resources (, , ) are limited so that it is possible to modify
a single resource per endpoint at most 100 times per 30 minutes or at most once per a second. This means that for example
the CPI bids of a single campaign can be updated at most 30 times inside a 30-minute time interval. The endpoints
don't share the quota, so it is possible to do also other updates (e.g. source bids) to that same campaign during that
same time interval.
PUTPATCHDELETESimilarly, operations that create resources () are limited so that it is possible to create at most 30 new
resources per endpoint under a single app or campaign per 30 minutes or at most once per a second. This means that
it is possible to for example upload at most 30 creatives into a single app within a 30-minute interval.
During that same time window it is possible to also create other resources or apply updates to the campaigns that
are under the app. Each endpoint has its own quota.
POSTIf you need to update multiple campaigns fast, you can do that. It is for example possible to update CPI bids of hundreds
of campaigns within a short time interval, as long as the number of requests stays in the overall bounds of max 6 to 10 requests
per second and max 4000 requests per 30 minutes.
The API responds with HTTP status code if the rate limit is exceeded.
429Quick Reference
What is limited | How many requests are allowed per second | How many requests are allowed per 30 minutes | Notes |
|---|---|---|---|
| Apps endpoints | 20 | 4000 | Takes all requests into account. |
| Bids endpoints | 10 | 4000 | Takes all requests into account. |
| Campaigns endpoints | 20 | 4000 | Takes all requests into account. |
| Creatives endpoints | 20 | 4000 | Takes all requests into account. |
| Creative-Packs endpoints | 20 | 4000 | Takes all requests into account. |
| 1 | 100 | Applied per |
| 1 | 30 | Applied per |
RateLimit HTTP Headers
Every successful response includes , providing essential information about the maximum limit per endpoint and the remaining quota.
For example, utilizing the "Unity-RateLimit" header assists in calculating the average number of requests per second.
You can read more about the RateLimit HTTP headers here.
RateLimit HTTP headersResponse Compression
The API supports response compression. The responses are compressed if either or
header is provided in the request.
Accept-Encoding: gzipAccept-Encoding: deflateExample:
curl -H "Authorization: Basic <SERVICE_ACCOUNT_CREDENTIALS>" -H "Accept-Encoding: gzip" https://services.api.unity.com/advertise/v1/organizations/5772680389521/apps/5ee23a52c10f9455722a5ead/campaigns/5ee23a557de7e87ee0958dfc/source-bids
Change Log
This changelog lists all additions and updates to the Management API, in chronological order.
January 10, 2025
- Added support for Update Creative Pack endpoint.
- Added support for -field and
appleProductPageId-field in the Creative Packs endpoints.androidStoreListing
January 10, 2024
- Added pagination support for List Creatives endpoint.
January 2, 2024
- Added support for updating partial bids in the Bids endpoints.
December 14, 2023
- Added support for requesting additional campaign data in get campaign endpoint.
October 16, 2023
- Added support for regional targeting in retrieving a campaign targeting options and updating a campaign targeting options.
October 02, 2023
- Added support for category targeting in retrieving a campaign targeting options and updating a campaign targeting options.
September 21, 2023
- Added support for screen density in retrieving a campaign targeting options and updating a campaign targeting options.
September 20, 2023
- Added support for screen size in retrieving a campaign targeting options and updating a campaign targeting options.
- Added support for connection type in retrieving a campaign targeting options and updating a campaign targeting options.
September 19, 2023
- Added support to filter Campaign by status in the list Campaigns endpoint by .
enabled
August 07, 2023
- Added support for Creative Testing campaign in the Bids endpoints.
April 13, 2023
- Added support for Creative Testing campaign in the Campaigns endpoints.
March 8, 2023
- Updated the Rate Limits policy.
February 15, 2023
- Added support for -field to the response body of create App and get App and list Apps endpoints.
gameId
February 1, 2023
- Added support for three decimal bids in the Bids endpoints.
January 17, 2023
- Removed deprecated shared budgets endpoints. Please use campaign budget endpoints instead.
January 14, 2023
- Added support for setting unlimited campaign budget for campaigns with manual biddingStrategy by supporting 0 in update campaign budget endpoint.
December 14, 2022
- Added support for three decimal bids in the Bids endpoints for the Closed Beta participants.
November 24, 2022
- Added support for -field to the request body of create Campaign endpoint.
postInstallWindow
September 19, 2022
- Added support for -field to the request body of create Campaign endpoint.
biddingStrategy
September 5, 2022
- Added new endpoints for getting and updating a campaign budget.
August 31, 2022
- Added -field to the response body of get Campaign and list Campaigns endpoints.
biddingStrategy
July 27, 2022
- Added -field to the request body of create campaign endpoint.
billingType
May 12, 2022
- Added support for deleting an app.
May 6, 2022
- Added support for updating an app.
May 3, 2022
- Added -field to the request body of create App endpoint.
adomain
April 19, 2022
January 28, 2022
- Added support for retrieving a campaign targeting options.
January 26, 2022
- Added support for updating targeting options.
December 16, 2021
- Increased the default rate limit to 6 requests per second.
December 10, 2021
- Added support for retrieving a campaign Budget.
December 2, 2021
- Added support to filter Apps in the list Apps endpoint by and
store.storeId
November 29, 2021
- Added support for retrieving an app.
November 25, 2021
- Added support for creating apps.
November 15, 2021
- Make the field nullable in the App listing endpoint.
storeId
October 14, 2021
- Added support for creating playable creatives.
October 11, 2021
- Fixed some error messages for enabled campaigns that were referring to them as "live" campaigns.
October 1, 2021
- Added support for updating a campaign.
September 28, 2021
- Added support for deleting a campaign.
September 21, 2021
- Added support for campaign creation.
September 10, 2021
- Added support for retrieving a Campaign.
September 6, 2021
- Fixed an issue that caused the update Campaign Budget endpoint to have too strict rate limit.
September 1, 2021
- Changed the list Campaigns endpoint to include fields.
enabled, attributionClickUrl, attributionStartUrl, scheduleStart, scheduleEnd
August 23, 2021
- Added pagination support for list Creative Packs endpoint.
August 13, 2021
- Added support for create Campaign Budget endpoint.
July 27, 2021
- Added support for Video and Playable creative pack type in the create creative pack endpoint.
July 26, 2021
- Added support for listing Retention information.
July 22, 2021
- Added support for replace Retention bids.
July 20, 2021
- Added support for listing Retention bids.
July 19, 2021
- Added -field to the responses of list Apps endpoint.
storeId
July 14, 2021
- Added support for listing ROAS information.
July 7, 2021
- Changed the list Campaigns endpoint to include the ROAS types field for ROAS campaigns.
July 7, 2021
- Added support to filter creative packs in the list Creative Packs endpoint by name.
July 2, 2021
- Added -field to the responses of get Creative Pack and list Creative Packs endpoints.
campaignIds
July 1, 2021
- Added support for replace ROAS (Return On Ad Spend) bids.
June 30, 2021
- Changed the list CPI bids and list source bids endpoints to return a 404 error if the campaign type is not Installs.
June 23, 2021
- Changed support contact address to unityads-support@unity3d.com.
June 17, 2021
- Added support for listing ROAS (Return On Ad Spend) bids.
May 20, 2021
- Added support for updating a Campaign Budget.
May 14, 2021
- Added support for assigning a Campaign Budget.
May 7, 2021
- Added support for unassigning a Campaign Budget.
May 6, 2021
- Added support for retrieving Assigned Budget.
May 3, 2021
- Added support for listing Campaign Budgets.
April 28, 2021
- Added support for listing Apps.
April 19, 2021
- Added billingType field to list campaigns endpoint.
April 8, 2021
- Unity Advertising Management API version 1 (beta) released.
February 17, 2021
- First draft of the version 1 of the Unity Advertising Management API.
Guides
This section contains guides on how to use the API.
Uploading and Assigning Creatives
Creatives and creative packs are the content of your ad campaigns. This article covers the following steps:
- Overview
- Step 1: Upload Your Creatives
- Step 2: Create a Creative Pack
- Step 3: Assign a Creative Pack to a Campaign
Overview
The ad assets (files) such as videos, playables and end cards are managed using two concepts called
and . Creatives directly hold your creative files while creative packs combine 1-3
creatives into a pack that can be assigned to one or more campaigns.
CreativesCreative PacksThe process for creating and assigning creative packs to campaigns is as follows:
Step 1: Upload Your Creatives
You can upload your creatives by using the Create Creative endpoint.
The following creative assets can be uploaded currently through the API:
- Square end card: this creative type contains a single square shaped 800 × 800 image.
- End card pair: this creative type contains a 600 × 800 portrait image and a 800 × 600 landscape image.
- Portrait video: this creative type contains a 9:16 portrait video.
- Landscape video: this creative type contains a 16:9 landscape video.
- Playable: this creative type contains an MRAID 2.0 compliant HTML document in a landscape, portrait or responsive orientation. Refer to the Creative packs documentation.
Usually you call the endpoint once for each file you wish to upload. The only exception to this is
the end card pair creative which includes both portrait and landscape images in one creative.
Create CreativeUpload a Video
Below is an example how the upload endpoint can be called using the command line command . To try
it out, replace the with your local video file path and replace
, and with values matching your organization and app.
curl/path/to/your/file/myPortraitVideo.mp4<ORGANIZATION_ID><SERVICE_ACCOUNT_CREDENTIALS><CAMPAIGN_SET_ID>curl --verbose \ --form 'creativeInfo={"name": "My Portrait Video", "language": "en", "video": {"fileName":"myPortraitVideo.mp4"}}' \ --form "videoFile=@/path/to/your/file/myPortraitVideo.mp4" \ --header "Authorization: Basic <SERVICE_ACCOUNT_CREDENTIALS>" \ https://services.api.unity.com/advertise/v1/organizations/<ORGANIZATION_ID>/apps/<CAMPAIGN_SET_ID>/creatives
After the upload has completed successfully, you will receive a HTTP response with a response payload such as below:
201{"id": "5fd363cf5d84aa0ed76956b1","name": "My Portrait Video","language": "en","type": "portraitVideo","createdAt": "2020-12-11T12:19:29.004Z","status": "uploaded" }
Upload a Square End Card
Uploading a square end card works in similar fashion as uploading videos but you'll need to adjust the request
in the following way:
- Adjust the to contain a
creativeInfofield instead of asquareEndCardfield.video - Instead of passing the file in a field, pass the file in a field called
videoFile.squareEndCardFile
Example:
curl --verbose \ --form 'creativeInfo={"name":"My End Card", "language":"en", "squareEndCard": {"fileName":"mySquareEndCard.jpeg"}}' \ --form "squareEndCardFile=@/path/to/your/file/mySquareEndCard.jpeg" \ --header "Authorization: Basic <SERVICE_ACCOUNT_CREDENTIALS>" \ https://services.api.unity.com/advertise/v1/organizations/<ORGANIZATION_ID>/apps/<CAMPAIGN_SET_ID>/creatives
Upload an End Card Pair
Uploading an end card pair works in similar fashion as uploading videos and square end card but you'll need to
include both end card files in the request:
curl --verbose \ --form 'creativeInfo={"name":"My End Card Pair", "language":"en", "portraitEndCard": {"fileName":"myPortraitEndCard.jpeg" }, "landscapeEndCard": {"fileName":"myLandscapeEndCard.jpeg"}}' \ --form "portraitEndCardFile=@/path/to/your/file/600x800.jpeg" \ --form "landscapeEndCardFile=@/path/to/your/file/800x600.jpeg" \ --header "Authorization: Basic <SERVICE_ACCOUNT_CREDENTIALS>" \ https://services.api.unity.com/advertise/v1/organizations/<ORGANIZATION_ID>/apps/<CAMPAIGN_SET_ID>/creatives
Creative Status
After having been uploaded, all new creatives undergo a content moderation process
to ensure that they follow Unity's advertising content policy.
Before entering the moderation queue, the video creatives go through a processing state that can take few minutes.
You can check the latest status of the uploaded creative with Get Creative endpoint.
Creatives can be added into a creative pack immediately after they have been uploaded. It isn't necessary to
wait for the moderation to complete. However, a creative pack can go live only after all its creatives have
passed the moderation.
Step 2: Create a Creative Pack
After you've uploaded your creatives, you can use Create Creative Pack
endpoint to create a creative pack out of them. A creative pack combines 1-3 creatives into one entity
that can be assigned to one or more campaigns.
The following creative combinations are allowed when creating a creative pack through the API:
- Portrait video + end card
- Landscape video + end card
- Portrait video + landscape video + end card
- Responsive playable
- Portrait playable
- Landscape playable
- Portrait playable + landscape playable
While only one video or playable is required, uploading one for each orientation yields better optimization.
When a creative pack contains both, Unity’s valuation algorithm selects the best orientation to display.
Below is an example that creates a creative pack that contains one portrait video (with ID )
and one square end card (with ID ):
5fd363cf5d84aa0ed76956b15feb40a6ff3d91a3af53c678curl --verbose \ --request POST \ --data '{"name": "Portrait video with square end card", "creativeIds": ["5fd363cf5d84aa0ed76956b1", "5feb40a6ff3d91a3af53c678"], "type": "video"}' \ --header "Content-Type: application/json" \ --header "Authorization: Basic <SERVICE_ACCOUNT_CREDENTIALS>" \ https://services.api.unity.com/advertise/v1/organizations/<ORGANIZATION_ID>/apps/<CAMPAIGN_SET_ID>/creative-packs
Replace the , , and with values that match your app and organization.
creativeIds<ORGANIZATION_ID><CAMPAIGN_SET_ID><SERVICE_ACCOUNT_CREDENTIALS>For a successful request, the response HTTP status code is and the response body follows following format:
201{ "id": "5feb4574ff3d91a3af53c67e", "name": "Video with end card", "type": "video", "creativeIds": [ "5fd363cf5d84aa0ed76956b1", "5feb40a6ff3d91a3af53c678" ]}
Step 3: Assign a Creative Pack to a Campaign
To assign a creative pack to your campaign, use the assign Creative Pack endpoint.
If your creative pack's ID is for example , you can assign it to your campaign with a POST
request:
5f15703772f10b00138f6d8dcurl --verbose \ --request POST \ --data '{"id": "5f15703772f10b00138f6d8d"}' \ --header "Content-Type: application/json" \ --header "Authorization: Basic <SERVICE_ACCOUNT_CREDENTIALS>" \ https://services.api.unity.com/advertise/v1/organizations/<ORGANIZATION_ID>/apps/<CAMPAIGN_SET_ID>/campaigns/<CAMPAIGN_ID>/assigned-creative-packs
The currently assigned creative packs can be listed with a GET query:
curl --header "Authorization: Basic <SERVICE_ACCOUNT_CREDENTIALS>" \ https://services.api.unity.com/advertise/v1/organizations/<ORGANIZATION_ID>/apps/<CAMPAIGN_SET_ID>/campaigns/<CAMPAIGN_ID>/assigned-creative-packs
The response contains a list of creative pack IDs.
A campaign must contain at least one approved creative pack in order to go live. If your live campaign includes a
mix of approved and pending creative packs, the pending ones will automatically run when approved.
To unassign a creative pack from a campaign, use the unassign Creative Pack endpoint.
You can unassign a creative pack with a DELETE query that includes the creative pack's ID in the URL:
curl --verbose \ --request DELETE \ --header "Authorization: Basic <SERVICE_ACCOUNT_CREDENTIALS>" \ https://services.api.unity.com/advertise/v1/organizations/<ORGANIZATION_ID>/apps/<CAMPAIGN_SET_ID>/campaigns/<CAMPAIGN_ID>/assigned-creative-packs/<ASSIGNED_CREATIVE_PACK_ID>
Download OpenAPI specification:
Get App
This endpoint returns the app information for a given app ID.
Authorizations
Authentication
HTTP: Authentication
HTTP Authorization Scheme: basic
Path parameters for "Get App"
Core ID of the organization.
You can look up your Organization's ID by opening up the Acquire Dashboard
and by looking up the ID from the browser's address bar:
https://dashboard.unity3d.com/organizations/<ORGANIZATION_ID_IS_HERE>/acquire/aboutFor more information about the IDs, refer to the Resource IDs documentation.
Code samples for "Get App":
Request example
curl -X GET \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://services.api.unity.com/advertise/v1/organizations/{organizationId}/apps/{campaignSetId}"
Response example
{ "id": "5eb26a338a232100e4bb5893", "name": "My Game", "store": "apple", "storeId": "com.companyname.appname", "adomain": "example.com", "gameId": 500000007, "createdAt": "2020-07-20T18:30:51.243Z", "updatedAt": "2020-08-25T11:55:20.651Z", "appAttributionClickUrl": "https://example.com/{ifa}", "appAttributionStartUrl": "https://example.com/{ifa}"}
Update App
This endpoint is used to update an App.
Note: this endpoint supports partial updates.
Authorizations
Authentication
HTTP: Authentication
HTTP Authorization Scheme: basic
Path parameters for "Update App"
Core ID of the organization.
You can look up your Organization's ID by opening up the Acquire Dashboard
and by looking up the ID from the browser's address bar:
https://dashboard.unity3d.com/organizations/<ORGANIZATION_ID_IS_HERE>/acquire/aboutFor more information about the IDs, refer to the Resource IDs documentation.
Code samples for "Update App":
Request example
curl -X PATCH \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '{ "adomain": "example.com", "appAttributionClickUrl": "https://example.com/{ifa}", "appAttributionStartUrl": "https://example.com/{ifa}", "appLevelAttributionUpdateType": "newAudiences"}' \ "https://services.api.unity.com/advertise/v1/organizations/{organizationId}/apps/{campaignSetId}"
Response example
{ "id": "5eb26a338a232100e4bb5893", "name": "My Game", "store": "apple", "storeId": "com.companyname.appname", "adomain": "example.com", "gameId": 500000007, "createdAt": "2020-07-20T18:30:51.243Z", "updatedAt": "2020-08-25T11:55:20.651Z", "appAttributionClickUrl": "https://example.com/{ifa}", "appAttributionStartUrl": "https://example.com/{ifa}"}
Delete App
This endpoint is used to delete an App.
Note: all campaigns, bids and creative packs belonging to the app will also be deleted. Deleted apps cannot be recovered.
Authorizations
Authentication
HTTP: Authentication
HTTP Authorization Scheme: basic
Path parameters for "Delete App"
Core ID of the organization.
You can look up your Organization's ID by opening up the Acquire Dashboard
and by looking up the ID from the browser's address bar:
https://dashboard.unity3d.com/organizations/<ORGANIZATION_ID_IS_HERE>/acquire/aboutFor more information about the IDs, refer to the Resource IDs documentation.
Code samples for "Delete App":
Request example
curl -X DELETE \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://services.api.unity.com/advertise/v1/organizations/{organizationId}/apps/{campaignSetId}"
Response example
{ "title": "Bad Request", "status": 400, "detail": "Something is wrong", "details": [ { "code": "ERROR_CODE_123", "path": "nested.value", "message": "Invalid value" } ], "requestId": "aad109f8-033f-4a24-8b77-5032eb3a6158"}
List Apps
This endpoint returns all available apps
Authorizations
Authentication
HTTP: Authentication
HTTP Authorization Scheme: basic
Path parameters for "List Apps"
Core ID of the organization.
You can look up your Organization's ID by opening up the Acquire Dashboard
and by looking up the ID from the browser's address bar:
https://dashboard.unity3d.com/organizations/<ORGANIZATION_ID_IS_HERE>/acquire/aboutFor more information about the IDs, refer to the Resource IDs documentation.
Code samples for "List Apps":
Request example
curl -X GET \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://services.api.unity.com/advertise/v1/organizations/{organizationId}/apps"
Response example
{ "total": 1, "offset": 0, "limit": 1000, "results": [ { "id": "5eb26a338a232100e4bb5893", "name": "My Game", "store": "apple", "storeId": "com.companyname.appname", "adomain": "example.com", "gameId": 500000007, "createdAt": "2020-07-20T18:30:51.243Z", "updatedAt": "2020-08-25T11:55:20.651Z", "appAttributionClickUrl": "https://example.com/{ifa}", "appAttributionStartUrl": "https://example.com/{ifa}" } ]}
Create App
This endpoint creates a new app
Authorizations
Authentication
HTTP: Authentication
HTTP Authorization Scheme: basic
Path parameters for "Create App"
Core ID of the organization.
You can look up your Organization's ID by opening up the Acquire Dashboard
and by looking up the ID from the browser's address bar:
https://dashboard.unity3d.com/organizations/<ORGANIZATION_ID_IS_HERE>/acquire/aboutFor more information about the IDs, refer to the Resource IDs documentation.
Code samples for "Create App":
Request example
curl -X POST \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '{ "store": "apple", "storeId": "1234567", "adomain": "example.com", "appAttributionClickUrl": "https://example.com/{ifa}", "appAttributionStartUrl": "https://example.com/{ifa}"}' \ "https://services.api.unity.com/advertise/v1/organizations/{organizationId}/apps"
Response example
{ "id": "5eb26a338a232100e4bb5893", "name": "My Game", "store": "apple", "storeId": "com.companyname.appname", "adomain": "example.com", "gameId": 500000007, "createdAt": "2020-07-20T18:30:51.243Z", "updatedAt": "2020-08-25T11:55:20.651Z", "appAttributionClickUrl": "https://example.com/{ifa}", "appAttributionStartUrl": "https://example.com/{ifa}"}
List Creatives
This endpoint returns all available creatives that are under the given app.
Authorizations
Authentication
HTTP: Authentication
HTTP Authorization Scheme: basic
Path parameters for "List Creatives"
Core ID of the organization.
You can look up your Organization's ID by opening up the Acquire Dashboard
and by looking up the ID from the browser's address bar:
https://dashboard.unity3d.com/organizations/<ORGANIZATION_ID_IS_HERE>/acquire/aboutFor more information about the IDs, refer to the Resource IDs documentation.
Code samples for "List Creatives":
Request example
curl -X GET \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://services.api.unity.com/advertise/v1/organizations/{organizationId}/apps/{campaignSetId}/creatives"
Response example
{ "total": 1, "offset": 0, "limit": 2000, "results": [ { "id": "5eb26a338a232100e4cc9945", "name": "My Creative", "language": "en", "type": "landscapeVideo", "files": [ { "name": "string", "url": "https://example.com/directory/image.jpg" } ], "createdAt": "2020-07-20T18:30:51.243Z", "status": "approved" } ]}
Create Creative
Upload an end card or video creative using this endpoint.
Three different types of creatives can currently be created through this API:
- Square end card: a single square shaped 800 × 800 image.
- End card pair: a 600 × 800 portrait image and a 800 × 600 landscape image.
- Video: contains either a 9:16 portrait video or a 16:9 landscape video.
- Playable: contains an MRAID 2.0 compliant HTML document in a portrait, landscape or responsive orientation. Refer to the Creative packs documentation.
Each creative type requires a slightly different JSON payload and a different set of binary files:
- one image file for a square end card,
- two image files for an end card pair,
- one video file for a video creative.
- one HTML file for a playable creative.
To create a creative, you will need to send a HTTP request with content type of
to the API endpoint. The first part of the multipart form should contain a field named that
contains JSON metadata about the creative, followed by one or more additional parts containing the binary
data for each creative file.
multipart/form-datacreativeInfoExample
For a square end card the raw HTTP request could look for example following:
POST /advertise/v1/organizations/<ORGANIZATION_ID>/apps/<CAMPAIGN_SET_ID>/creatives HTTP/1.1Host: services.api.unity.com:443Authorization: Basic <SERVICE_ACCOUNT_CREDENTIALS>Content-Type: multipart/form-data; boundary=--------------------------371131627955007232942795Content-Length: 51165----------------------------371131627955007232942795Content-Disposition: form-data; name="creativeInfo"Content-Type: application/json{ "name": "My Creative", "language": "en", "squareEndCard": { "fileName": "myCreative.jpeg" }}----------------------------371131627955007232942795Content-Disposition: form-data; name="squareEndCardFile"; filename="myCreative.jpeg"<IMAGE_BINARY_DATA>----------------------------371131627955007232942795--
Notice that the place holders , , and need to be replaced with valid values.
<ORGANIZATION_ID><CAMPAIGN_SET_ID><SERVICE_ACCOUNT_CREDENTIALS><IMAGE_BINARY_DATA>When uploading creative assets, ensure that you follow Unity’s advertising content policy.
A continuous data flow is expected when uploading the file. The creative upload is allowed to take at most 5 minutes.
This means that if you are creating a creative that contains a video that has the maximum file size of 100 MB then your average upload speed must at least 2.7 Mbps.
If the upload takes longer than 5 minutes then the request will fail. If the upload halts (no bytes are transferred) for over 30 seconds then the request will fail.
If the same files have already been uploaded as part of a previous creative, the existing creative is returned and no new one is created.
Authorizations
Authentication
HTTP: Authentication
HTTP Authorization Scheme: basic
Path parameters for "Create Creative"
Core ID of the organization.
You can look up your Organization's ID by opening up the Acquire Dashboard
and by looking up the ID from the browser's address bar:
https://dashboard.unity3d.com/organizations/<ORGANIZATION_ID_IS_HERE>/acquire/aboutFor more information about the IDs, refer to the Resource IDs documentation.
Request body for "Create Creative"
Media Type:
multipart/form-dataWhat language is the creative in? The accepted values are a subset of the
IANA language subtag registry.
Note the two special values: for No linguistic content and for Undetermined.
zxxundCollecting creative language information will help improve Unity's machine learning algorithms, further
enabling you to find the right players at scale.
What language is the creative in? The accepted values are a subset of the
IANA language subtag registry.
Note the two special values: for No linguistic content and for Undetermined.
zxxundCollecting creative language information will help improve Unity's machine learning algorithms, further
enabling you to find the right players at scale.
The file that contains the portrait end card image.
The image dimensions must be 600 × 800. The file format must be either PNG, JPEG or GIF.
The maximum file size is 5MB.
Dynamic cropping may occur for portrait and landscape end cards to account for
different device sizes. To avoid losing critical information, allow a buffer from the image borders.
The file that contains the landscape end card image.
The image dimensions must be 800 × 600. The file format must be either PNG, JPEG or GIF.
The maximum file size is 5MB.
Dynamic cropping may occur for portrait and landscape end cards to account for
different device sizes. To avoid losing critical information, allow a buffer from the image borders.
What language is the creative in? The accepted values are a subset of the
IANA language subtag registry.
Note the two special values: for No linguistic content and for Undetermined.
zxxundCollecting creative language information will help improve Unity's machine learning algorithms, further
enabling you to find the right players at scale.
File that contains the video ad asset.
The video should be 30 seconds or less and in H.264-encoded MP4 format. The recommended file
size is 10MB, and the maximum file size is 100MB. The video can be either in portrait format
with 9:16 aspect ratio or in landscape format with 16:9 aspect ratio.
What language is the creative in? The accepted values are a subset of the
IANA language subtag registry.
Note the two special values: for No linguistic content and for Undetermined.
zxxundCollecting creative language information will help improve Unity's machine learning algorithms, further
enabling you to find the right players at scale.
Code samples for "Create Creative":
Request example
curl -X POST \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: multipart/form-data" \ -d '{"creativeInfo":{"name":"My Creative","type":null,"language":"en","squareEndCard":{"fileName":"GameXVideoFile.mp4"}},"squareEndCardFile":"string"}' \ "https://services.api.unity.com/advertise/v1/organizations/{organizationId}/apps/{campaignSetId}/creatives"
Response example
{ "id": "5eb26a338a232100e4cc9945", "name": "My Creative", "language": "en", "type": "landscapeVideo", "files": [ { "name": "string", "url": "https://example.com/directory/image.jpg" } ], "createdAt": "2020-07-20T18:30:51.243Z", "status": "approved"}
Get Creative
This endpoint returns a creative by the creative ID and campaign set ID.
Authorizations
Authentication
HTTP: Authentication
HTTP Authorization Scheme: basic
Path parameters for "Get Creative"
Core ID of the organization.
You can look up your Organization's ID by opening up the Acquire Dashboard
and by looking up the ID from the browser's address bar:
https://dashboard.unity3d.com/organizations/<ORGANIZATION_ID_IS_HERE>/acquire/aboutFor more information about the IDs, refer to the Resource IDs documentation.
Code samples for "Get Creative":
Request example
curl -X GET \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://services.api.unity.com/advertise/v1/organizations/{organizationId}/apps/{campaignSetId}/creatives/{creativeId}"
Response example
{ "id": "5eb26a338a232100e4cc9945", "name": "My Creative", "language": "en", "type": "landscapeVideo", "files": [ { "name": "string", "url": "https://example.com/directory/image.jpg" } ], "createdAt": "2020-07-20T18:30:51.243Z", "status": "approved"}
List Creative Packs
This endpoint returns creative packs that are under the given app.
Authorizations
Authentication
HTTP: Authentication
HTTP Authorization Scheme: basic
Path parameters for "List Creative Packs"
Core ID of the organization.
You can look up your Organization's ID by opening up the Acquire Dashboard
and by looking up the ID from the browser's address bar:
https://dashboard.unity3d.com/organizations/<ORGANIZATION_ID_IS_HERE>/acquire/aboutFor more information about the IDs, refer to the Resource IDs documentation.
Code samples for "List Creative Packs":
Request example
curl -X GET \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://services.api.unity.com/advertise/v1/organizations/{organizationId}/apps/{campaignSetId}/creative-packs"
Response example
{ "total": 1, "offset": 0, "limit": 700, "results": [ { "id": "5eb26a338a232100e4cc9945", "name": "My Creative Pack", "creativeIds": [ "5eb26a338a232100e4cc9945" ], "type": "video", "campaignIds": [ "5eb26a338a232100e4bb6361" ], "androidStoreListing": null, "appleProductPageId": "db126c25-8179-4d3b-8e86-73b5e02db18f" } ]}
Create Creative Pack
Create a creative pack using this endpoint.
Three different types of creative packs can be currently created through this API:
- video: this creative pack type contains a single end card creative (square end card or end card pair) and one or two video creatives (one end card + 1-2 videos).
- playable: this creative pack type contains one or two playable creatives.
- video and playable: this creative pack type contains one or two video creatives and a single responsive playable.
Each creative pack type requires different which have to match with the given creative pack type.
If the creatives referenced by the do not match with the creative pack's then the API
will respond with bad request.
creativeIdscreativeIdstype400Available creatives for your app can be listed via list Creatives endpoint.
Authorizations
Authentication
HTTP: Authentication
HTTP Authorization Scheme: basic
Path parameters for "Create Creative Pack"
Core ID of the organization.
You can look up your Organization's ID by opening up the Acquire Dashboard
and by looking up the ID from the browser's address bar:
https://dashboard.unity3d.com/organizations/<ORGANIZATION_ID_IS_HERE>/acquire/aboutFor more information about the IDs, refer to the Resource IDs documentation.
Code samples for "Create Creative Pack":
Request example
curl -X POST \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '{ "name": "My Creative Pack", "creativeIds": [ "5eb26a338a232100e4cc9945" ], "type": "video", "androidStoreListing": null, "appleProductPageId": "db126c25-8179-4d3b-8e86-73b5e02db18f"}' \ "https://services.api.unity.com/advertise/v1/organizations/{organizationId}/apps/{campaignSetId}/creative-packs"
Response example
{ "id": "5eb26a338a232100e4cc9945", "name": "My Creative Pack", "creativeIds": [ "5eb26a338a232100e4cc9945" ], "type": "video", "campaignIds": [ "5eb26a338a232100e4bb6361" ], "androidStoreListing": null, "appleProductPageId": "db126c25-8179-4d3b-8e86-73b5e02db18f"}
Get Creative Pack
This endpoint returns a creative pack by the creative pack ID and campaign set ID.
Authorizations
Authentication
HTTP: Authentication
HTTP Authorization Scheme: basic
Path parameters for "Get Creative Pack"
Core ID of the organization.
You can look up your Organization's ID by opening up the Acquire Dashboard
and by looking up the ID from the browser's address bar:
https://dashboard.unity3d.com/organizations/<ORGANIZATION_ID_IS_HERE>/acquire/aboutFor more information about the IDs, refer to the Resource IDs documentation.
Code samples for "Get Creative Pack":
Request example
curl -X GET \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://services.api.unity.com/advertise/v1/organizations/{organizationId}/apps/{campaignSetId}/creative-packs/{creativePackId}"
Response example
{ "id": "5eb26a338a232100e4cc9945", "name": "My Creative Pack", "creativeIds": [ "5eb26a338a232100e4cc9945" ], "type": "video", "campaignIds": [ "5eb26a338a232100e4bb6361" ], "androidStoreListing": null, "appleProductPageId": "db126c25-8179-4d3b-8e86-73b5e02db18f"}
Update Creative Pack
This endpoint is used to update a creative pack.
Note: The in the response is always empty.
campaignIdsAuthorizations
Authentication
HTTP: Authentication
HTTP Authorization Scheme: basic
Path parameters for "Update Creative Pack"
Core ID of the organization.
You can look up your Organization's ID by opening up the Acquire Dashboard
and by looking up the ID from the browser's address bar:
https://dashboard.unity3d.com/organizations/<ORGANIZATION_ID_IS_HERE>/acquire/aboutFor more information about the IDs, refer to the Resource IDs documentation.
Code samples for "Update Creative Pack":
Request example
curl -X PATCH \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '{ "name": "My Creative Pack", "androidStoreListing": null, "appleProductPageId": "db126c25-8179-4d3b-8e86-73b5e02db18f"}' \ "https://services.api.unity.com/advertise/v1/organizations/{organizationId}/apps/{campaignSetId}/creative-packs/{creativePackId}"
Response example
{ "id": "5eb26a338a232100e4cc9945", "name": "My Creative Pack", "creativeIds": [ "5eb26a338a232100e4cc9945" ], "type": "video", "campaignIds": [ "5eb26a338a232100e4bb6361" ], "androidStoreListing": null, "appleProductPageId": "db126c25-8179-4d3b-8e86-73b5e02db18f"}
Delete Creative Pack
This endpoint removes a creative pack by the creative pack ID and campaign set ID.
Authorizations
Authentication
HTTP: Authentication
HTTP Authorization Scheme: basic
Path parameters for "Delete Creative Pack"
Core ID of the organization.
You can look up your Organization's ID by opening up the Acquire Dashboard
and by looking up the ID from the browser's address bar:
https://dashboard.unity3d.com/organizations/<ORGANIZATION_ID_IS_HERE>/acquire/aboutFor more information about the IDs, refer to the Resource IDs documentation.
Code samples for "Delete Creative Pack":
Request example
curl -X DELETE \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://services.api.unity.com/advertise/v1/organizations/{organizationId}/apps/{campaignSetId}/creative-packs/{creativePackId}"
Response example
{ "title": "Bad Request", "status": 400, "detail": "Something is wrong", "details": [ { "code": "ERROR_CODE_123", "path": "nested.value", "message": "Invalid value" } ], "requestId": "aad109f8-033f-4a24-8b77-5032eb3a6158"}
List Campaigns
This endpoint returns campaigns for the given app.
Authorizations
Authentication
HTTP: Authentication
HTTP Authorization Scheme: basic
Path parameters for "List Campaigns"
Core ID of the organization.
You can look up your Organization's ID by opening up the Acquire Dashboard
and by looking up the ID from the browser's address bar:
https://dashboard.unity3d.com/organizations/<ORGANIZATION_ID_IS_HERE>/acquire/aboutFor more information about the IDs, refer to the Resource IDs documentation.
Code samples for "List Campaigns":
Request example
curl -X GET \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://services.api.unity.com/advertise/v1/organizations/{organizationId}/apps/{campaignSetId}/campaigns"
Response example
{ "total": 1, "results": [ { "id": "5eb26a338a232100e4bb6361", "name": "CPI campaign for My Game", "goal": "installs", "billingType": "cpi", "enabled": true, "attributionClickUrl": "https://example.com/{ifa}", "attributionStartUrl": "https://example.com/{ifa}", "scheduleStart": "2020-08-25", "scheduleEnd": "2020-11-02", "createdAt": "2020-07-20T18:30:51.243Z", "updatedAt": "2020-08-25T11:55:20.651Z", "biddingStrategy": "manual", "cpiBids": [ { "country": "US", "bid": "0.201" } ], "sourceBids": [ { "country": "US", "sourceAppId": "0a1b2c3D4E5f", "bid": "0.201" } ], "retentionBids": [ { "country": "US", "baseBid": "0.755", "maxBid": "0.255" } ], "eventOptimizationBids": [ { "country": "US", "bid": "0.755" } ], "eventOptimizationType": "level_complete", "sdkEventName": "level_complete_1", "budget": { "total": "2500.20", "dailySpent": "1800.32", "spent": "1800.32" } } ]}
Create Campaign
This endpoint is used to create a campaign.
In order to complete the campaign setup, take the following steps:
- You can Upload Creatives or use the old ones if you already have uploaded them.
- You can Create Creative Pack or use any approved creative pack you already have.
- You should Assign Creative Pack to the campaign.
- Depending on the of your campaign you need to update CPI/ROAS/Retention bids by calling the right Bids endpoint.
goal - Finally if you prepared all requirements you can change the status by calling the Update Campaign endpoint.
enabled
Note: The campaign must have the below prerequisites to go live:
- At least one assigned and approved creative pack.
- Tracking attribution links.
- Specify countries you would like to advertise in.
- The organization is required to have a budget and also, you can optionally update the campaign-level budget.
Note: If null values are passed for the links ( or ), and the app that campaign belongs to has one or many app-level attribution urls set, a modified campaign would automatically get the app-level attribution url values.
attributionClickUrlattributionStartUrlAuthorizations
Authentication
HTTP: Authentication
HTTP Authorization Scheme: basic
Path parameters for "Create Campaign"
Core ID of the organization.
You can look up your Organization's ID by opening up the Acquire Dashboard
and by looking up the ID from the browser's address bar:
https://dashboard.unity3d.com/organizations/<ORGANIZATION_ID_IS_HERE>/acquire/aboutFor more information about the IDs, refer to the Resource IDs documentation.
Request body for "Create Campaign"
Media Type:
application/jsongoal
installs
Campaign's goal. Available options:
- installs: cost per install - campaign is optimized for getting the most installs possible with your target cost.
- roas: return on ad spend - campaign is optimized for finding users who are predicted to bring your target return on ad spend during the first 7 days in your app.
- retention: campaign is optimized for finding users who are likely to remain in your app for 7 days or more after installing.
- creativeTesting: campaign is for testing and comparing the creative performance.
- eventOptimization: campaign is optimized for finding users who are likely to perform a specific in-app event.
Indicates the type of the campaign billing. Possible options:
- cpi: cost per install, you will be billed based on each install your app receives. This is only available where we receive non-aggregated postback data.
- cpm: cost per impression, you will be billed based on each impression the app receives. It supports aggregated postback data for campaigns.
Type of campaign bidding strategy. Possible options:
- manual: Control your target cost by setting country-level static CPI bids. We recommend this if you want to maintain an average CPI.
- automated: Let us automatically determine the best possible bids for maximizing the amount of installs with your daily budget. We recommend this if you want to use a daily budget below $500 or save time from manually adjusting bids to optimise performance.
Note: Automated bidding strategy is only available for campaigns using CPM billing type.
Code samples for "Create Campaign":
Request example
curl -X POST \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '{ "name": "CPI campaign for My Game", "goal": "installs", "billingType": "cpi", "biddingStrategy": "manual", "attributionClickUrl": "https://example.com/{ifa}", "attributionStartUrl": "https://example.com/{ifa}", "scheduleStart": "2020-08-25", "scheduleEnd": "2020-11-02"}' \ "https://services.api.unity.com/advertise/v1/organizations/{organizationId}/apps/{campaignSetId}/campaigns"
Response example
{ "id": "5eb26a338a232100e4bb6361", "name": "CPI campaign for My Game", "goal": "installs", "billingType": "cpi", "enabled": true, "attributionClickUrl": "https://example.com/{ifa}", "attributionStartUrl": "https://example.com/{ifa}", "scheduleStart": "2020-08-25", "scheduleEnd": "2020-11-02", "createdAt": "2020-07-20T18:30:51.243Z", "updatedAt": "2020-08-25T11:55:20.651Z", "biddingStrategy": "manual", "cpiBids": [ { "country": "US", "bid": "0.201" } ], "sourceBids": [ { "country": "US", "sourceAppId": "0a1b2c3D4E5f", "bid": "0.201" } ], "retentionBids": [ { "country": "US", "baseBid": "0.755", "maxBid": "0.255" } ], "eventOptimizationBids": [ { "country": "US", "bid": "0.755" } ], "eventOptimizationType": "level_complete", "sdkEventName": "level_complete_1", "budget": { "total": "2500.20", "dailySpent": "1800.32", "spent": "1800.32" }}
Get Campaign
This endpoint returns the campaign information for a given campaign id.
Authorizations
Authentication
HTTP: Authentication
HTTP Authorization Scheme: basic
Path parameters for "Get Campaign"
Core ID of the organization.
You can look up your Organization's ID by opening up the Acquire Dashboard
and by looking up the ID from the browser's address bar:
https://dashboard.unity3d.com/organizations/<ORGANIZATION_ID_IS_HERE>/acquire/aboutFor more information about the IDs, refer to the Resource IDs documentation.
Query parameters for "Get Campaign"
List of extra fields to be included in the response in the format .
parameter tells to extend campaign response with specified values.
If the campaign type does not match the requested field, i.e. campaign is CPI and roasBids are requested, the query parameter is ignored.
includeFields=cpiBids&includeFields=budgetincludeFieldsCode samples for "Get Campaign":
Request example
curl -X GET \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://services.api.unity.com/advertise/v1/organizations/{organizationId}/apps/{campaignSetId}/campaigns/{campaignId}"
Response example
{ "id": "5eb26a338a232100e4bb6361", "name": "CPI campaign for My Game", "goal": "installs", "billingType": "cpi", "enabled": true, "attributionClickUrl": "https://example.com/{ifa}", "attributionStartUrl": "https://example.com/{ifa}", "scheduleStart": "2020-08-25", "scheduleEnd": "2020-11-02", "createdAt": "2020-07-20T18:30:51.243Z", "updatedAt": "2020-08-25T11:55:20.651Z", "biddingStrategy": "manual", "cpiBids": [ { "country": "US", "bid": "0.201" } ], "sourceBids": [ { "country": "US", "sourceAppId": "0a1b2c3D4E5f", "bid": "0.201" } ], "retentionBids": [ { "country": "US", "baseBid": "0.755", "maxBid": "0.255" } ], "eventOptimizationBids": [ { "country": "US", "bid": "0.755" } ], "eventOptimizationType": "level_complete", "sdkEventName": "level_complete_1", "budget": { "total": "2500.20", "dailySpent": "1800.32", "spent": "1800.32" }}
Update Campaign
This endpoint is used to update a campaign.
Note: this endpoint supports partial updates. The payload can contain, for example, only a new value for the field.
enabledNote: If null values are passed for the links ( or ), and the app that campaign belongs to has one or many app-level attribution urls set, a modified campaign would automatically get the app-level attribution url values.
attributionClickUrlattributionStartUrlAuthorizations
Authentication
HTTP: Authentication
HTTP Authorization Scheme: basic
Path parameters for "Update Campaign"
Core ID of the organization.
You can look up your Organization's ID by opening up the Acquire Dashboard
and by looking up the ID from the browser's address bar:
https://dashboard.unity3d.com/organizations/<ORGANIZATION_ID_IS_HERE>/acquire/aboutFor more information about the IDs, refer to the Resource IDs documentation.
Request body for "Update Campaign"
Media Type:
application/jsonIndicates the campaign's auto start status. Possible options:
- enabled: The campaign will be enabled automatically when all the assigned creative packs are approved.
- disabled: The campaign will not be enabled automatically.
Note: Auto start is only available when campaign's goal is creativeTesting.
Auto start will be automatically disabled if you remove the campaign's attribution click url, change assigned creative packs, remove all the bids or enable the campaign.
Code samples for "Update Campaign":
Request example
curl -X PATCH \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '{ "name": "CPI campaign for My Game", "enabled": true, "attributionClickUrl": "https://example.com/{ifa}", "attributionStartUrl": "https://example.com/{ifa}", "scheduleStart": "2020-08-25", "scheduleEnd": "2020-11-02", "autoStart": "disabled"}' \ "https://services.api.unity.com/advertise/v1/organizations/{organizationId}/apps/{campaignSetId}/campaigns/{campaignId}"
Response example
{ "id": "5eb26a338a232100e4bb6361", "name": "CPI campaign for My Game", "goal": "installs", "billingType": "cpi", "enabled": true, "attributionClickUrl": "https://example.com/{ifa}", "attributionStartUrl": "https://example.com/{ifa}", "scheduleStart": "2020-08-25", "scheduleEnd": "2020-11-02", "createdAt": "2020-07-20T18:30:51.243Z", "updatedAt": "2020-08-25T11:55:20.651Z", "biddingStrategy": "manual", "cpiBids": [ { "country": "US", "bid": "0.201" } ], "sourceBids": [ { "country": "US", "sourceAppId": "0a1b2c3D4E5f", "bid": "0.201" } ], "retentionBids": [ { "country": "US", "baseBid": "0.755", "maxBid": "0.255" } ], "eventOptimizationBids": [ { "country": "US", "bid": "0.755" } ], "eventOptimizationType": "level_complete", "sdkEventName": "level_complete_1", "budget": { "total": "2500.20", "dailySpent": "1800.32", "spent": "1800.32" }}
Delete Campaign
This endpoint is used to delete a campaign.
Authorizations
Authentication
HTTP: Authentication
HTTP Authorization Scheme: basic
Path parameters for "Delete Campaign"
Core ID of the organization.
You can look up your Organization's ID by opening up the Acquire Dashboard
and by looking up the ID from the browser's address bar:
https://dashboard.unity3d.com/organizations/<ORGANIZATION_ID_IS_HERE>/acquire/aboutFor more information about the IDs, refer to the Resource IDs documentation.
Code samples for "Delete Campaign":
Request example
curl -X DELETE \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://services.api.unity.com/advertise/v1/organizations/{organizationId}/apps/{campaignSetId}/campaigns/{campaignId}"
Response example
{ "title": "Bad Request", "status": 400, "detail": "Something is wrong", "details": [ { "code": "ERROR_CODE_123", "path": "nested.value", "message": "Invalid value" } ], "requestId": "aad109f8-033f-4a24-8b77-5032eb3a6158"}
List Assigned Creative Packs
This endpoint returns creative packs that are assigned to a campaign.
Note: you can also use the list Creative Packs endpoint
to check which creative packs are currently assigned to which campaigns.
Authorizations
Authentication
HTTP: Authentication
HTTP Authorization Scheme: basic
Path parameters for "List Assigned Creative Packs"
Core ID of the organization.
You can look up your Organization's ID by opening up the Acquire Dashboard
and by looking up the ID from the browser's address bar:
https://dashboard.unity3d.com/organizations/<ORGANIZATION_ID_IS_HERE>/acquire/aboutFor more information about the IDs, refer to the Resource IDs documentation.
Code samples for "List Assigned Creative Packs":
Request example
curl -X GET \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://services.api.unity.com/advertise/v1/organizations/{organizationId}/apps/{campaignSetId}/campaigns/{campaignId}/assigned-creative-packs"
Response example
{ "total": 1, "results": [ { "id": "5eb26a338a232100e4cc9945" } ]}
Assign Creative Pack
Assign a creative pack to a campaign.
Note about iOS Campaigns
Please note that there is a limit of 50 creative pack assignments in apps sharing the same store id that you
can use on your live campaigns for iOS apps. You can find more information about this limit
here.
Authorizations
Authentication
HTTP: Authentication
HTTP Authorization Scheme: basic
Path parameters for "Assign Creative Pack"
Core ID of the organization.
You can look up your Organization's ID by opening up the Acquire Dashboard
and by looking up the ID from the browser's address bar:
https://dashboard.unity3d.com/organizations/<ORGANIZATION_ID_IS_HERE>/acquire/aboutFor more information about the IDs, refer to the Resource IDs documentation.
Code samples for "Assign Creative Pack":
Request example
curl -X POST \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '{ "id": "5eb26a338a232100e4cc9945"}' \ "https://services.api.unity.com/advertise/v1/organizations/{organizationId}/apps/{campaignSetId}/campaigns/{campaignId}/assigned-creative-packs"
Response example
{ "id": "5eb26a338a232100e4cc9945"}
Unassign Creative Pack
Unassign a creative pack from a campaign.
Authorizations
Authentication
HTTP: Authentication
HTTP Authorization Scheme: basic
Path parameters for "Unassign Creative Pack"
Core ID of the organization.
You can look up your Organization's ID by opening up the Acquire Dashboard
and by looking up the ID from the browser's address bar:
https://dashboard.unity3d.com/organizations/<ORGANIZATION_ID_IS_HERE>/acquire/aboutFor more information about the IDs, refer to the Resource IDs documentation.
Code samples for "Unassign Creative Pack":
Request example
curl -X DELETE \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://services.api.unity.com/advertise/v1/organizations/{organizationId}/apps/{campaignSetId}/campaigns/{campaignId}/assigned-creative-packs/{assignedCreativePackId}"
Response example
{ "title": "Bad Request", "status": 400, "detail": "Something is wrong", "details": [ { "code": "ERROR_CODE_123", "path": "nested.value", "message": "Invalid value" } ], "requestId": "aad109f8-033f-4a24-8b77-5032eb3a6158"}
List CPI Bids
This endpoint returns the campaign’s CPI bids;
including bids for static bidding CPI campaigns and max bids for automated bidding CPI campaigns.
Note about iOS Campaigns
CPI campaigns are now target CPI campaigns while your campaign optimization goals,
such as Installs, ROAS or Retention, do not change.
Bids are now Target CPI (tCPI) bids, the average amount you wish to pay per install. Target CPI is a
bidding strategy that sets bids to help you get as many conversions as possible within a tight range of the
target cost-per-install you set. This strategy automatically optimizes bidding for your ad each time it is
eligible to appear. Target CPI (tCPI) bids are set the same way as CPI bids via APIs.
Authorizations
Authentication
HTTP: Authentication
HTTP Authorization Scheme: basic
Path parameters for "List CPI Bids"
Core ID of the organization.
You can look up your Organization's ID by opening up the Acquire Dashboard
and by looking up the ID from the browser's address bar:
https://dashboard.unity3d.com/organizations/<ORGANIZATION_ID_IS_HERE>/acquire/aboutFor more information about the IDs, refer to the Resource IDs documentation.
Code samples for "List CPI Bids":
Request example
curl -X GET \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://services.api.unity.com/advertise/v1/organizations/{organizationId}/apps/{campaignSetId}/campaigns/{campaignId}/cpi-bids"
Response example
{ "total": 1, "results": [ { "country": "US", "bid": "0.201" } ]}
Update CPI Bids
This endpoint replaces a campaign’s CPI bids with a new set of bids.
Applicable for bids update on static bidding CPI campaigns
and max bid update for automated bidding CPI campaigns.
To remove all the CPI bids of a campaign, send an empty array in the request body.
Note about iOS Campaigns
CPI campaigns are now target CPI campaigns while your campaign optimization goals,
such as Installs, ROAS or Retention, do not change.
Bids are now Target CPI (tCPI) bids, the average amount you wish to pay per install. Target CPI is a
bidding strategy that sets bids to help you get as many conversions as possible within a tight range of the
target cost-per-install you set. This strategy automatically optimizes bidding for your ad each time it is
eligible to appear. Target CPI (tCPI) bids are set the same way as CPI bids via APIs.
Authorizations
Authentication
HTTP: Authentication
HTTP Authorization Scheme: basic
Path parameters for "Update CPI Bids"
Core ID of the organization.
You can look up your Organization's ID by opening up the Acquire Dashboard
and by looking up the ID from the browser's address bar:
https://dashboard.unity3d.com/organizations/<ORGANIZATION_ID_IS_HERE>/acquire/aboutFor more information about the IDs, refer to the Resource IDs documentation.
Code samples for "Update CPI Bids":
Request example
curl -X PUT \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '[ { "country": "US", "bid": "0.201" }]' \ "https://services.api.unity.com/advertise/v1/organizations/{organizationId}/apps/{campaignSetId}/campaigns/{campaignId}/cpi-bids"
Response example
{ "total": 1, "results": [ { "country": "US", "bid": "0.201" } ]}
Update Partial CPI Bids
This endpoint partially updates a campaign’s CPI bids with the specified bid changes.
Applicable for bids update on static bidding CPI campaigns
and max bid update for automated bidding CPI campaigns.
To remove a specific CPI bid, send the country code with a null bid value in the request body.
Note about iOS Campaigns
CPI campaigns are now target CPI campaigns while your campaign optimization goals,
such as Installs, ROAS or Retention, do not change.
Bids are now Target CPI (tCPI) bids, the average amount you wish to pay per install. Target CPI is a
bidding strategy that sets bids to help you get as many conversions as possible within a tight range of the
target cost-per-install you set. This strategy automatically optimizes bidding for your ad each time it is
eligible to appear. Target CPI (tCPI) bids are set the same way as CPI bids via APIs.
Authorizations
Authentication
HTTP: Authentication
HTTP Authorization Scheme: basic
Path parameters for "Update Partial CPI Bids"
Core ID of the organization.
You can look up your Organization's ID by opening up the Acquire Dashboard
and by looking up the ID from the browser's address bar:
https://dashboard.unity3d.com/organizations/<ORGANIZATION_ID_IS_HERE>/acquire/aboutFor more information about the IDs, refer to the Resource IDs documentation.
Code samples for "Update Partial CPI Bids":
Request example
curl -X PATCH \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '[ { "country": "US", "bid": "0.201" }]' \ "https://services.api.unity.com/advertise/v1/organizations/{organizationId}/apps/{campaignSetId}/campaigns/{campaignId}/cpi-bids"
Response example
{ "total": 1, "results": [ { "country": "US", "bid": "0.201" } ]}
List Source Bids
This endpoint returns a campaign's source bids.
Note about iOS Campaigns
CPI campaigns are now target CPI campaigns while your campaign optimization goals,
such as Installs, ROAS or Retention, do not change.
Bids are now Target CPI (tCPI) bids, the average amount you wish to pay per install. Target CPI is a bidding
strategy that sets bids to help you get as many conversions as possible within a tight range of the target
cost-per-install you set. This strategy automatically optimizes bidding for your ad each time it is eligible to
appear. Target CPI (tCPI) bids are set the same way as CPI bids via APIs.
Authorizations
Authentication
HTTP: Authentication
HTTP Authorization Scheme: basic
Path parameters for "List Source Bids"
Core ID of the organization.
You can look up your Organization's ID by opening up the Acquire Dashboard
and by looking up the ID from the browser's address bar:
https://dashboard.unity3d.com/organizations/<ORGANIZATION_ID_IS_HERE>/acquire/aboutFor more information about the IDs, refer to the Resource IDs documentation.
Code samples for "List Source Bids":
Request example
curl -X GET \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://services.api.unity.com/advertise/v1/organizations/{organizationId}/apps/{campaignSetId}/campaigns/{campaignId}/source-bids"
Response example
{ "total": 1, "results": [ { "country": "US", "sourceAppId": "0a1b2c3D4E5f", "bid": "0.201" } ]}
Update Source Bids
This endpoint is used to replace a campaign's source bids with a new set of source bids.
To remove all source bids of a campaign, send an empty array in the request body.
Note about iOS Campaigns
CPI campaigns are now target CPI campaigns while your campaign optimization goals,
such as Installs, ROAS or Retention, do not change.
Bids are now Target CPI (tCPI) bids, the average amount you wish to pay per install. Target CPI is a bidding
strategy that sets bids to help you get as many conversions as possible within a tight range of the target
cost-per-install you set. This strategy automatically optimizes bidding for your ad each time it is eligible to
appear. Target CPI (tCPI) bids are set the same way as CPI bids via APIs.
Authorizations
Authentication
HTTP: Authentication
HTTP Authorization Scheme: basic
Path parameters for "Update Source Bids"
Core ID of the organization.
You can look up your Organization's ID by opening up the Acquire Dashboard
and by looking up the ID from the browser's address bar:
https://dashboard.unity3d.com/organizations/<ORGANIZATION_ID_IS_HERE>/acquire/aboutFor more information about the IDs, refer to the Resource IDs documentation.
Code samples for "Update Source Bids":
Request example
curl -X PUT \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '[ { "country": "US", "sourceAppId": "0a1b2c3D4E5f", "bid": "0.201" }]' \ "https://services.api.unity.com/advertise/v1/organizations/{organizationId}/apps/{campaignSetId}/campaigns/{campaignId}/source-bids"
Response example
{ "total": 1, "results": [ { "country": "US", "sourceAppId": "0a1b2c3D4E5f", "bid": "0.201" } ]}
Update Partial Source Bids
This endpoint partially updates a campaign's source bids with the specified bid changes.
To remove a specific source bid, send the country code with a null bid value in the request body.
Note about iOS Campaigns
CPI campaigns are now target CPI campaigns while your campaign optimization goals,
such as Installs, ROAS or Retention, do not change.
Bids are now Target CPI (tCPI) bids, the average amount you wish to pay per install. Target CPI is a bidding
strategy that sets bids to help you get as many conversions as possible within a tight range of the target
cost-per-install you set. This strategy automatically optimizes bidding for your ad each time it is eligible to
appear. Target CPI (tCPI) bids are set the same way as CPI bids via APIs.
Authorizations
Authentication
HTTP: Authentication
HTTP Authorization Scheme: basic
Path parameters for "Update Partial Source Bids"
Core ID of the organization.
You can look up your Organization's ID by opening up the Acquire Dashboard
and by looking up the ID from the browser's address bar:
https://dashboard.unity3d.com/organizations/<ORGANIZATION_ID_IS_HERE>/acquire/aboutFor more information about the IDs, refer to the Resource IDs documentation.
Code samples for "Update Partial Source Bids":
Request example
curl -X PATCH \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '[ { "country": "US", "sourceAppId": "0a1b2c3D4E5f", "bid": "0.201" }]' \ "https://services.api.unity.com/advertise/v1/organizations/{organizationId}/apps/{campaignSetId}/campaigns/{campaignId}/source-bids"
Response example
{ "total": 1, "results": [ { "country": "US", "sourceAppId": "0a1b2c3D4E5f", "bid": "0.201" } ]}
Get targeting options
This endpoint returns the targeting options for a certain campaign.
Authorizations
Authentication
HTTP: Authentication
HTTP Authorization Scheme: basic
Path parameters for "Get targeting options"
Core ID of the organization.
You can look up your Organization's ID by opening up the Acquire Dashboard
and by looking up the ID from the browser's address bar:
https://dashboard.unity3d.com/organizations/<ORGANIZATION_ID_IS_HERE>/acquire/aboutFor more information about the IDs, refer to the Resource IDs documentation.
Code samples for "Get targeting options":
Request example
curl -X GET \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://services.api.unity.com/advertise/v1/organizations/{organizationId}/apps/{campaignSetId}/campaigns/{campaignId}/targeting"
Response example
{ "appTargeting": { "allowList": [ "0a1b2c3D4E5f" ] }, "deviceTargeting": { "limitedAdTracking": [ "USERS_ALLOWING_AD_TRACKING" ], "osMin": "2.3", "osMax": "latest", "connectionType": [ "wifi" ], "screenSize": [ "small" ], "screenDensity": [ "ldpi" ] }, "categoryTargeting": { "allowList": [ "Unknown" ] }, "regionalTargeting": [ { "country": "AD", "subdivisions": [ 0 ] } ]}
Update targeting options
This endpoint is used to update targeting options.
Note: this endpoint supports partial updates. The payload can contain, for example, only a new value for the
option.
appTargetingAuthorizations
Authentication
HTTP: Authentication
HTTP Authorization Scheme: basic
Path parameters for "Update targeting options"
Core ID of the organization.
You can look up your Organization's ID by opening up the Acquire Dashboard
and by looking up the ID from the browser's address bar:
https://dashboard.unity3d.com/organizations/<ORGANIZATION_ID_IS_HERE>/acquire/aboutFor more information about the IDs, refer to the Resource IDs documentation.
Code samples for "Update targeting options":
Request example
curl -X PATCH \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '{ "appTargeting": { "allowList": [ "0a1b2c3D4E5f" ] }, "deviceTargeting": { "limitedAdTracking": [ "USERS_ALLOWING_AD_TRACKING" ], "osMin": "2.3", "osMax": "latest", "connectionType": [ "wifi" ], "screenSize": [ "small" ], "screenDensity": [ "ldpi" ] }, "categoryTargeting": { "allowList": [ "Unknown" ] }, "regionalTargeting": [ { "country": "AD", "subdivisions": [ 0 ] } ]}' \ "https://services.api.unity.com/advertise/v1/organizations/{organizationId}/apps/{campaignSetId}/campaigns/{campaignId}/targeting"
Response example
{ "appTargeting": { "allowList": [ "0a1b2c3D4E5f" ] }, "deviceTargeting": { "limitedAdTracking": [ "USERS_ALLOWING_AD_TRACKING" ], "osMin": "2.3", "osMax": "latest", "connectionType": [ "wifi" ], "screenSize": [ "small" ], "screenDensity": [ "ldpi" ] }, "categoryTargeting": { "allowList": [ "Unknown" ] }, "regionalTargeting": [ { "country": "AD", "subdivisions": [ 0 ] } ]}
Get Budget
This endpoint is used to get campaign budget for a certain campaign.
Authorizations
Authentication
HTTP: Authentication
HTTP Authorization Scheme: basic
Path parameters for "Get Budget"
Core ID of the organization.
You can look up your Organization's ID by opening up the Acquire Dashboard
and by looking up the ID from the browser's address bar:
https://dashboard.unity3d.com/organizations/<ORGANIZATION_ID_IS_HERE>/acquire/aboutFor more information about the IDs, refer to the Resource IDs documentation.
Code samples for "Get Budget":
Request example
curl -X GET \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://services.api.unity.com/advertise/v1/organizations/{organizationId}/apps/{campaignSetId}/campaigns/{campaignId}/budget"
Response example
{ "total": "2500.20", "dailySpent": "1800.32", "spent": "1800.32"}
Update Budget
This endpoint is used to update campaign budget.
Note: this endpoint supports partial updates. The payload can contain, for example, only a new value for the
option.
totalAuthorizations
Authentication
HTTP: Authentication
HTTP Authorization Scheme: basic
Path parameters for "Update Budget"
Core ID of the organization.
You can look up your Organization's ID by opening up the Acquire Dashboard
and by looking up the ID from the browser's address bar:
https://dashboard.unity3d.com/organizations/<ORGANIZATION_ID_IS_HERE>/acquire/aboutFor more information about the IDs, refer to the Resource IDs documentation.
Request body for "Update Budget"
Media Type:
application/jsonA map with a country code mapped to the amount of money that can be spent daily for the country in dollars.
Unity recommends a minimum daily budget of $500 per country for CPI billed campaigns and $50 per country for CPM billed campaigns. Campaigns with less than the recommended daily cap per country might not get any exposure due to budget restrictions.
Having a low daily limit might result in overspending during the first few days, as the system might not be able to accurately predict the performance of your campaign.
The country daily limit is disabled when the single daily for all countries is set to . Disabling the daily limit means that the spend is capped only by the budget's total limit.
0If you are using country daily budgets and missing a daily budget for one or more countries which you have bids, Unity won't be delivering in these countries until a daily budget has been specified.
Each individual daily amount should be at least .
$0.1example: [{"name":"North America","countries":["US","CA"],"limit":"500.00"},{"name":"Nordics","countries":["FI","SE","NO"],"limit":"200.00"}]An array of country group daily limits. Each entry defines a named group of countries with a shared daily budget limit.
Country groups allow you to set a single daily budget that is shared across multiple countries.
Each country can only appear in one group. Country group names must be unique, contain only alphanumeric characters, spaces, hyphens, and underscores, and be at most 40 characters long.
The field is mutually exclusive with and .
dailyPerCountryGroupdailydailyPerCountryIf you are using country group daily budgets and missing a daily budget for one or more countries which you have bids, Unity won't be delivering in these countries until a daily budget has been specified.
Each group's daily limit should be at least .
$0.1Code samples for "Update Budget":
Request example
curl -X PATCH \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '{ "total": "2500.20", "daily": "2500.20"}' \ "https://services.api.unity.com/advertise/v1/organizations/{organizationId}/apps/{campaignSetId}/campaigns/{campaignId}/budget"
Response example
{ "total": "2500.20", "dailySpent": "1800.32", "spent": "1800.32"}
List ROAS Eligibility
This endpoint returns information about which countries are currently eligible to be used in the Return On Ad Spend (ROAS) campaigns
and additional ROAS-related information.
For more information about ROAS bidding, refer to the
Advertise documentation.
Authorizations
Authentication
HTTP: Authentication
HTTP Authorization Scheme: basic
Path parameters for "List ROAS Eligibility"
Core ID of the organization.
You can look up your Organization's ID by opening up the Acquire Dashboard
and by looking up the ID from the browser's address bar:
https://dashboard.unity3d.com/organizations/<ORGANIZATION_ID_IS_HERE>/acquire/aboutFor more information about the IDs, refer to the Resource IDs documentation.
Code samples for "List ROAS Eligibility":
Request example
curl -X GET \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://services.api.unity.com/advertise/v1/organizations/{organizationId}/apps/{campaignSetId}/audience-pinpointer/roas-info"
Response example
{ "total": 1, "results": [ { "country": "US", "suggestedIapGoal": "12.34", "suggestedAdRevenueGoal": "12.34", "eligibility": [ "iap" ] } ]}
List ROAS Bids
This endpoint returns campaign's ROAS (Return On Ad Spend) bids.
For more information about ROAS bidding, refer to the
Advertise documentation.
Authorizations
Authentication
HTTP: Authentication
HTTP Authorization Scheme: basic
Path parameters for "List ROAS Bids"
Core ID of the organization.
You can look up your Organization's ID by opening up the Acquire Dashboard
and by looking up the ID from the browser's address bar:
https://dashboard.unity3d.com/organizations/<ORGANIZATION_ID_IS_HERE>/acquire/aboutFor more information about the IDs, refer to the Resource IDs documentation.
Code samples for "List ROAS Bids":
Request example
curl -X GET \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://services.api.unity.com/advertise/v1/organizations/{organizationId}/apps/{campaignSetId}/campaigns/{campaignId}/roas-bids"
Response example
{ "total": 1, "results": [ { "country": "US", "goal": "12.34", "maxBid": "0.255" } ]}
Update ROAS Bids
This endpoint is used to replace campaign's ROAS (Return on Ad Spend) bids with a new set of ROAS bids.
ROAS bids can be set only for eligible countries. Use the list ROAS
information endpoint to check for which countries your app is currently eligible and what are the recommended ROAS
goals for those countries. For more information about ROAS bidding and the eligibility criteria, refer to the
Advertise documentation.
Authorizations
Authentication
HTTP: Authentication
HTTP Authorization Scheme: basic
Path parameters for "Update ROAS Bids"
Core ID of the organization.
You can look up your Organization's ID by opening up the Acquire Dashboard
and by looking up the ID from the browser's address bar:
https://dashboard.unity3d.com/organizations/<ORGANIZATION_ID_IS_HERE>/acquire/aboutFor more information about the IDs, refer to the Resource IDs documentation.
Code samples for "Update ROAS Bids":
Request example
curl -X PUT \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '[ { "country": "US", "goal": "12.34", "maxBid": "0.255" }]' \ "https://services.api.unity.com/advertise/v1/organizations/{organizationId}/apps/{campaignSetId}/campaigns/{campaignId}/roas-bids"
Response example
{ "total": 1, "results": [ { "country": "US", "goal": "12.34", "maxBid": "0.255" } ]}
Update Partial ROAS Bids
This endpoint partially updates a campaign's ROAS (Return on Ad Spend) bids with the specified bid changes.
To remove a specific ROAS bid, send the country code with a null goal value in the request body.
ROAS bids can be set only for eligible countries. Use the list ROAS
information endpoint to check for which countries your app is currently eligible and what are the recommended ROAS
goals for those countries. For more information about ROAS bidding and the eligibility criteria, refer to the
Advertise documentation.
Authorizations
Authentication
HTTP: Authentication
HTTP Authorization Scheme: basic
Path parameters for "Update Partial ROAS Bids"
Core ID of the organization.
You can look up your Organization's ID by opening up the Acquire Dashboard
and by looking up the ID from the browser's address bar:
https://dashboard.unity3d.com/organizations/<ORGANIZATION_ID_IS_HERE>/acquire/aboutFor more information about the IDs, refer to the Resource IDs documentation.
Code samples for "Update Partial ROAS Bids":
Request example
curl -X PATCH \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '[ { "country": "US", "goal": "12.34", "maxBid": "0.255" }]' \ "https://services.api.unity.com/advertise/v1/organizations/{organizationId}/apps/{campaignSetId}/campaigns/{campaignId}/roas-bids"
Response example
{ "total": 1, "results": [ { "country": "US", "goal": "12.34", "maxBid": "0.255" } ]}
List Retention Eligibility
This endpoint returns information about which countries are currently available to be used in the Retention campaigns.
For more information about retention bidding, refer to the
Advertise documentation.
Authorizations
Authentication
HTTP: Authentication
HTTP Authorization Scheme: basic
Path parameters for "List Retention Eligibility"
Core ID of the organization.
You can look up your Organization's ID by opening up the Acquire Dashboard
and by looking up the ID from the browser's address bar:
https://dashboard.unity3d.com/organizations/<ORGANIZATION_ID_IS_HERE>/acquire/aboutFor more information about the IDs, refer to the Resource IDs documentation.
Code samples for "List Retention Eligibility":
Request example
curl -X GET \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://services.api.unity.com/advertise/v1/organizations/{organizationId}/apps/{campaignSetId}/audience-pinpointer/retention-info"
Response example
{ "total": 1, "results": [ { "country": "US" } ]}
List Retention Bids
This endpoint returns campaign's retention bids.
For more information about retention bidding, refer to the
Advertise documentation.
Authorizations
Authentication
HTTP: Authentication
HTTP Authorization Scheme: basic
Path parameters for "List Retention Bids"
Core ID of the organization.
You can look up your Organization's ID by opening up the Acquire Dashboard
and by looking up the ID from the browser's address bar:
https://dashboard.unity3d.com/organizations/<ORGANIZATION_ID_IS_HERE>/acquire/aboutFor more information about the IDs, refer to the Resource IDs documentation.
Code samples for "List Retention Bids":
Request example
curl -X GET \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://services.api.unity.com/advertise/v1/organizations/{organizationId}/apps/{campaignSetId}/campaigns/{campaignId}/retention-bids"
Response example
{ "total": 1, "results": [ { "country": "US", "baseBid": "0.755", "maxBid": "0.255" } ]}
Update Retention Bids
This endpoint is used to replace campaign's retention bids with a new set of retention bids.
For more information about retention bidding, refer to the
Advertise documentation.
Authorizations
Authentication
HTTP: Authentication
HTTP Authorization Scheme: basic
Path parameters for "Update Retention Bids"
Core ID of the organization.
You can look up your Organization's ID by opening up the Acquire Dashboard
and by looking up the ID from the browser's address bar:
https://dashboard.unity3d.com/organizations/<ORGANIZATION_ID_IS_HERE>/acquire/aboutFor more information about the IDs, refer to the Resource IDs documentation.
Code samples for "Update Retention Bids":
Request example
curl -X PUT \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '[ { "country": "US", "baseBid": "0.755", "maxBid": "0.255" }]' \ "https://services.api.unity.com/advertise/v1/organizations/{organizationId}/apps/{campaignSetId}/campaigns/{campaignId}/retention-bids"
Response example
{ "total": 1, "results": [ { "country": "US", "baseBid": "0.755", "maxBid": "0.255" } ]}
Update Partial Retention Bids
This endpoint partially updates campaign's retention bids with the specified bid changes.
To remove a specific Retention bid, send the country code with a null baseBid value in the request body.
For more information about retention bidding, refer to the
Advertise documentation.
Authorizations
Authentication
HTTP: Authentication
HTTP Authorization Scheme: basic
Path parameters for "Update Partial Retention Bids"
Core ID of the organization.
You can look up your Organization's ID by opening up the Acquire Dashboard
and by looking up the ID from the browser's address bar:
https://dashboard.unity3d.com/organizations/<ORGANIZATION_ID_IS_HERE>/acquire/aboutFor more information about the IDs, refer to the Resource IDs documentation.
Code samples for "Update Partial Retention Bids":
Request example
curl -X PATCH \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '[ { "country": "US", "baseBid": "0.755", "maxBid": "0.255" }]' \ "https://services.api.unity.com/advertise/v1/organizations/{organizationId}/apps/{campaignSetId}/campaigns/{campaignId}/retention-bids"
Response example
{ "total": 1, "results": [ { "country": "US", "baseBid": "0.755", "maxBid": "0.255" } ]}
List Event Optimization Eligibility
This endpoint returns information about which countries are currently available to be used in the Event Optimization campaigns.
For more information about Event Optimization bidding, refer to the
Advertise documentation.
Authorizations
Authentication
HTTP: Authentication
HTTP Authorization Scheme: basic
Path parameters for "List Event Optimization Eligibility"
Core ID of the organization.
You can look up your Organization's ID by opening up the Acquire Dashboard
and by looking up the ID from the browser's address bar:
https://dashboard.unity3d.com/organizations/<ORGANIZATION_ID_IS_HERE>/acquire/aboutFor more information about the IDs, refer to the Resource IDs documentation.
Code samples for "List Event Optimization Eligibility":
Request example
curl -X GET \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://services.api.unity.com/advertise/v1/organizations/{organizationId}/apps/{campaignSetId}/audience-pinpointer/event-optimization-info"
Response example
{ "total": 1, "results": [ { "eventOptimizationType": "level_complete", "country": [ "US" ] } ]}
List Event Optimization Bids
This endpoint returns campaign's Event Optimization bids.
For more information about Event Optimization bidding, refer to the
Advertise documentation.
Authorizations
Authentication
HTTP: Authentication
HTTP Authorization Scheme: basic
Path parameters for "List Event Optimization Bids"
Core ID of the organization.
You can look up your Organization's ID by opening up the Acquire Dashboard
and by looking up the ID from the browser's address bar:
https://dashboard.unity3d.com/organizations/<ORGANIZATION_ID_IS_HERE>/acquire/aboutFor more information about the IDs, refer to the Resource IDs documentation.
Code samples for "List Event Optimization Bids":
Request example
curl -X GET \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://services.api.unity.com/advertise/v1/organizations/{organizationId}/apps/{campaignSetId}/campaigns/{campaignId}/event-optimization-bids"
Response example
{ "total": 1, "results": [ { "country": "US", "bid": "0.755" } ]}
Update Event Optimization Bids
This endpoint is used to replace campaign's Event Optimization bids with a new set of Event Optimization bids.
For more information about Event Optimization bidding, refer to the
Advertise documentation.
Authorizations
Authentication
HTTP: Authentication
HTTP Authorization Scheme: basic
Path parameters for "Update Event Optimization Bids"
Core ID of the organization.
You can look up your Organization's ID by opening up the Acquire Dashboard
and by looking up the ID from the browser's address bar:
https://dashboard.unity3d.com/organizations/<ORGANIZATION_ID_IS_HERE>/acquire/aboutFor more information about the IDs, refer to the Resource IDs documentation.
Code samples for "Update Event Optimization Bids":
Request example
curl -X PUT \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '[ { "country": "US", "bid": "0.755" }]' \ "https://services.api.unity.com/advertise/v1/organizations/{organizationId}/apps/{campaignSetId}/campaigns/{campaignId}/event-optimization-bids"
Response example
{ "total": 1, "results": [ { "country": "US", "bid": "0.755" } ]}
Update Partial Event Optimization Bids
This endpoint partially updates campaign's Event Optimization bids with the specified bid changes.
To remove a specific Event Optimization bid, send the country code with a null bid value in the request body.
For more information about Event Optimization bidding, refer to the
Advertise documentation.
Authorizations
Authentication
HTTP: Authentication
HTTP Authorization Scheme: basic
Path parameters for "Update Partial Event Optimization Bids"
Core ID of the organization.
You can look up your Organization's ID by opening up the Acquire Dashboard
and by looking up the ID from the browser's address bar:
https://dashboard.unity3d.com/organizations/<ORGANIZATION_ID_IS_HERE>/acquire/aboutFor more information about the IDs, refer to the Resource IDs documentation.
Code samples for "Update Partial Event Optimization Bids":
Request example
curl -X PATCH \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '[ { "country": "US", "bid": "0.755" }]' \ "https://services.api.unity.com/advertise/v1/organizations/{organizationId}/apps/{campaignSetId}/campaigns/{campaignId}/event-optimization-bids"
Response example
{ "total": 1, "results": [ { "country": "US", "bid": "0.755" } ]}
List SDK Event Names
This endpoint returns available sdk event names for an app.
Authorizations
Authentication
HTTP: Authentication
HTTP Authorization Scheme: basic
Path parameters for "List SDK Event Names"
Core ID of the organization.
You can look up your Organization's ID by opening up the Acquire Dashboard
and by looking up the ID from the browser's address bar:
https://dashboard.unity3d.com/organizations/<ORGANIZATION_ID_IS_HERE>/acquire/aboutFor more information about the IDs, refer to the Resource IDs documentation.
Code samples for "List SDK Event Names":
Request example
curl -X GET \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://services.api.unity.com/advertise/v1/organizations/{organizationId}/apps/{campaignSetId}/audience-pinpointer/sdk-event-names"
Response example
{ "total": 1, "results": [ { "eventOptimizationType": "level_complete", "sdkEventNames": [ "level_complete_1" ] } ]}