---
title: "POST /v4/advertisers/{+advertiserId}/adAssets:uploadAdAsset"
method: POST
path: "/v4/advertisers/{+advertiserId}/adAssets:uploadAdAsset"
tags: ["advertisers"]
---

# POST /v4/advertisers/{+advertiserId}/adAssets:uploadAdAsset

`POST /v4/advertisers/{+advertiserId}/adAssets:uploadAdAsset`

## Request

- Base URL: `https://displayvideo.googleapis.com`
- URL: `https://displayvideo.googleapis.com/v4/advertisers/{+advertiserId}/adAssets:uploadAdAsset`
- Auth: OAuth 2 (implicit, authorization URL `https://accounts.google.com/o/oauth2/auth`, scopes: `https://www.googleapis.com/auth/display-video`) and OAuth 2 (authorization code, authorization URL `https://accounts.google.com/o/oauth2/auth`, token URL `https://accounts.google.com/o/oauth2/token`, scopes: `https://www.googleapis.com/auth/display-video`)

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 AdAssetType `AD_ASSET_TYPE_IMAGE`.

## Path parameters

- `advertiserId` string, required

## Request body `application/octet-stream`

- UploadAdAssetRequest: A request message for UploadAdAsset.
  - `adAssetType` 'AD_ASSET_TYPE_UNSPECIFIED' | 'AD_ASSET_TYPE_IMAGE' | 'AD_ASSET_TYPE_YOUTUBE_VIDEO': Required. The type of the ad asset. Only `AD_ASSET_TYPE_IMAGE` is supported.
  - `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.
  - `syntheticContentAttestationStatus` 'SYNTHETIC_CONTENT_ATTESTATION_STATUS_UNSPECIFIED' | 'NOT_SYNTHETIC' | 'IS_SYNTHETIC': 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 `200`

Successful response

## Changes

- **2026-10-10** `52cdb4885336`: 2 breaking
  - removed the request body
  - removed the media type `*/*` for the response with the status `200`
- **2026-10-10** `0f73dc785c76`: 2 info
  - added the new optional request property `syntheticContentAttestationStatus`
  - added the optional property `adAsset/syntheticContentAttestationStatus` to the response with the `200` status

[Operation history](https://skmtc.dev/google/apis/displayvideo/changes/v4/advertisers/:advertiserId/adAssets:uploadAdAsset/post.md)

---

[API](https://skmtc.dev/google/apis/displayvideo.md) - [All operations](https://skmtc.dev/google/apis/displayvideo/llms.txt) - [OpenAPI document](https://skmtc.dev/google/apis/displayvideo/revisions/6329126f9fb6?raw)
