Ads Unified Platform Publisher Public API
Ads Unified Platform - Public API for publishers
Download OpenAPI specification:
Get organization test devices
Returns all test devices for the specified organization
Code samples for "Get organization test devices":
Request example
curl -X GET \ "https://services.api.unity.com/ads/publisher/public/v1/organizations/{organizationId}/test-devices"
Response example
[ { "id": "550e8400-e29b-41d4-a716-446655440000", "platform": "iOS", "name": "QA iPhone 15", "advertisingId": "AEBE52E7-03EE-455A-B3C4-E57283966239" }]
Create test device
Creates a test device for the specified organization
Query parameters for "Create test device"
Dry-run mode. When , the request is fully validated but no changes are persisted (DB writes are rolled back and external calls are skipped). The response echoes the would-be result with an header. For application create/update, dry-run validates the request and business rules only — it does not reserve names or guarantee downstream acceptance.
truex-dry-run: trueCode samples for "Create test device":
Request example
curl -X POST \ -H "Content-Type: application/json" \ -d '{ "platform": "iOS", "name": "QA iPhone 15", "advertisingId": "AEBE52E7-03EE-455A-B3C4-E57283966239"}' \ "https://services.api.unity.com/ads/publisher/public/v1/organizations/{organizationId}/test-devices"
Response example
{ "id": "550e8400-e29b-41d4-a716-446655440000", "platform": "iOS", "name": "QA iPhone 15", "advertisingId": "AEBE52E7-03EE-455A-B3C4-E57283966239"}
Get test device
Code samples for "Get test device":
Request example
curl -X GET \ "https://services.api.unity.com/ads/publisher/public/v1/organizations/{organizationId}/test-devices/{testDeviceId}"
Response example
{ "id": "550e8400-e29b-41d4-a716-446655440000", "platform": "iOS", "name": "QA iPhone 15", "advertisingId": "AEBE52E7-03EE-455A-B3C4-E57283966239"}
Update test device
Updates an existing test device
Query parameters for "Update test device"
Dry-run mode. When , the request is fully validated but no changes are persisted (DB writes are rolled back and external calls are skipped). The response echoes the would-be result with an header. For application create/update, dry-run validates the request and business rules only — it does not reserve names or guarantee downstream acceptance.
truex-dry-run: trueCode samples for "Update test device":
Request example
curl -X PATCH \ -H "Content-Type: application/json" \ -d '{ "platform": "iOS", "name": "QA iPhone 15", "advertisingId": "AEBE52E7-03EE-455A-B3C4-E57283966239"}' \ "https://services.api.unity.com/ads/publisher/public/v1/organizations/{organizationId}/test-devices/{testDeviceId}"
Response example
{ "id": "550e8400-e29b-41d4-a716-446655440000", "platform": "iOS", "name": "QA iPhone 15", "advertisingId": "AEBE52E7-03EE-455A-B3C4-E57283966239"}
Delete test device
Deletes a test device by id
Query parameters for "Delete test device"
Dry-run mode. When , the request is fully validated but no changes are persisted (DB writes are rolled back and external calls are skipped). The response echoes the would-be result with an header. For application create/update, dry-run validates the request and business rules only — it does not reserve names or guarantee downstream acceptance.
truex-dry-run: trueGet applications for an organization
Returns all applications associated with a specific organization
Code samples for "Get applications for an organization":
Request example
curl -X GET \ "https://services.api.unity.com/ads/publisher/public/v1/organizations/{organizationId}/applications"
Response example
[ { "id": "550e8400-e29b-41d4-a716-446655440000", "name": "My Game App", "gameId": 12345, "platform": "iOS", "iconUrl": "https://example.com/icon.png", "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8", "storeId": "com.example.app", "store": "AppleAppStore", "testMode": "forceAll", "kidsSettings": false, "coppa": false, "mixedAudience": false }]
Create an application
Creates a new application for a specific organization
Query parameters for "Create an application"
Dry-run mode. When , the request is fully validated but no changes are persisted (DB writes are rolled back and external calls are skipped). The response echoes the would-be result with an header. For application create/update, dry-run validates the request and business rules only — it does not reserve names or guarantee downstream acceptance.
truex-dry-run: trueCode samples for "Create an application":
Request example
curl -X POST \ -H "Content-Type: application/json" \ -d '{ "name": "string", "platform": "string", "iconUrl": "https://example.com", "storeId": "string", "store": "string", "privacy": { "coppa": true, "mixedAudience": true }, "projectId": "string", "projectName": "string"}' \ "https://services.api.unity.com/ads/publisher/public/v1/organizations/{organizationId}/applications"
Response example
{ "id": "550e8400-e29b-41d4-a716-446655440000", "name": "My Game App", "gameId": 12345, "platform": "iOS", "iconUrl": "https://example.com/icon.png", "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8", "storeId": "com.example.app", "store": "AppleAppStore", "testMode": "forceAll", "kidsSettings": false, "coppa": false, "mixedAudience": false}
Get an application by ID
Returns application metadata for a specific application within an organization
Code samples for "Get an application by ID":
Request example
curl -X GET \ "https://services.api.unity.com/ads/publisher/public/v1/organizations/{organizationId}/applications/{applicationId}"
Response example
{ "id": "550e8400-e29b-41d4-a716-446655440000", "name": "My Game App", "gameId": 12345, "platform": "iOS", "iconUrl": "https://example.com/icon.png", "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8", "storeId": "com.example.app", "store": "AppleAppStore", "testMode": "forceAll", "kidsSettings": false, "coppa": false, "mixedAudience": false}
Update an application
Updates an existing application for a specific organization (partial update)
Query parameters for "Update an application"
Dry-run mode. When , the request is fully validated but no changes are persisted (DB writes are rolled back and external calls are skipped). The response echoes the would-be result with an header. For application create/update, dry-run validates the request and business rules only — it does not reserve names or guarantee downstream acceptance.
truex-dry-run: trueCode samples for "Update an application":
Request example
curl -X PATCH \ -H "Content-Type: application/json" \ -d '{ "name": "string", "storeId": "string", "store": "string", "privacy": { "coppa": true, "mixedAudience": true }, "kidsSettings": true}' \ "https://services.api.unity.com/ads/publisher/public/v1/organizations/{organizationId}/applications/{applicationId}"
Response example
{ "id": "550e8400-e29b-41d4-a716-446655440000", "name": "My Game App", "gameId": 12345, "platform": "iOS", "iconUrl": "https://example.com/icon.png", "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8", "storeId": "com.example.app", "store": "AppleAppStore", "testMode": "forceAll", "kidsSettings": false, "coppa": false, "mixedAudience": false}
Update test mode
Update application test mode value.
Query parameters for "Update test mode"
Dry-run mode. When , the request is fully validated but no changes are persisted (DB writes are rolled back and external calls are skipped). The response echoes the would-be result with an header. For application create/update, dry-run validates the request and business rules only — it does not reserve names or guarantee downstream acceptance.
truex-dry-run: trueCode samples for "Update test mode":
Request example
curl -X PATCH \ -H "Content-Type: application/json" \ -d '{ "testMode": "forceAll"}' \ "https://services.api.unity.com/ads/publisher/public/v1/organizations/{organizationId}/applications/{applicationId}/test-mode"
Response example
{ "id": "550e8400-e29b-41d4-a716-446655440000", "gameId": 12345, "testMode": "forceAll"}
Get placements
Returns all placements for a specific organization and application
Code samples for "Get placements":
Request example
curl -X GET \ "https://services.api.unity.com/ads/publisher/public/v1/organizations/{organizationId}/applications/{applicationId}/placements"
Response example
[ { "id": "550e8400-e29b-41d4-a716-446655440000", "key": "Rewarded_Placement", "name": "Rewarded Video", "gameId": 12345, "adFormat": "rewarded", "status": "active", "adFormatConfigurations": {}, "applicationId": "550e8400-e29b-41d4-a716-446655440000", "archivedAt": "2024-01-01T00:00:00.000Z", "createdAt": "2024-01-01T00:00:00.000Z", "updatedAt": "2024-01-01T00:00:00.000Z" }]
Create placement
Creates a new placement for a specific organization and application
Query parameters for "Create placement"
Dry-run mode. When , the request is fully validated but no changes are persisted (DB writes are rolled back and external calls are skipped). The response echoes the would-be result with an header. For application create/update, dry-run validates the request and business rules only — it does not reserve names or guarantee downstream acceptance.
truex-dry-run: trueCode samples for "Create placement":
Request example
curl -X POST \ -H "Content-Type: application/json" \ -d '{ "name": "Rewarded Placement", "adFormat": "rewarded", "adFormatConfigurations": { "name": "coins", "value": 100, "adminSettings": { "allowSkip": false, "allowSkipInSeconds": 5, "videoPlayableSkipInSeconds": 5, "closeTimerDuration": 5, "tapsToClose": 2, "muteVideo": true, "disableVideoControlsFade": true, "useCloseIconInsteadOfSkipIcon": true } }}' \ "https://services.api.unity.com/ads/publisher/public/v1/organizations/{organizationId}/applications/{applicationId}/placements"
Response example
{ "id": "550e8400-e29b-41d4-a716-446655440000", "key": "Rewarded_Placement", "name": "Rewarded Video", "gameId": 12345, "adFormat": "rewarded", "status": "active", "adFormatConfigurations": {}, "applicationId": "550e8400-e29b-41d4-a716-446655440000", "archivedAt": "2024-01-01T00:00:00.000Z", "createdAt": "2024-01-01T00:00:00.000Z", "updatedAt": "2024-01-01T00:00:00.000Z"}
Get a placement details
Get an existing placement details for a specific organization and application
Code samples for "Get a placement details":
Request example
curl -X GET \ "https://services.api.unity.com/ads/publisher/public/v1/organizations/{organizationId}/applications/{applicationId}/placements/{placementId}"
Response example
{ "id": "550e8400-e29b-41d4-a716-446655440000", "key": "Rewarded_Placement", "name": "Rewarded Video", "gameId": 12345, "adFormat": "rewarded", "status": "active", "adFormatConfigurations": {}, "applicationId": "550e8400-e29b-41d4-a716-446655440000", "archivedAt": "2024-01-01T00:00:00.000Z", "createdAt": "2024-01-01T00:00:00.000Z", "updatedAt": "2024-01-01T00:00:00.000Z"}
Update a placement
Updates an existing placement for a specific organization and application
Query parameters for "Update a placement"
Dry-run mode. When , the request is fully validated but no changes are persisted (DB writes are rolled back and external calls are skipped). The response echoes the would-be result with an header. For application create/update, dry-run validates the request and business rules only — it does not reserve names or guarantee downstream acceptance.
truex-dry-run: trueCode samples for "Update a placement":
Request example
curl -X PUT \ -H "Content-Type: application/json" \ -d '{ "name": "Rewarded Placement", "adFormat": "rewarded", "adFormatConfigurations": { "name": "coins", "value": 100, "adminSettings": { "allowSkip": false, "allowSkipInSeconds": 5, "videoPlayableSkipInSeconds": 5, "closeTimerDuration": 5, "tapsToClose": 2, "muteVideo": true, "disableVideoControlsFade": true, "useCloseIconInsteadOfSkipIcon": true } }}' \ "https://services.api.unity.com/ads/publisher/public/v1/organizations/{organizationId}/applications/{applicationId}/placements/{placementId}"
Response example
{ "id": "550e8400-e29b-41d4-a716-446655440000", "key": "Rewarded_Placement", "name": "Rewarded Video", "gameId": 12345, "adFormat": "rewarded", "status": "active", "adFormatConfigurations": {}, "applicationId": "550e8400-e29b-41d4-a716-446655440000", "archivedAt": "2024-01-01T00:00:00.000Z", "createdAt": "2024-01-01T00:00:00.000Z", "updatedAt": "2024-01-01T00:00:00.000Z"}
Archive (soft delete) a placement
Archive an existing placement for a specific organization and application
Query parameters for "Archive (soft delete) a placement"
Dry-run mode. When , the request is fully validated but no changes are persisted (DB writes are rolled back and external calls are skipped). The response echoes the would-be result with an header. For application create/update, dry-run validates the request and business rules only — it does not reserve names or guarantee downstream acceptance.
truex-dry-run: trueUn-Archive (restore) a placement
Un-Archive an existing placement for a specific organization and application
Query parameters for "Un-Archive (restore) a placement"
Dry-run mode. When , the request is fully validated but no changes are persisted (DB writes are rolled back and external calls are skipped). The response echoes the would-be result with an header. For application create/update, dry-run validates the request and business rules only — it does not reserve names or guarantee downstream acceptance.
truex-dry-run: trueGet placements for an organization
Returns all active iOS/Android placements across every application in the organization
Code samples for "Get placements for an organization":
Request example
curl -X GET \ "https://services.api.unity.com/ads/publisher/public/v1/organizations/{organizationId}/placements"
Response example
[ { "placementId": "Banner_Android", "name": "Banner Android", "placementType": "bidding", "gameId": 1052964, "adFormat": "banner", "platform": "android", "storeId": "com.google" }]