> [!WARNING]
> Display \& Video 360 API v5 is currently in beta.

- [HTTP request](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.adAssets/upload#body.HTTP_TEMPLATE)
- [Path parameters](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.adAssets/upload#body.PATH_PARAMETERS)
- [Request body](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.adAssets/upload#body.request_body)
  - [JSON representation](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.adAssets/upload#body.request_body.SCHEMA_REPRESENTATION)
- [Response body](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.adAssets/upload#body.response_body)
  - [JSON representation](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.adAssets/upload#body.UploadAdAssetResponse.SCHEMA_REPRESENTATION)
- [Authorization scopes](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.adAssets/upload#body.aspect)
- [Try it!](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.adAssets/upload#try-it)

Uploads and creates an ad asset.

Returns the ID of the newly-created ad asset if successful.

Only supports the uploading of assets with the `https://developers.google.com/display-video/api/reference/rest/v5/advertisers.adAssets#AdAssetType` `AD_ASSET_TYPE_IMAGE`.

### HTTP request

- Upload URI, for media upload requests:  
  `POST https://displayvideo.googleapis.com/upload/v5/advertisers/{advertiserId}/adAssets:uploadAdAsset`
- Metadata URI, for metadata-only requests:  
  `POST https://displayvideo.googleapis.com/v5/advertisers/{advertiserId}/adAssets:uploadAdAsset`

The URL uses [gRPC Transcoding](https://google.aip.dev/127) syntax.

### Path parameters

| Parameters ||
|---|---|
| `advertiserId` | `string (https://developers.google.com/discovery/v1/type-format format)` Required. The ID of the advertiser this ad asset belongs to. |

### Request body

The request body contains data with the following structure:

| JSON representation |
|---|
| ``` { "filename": string, "adAssetType": enum (`https://developers.google.com/display-video/api/reference/rest/v5/advertisers.adAssets#AdAssetType`), "syntheticContentAttestationStatus": enum (`https://developers.google.com/display-video/api/reference/rest/v5/SyntheticContentAttestationStatus`) } ``` |

| Fields ||
|---|---|
| `filename` | `string` Required. The filename of the ad asset, including the file extension. The filename must be UTF-8 encoded with a maximum size of 240 bytes. |
| `adAssetType` | ``enum (`https://developers.google.com/display-video/api/reference/rest/v5/advertisers.adAssets#AdAssetType`)`` Required. The type of the ad asset. Only `AD_ASSET_TYPE_IMAGE` is supported. |
| `syntheticContentAttestationStatus` | ``enum (`https://developers.google.com/display-video/api/reference/rest/v5/SyntheticContentAttestationStatus`)`` Optional. Whether to add a label to the asset as created or edited using AI when served in regions with local AI labeling regulations. |

### Response body

A response message for `https://developers.google.com/display-video/api/reference/rest/v5/advertisers.adAssets/upload#google.ads.displayvideo.v5.AdAssetService.UploadAdAsset`.

If successful, the response body contains data with the following structure:

| JSON representation |
|---|
| ``` { "adAsset": { object (`https://developers.google.com/display-video/api/reference/rest/v5/advertisers.adAssets#AdAsset`) } } ``` |

| Fields ||
|---|---|
| `adAsset` | ``object (`https://developers.google.com/display-video/api/reference/rest/v5/advertisers.adAssets#AdAsset`)`` The created ad asset. |

### Authorization scopes

Requires the following OAuth scope:

- `https://www.googleapis.com/auth/display-video`

For more information, see the [OAuth 2.0 Overview](https://developers.google.com/identity/protocols/OAuth2).