Starting September 8, 2025, every new line item will need to declare whether or not they will serve Eurpoean Union (EU) political ads. Display & Video 360 API and SDF uploads that don't provide declarations will fail. See our deprecations page for more details on how to update your integration to make this declaration.
An SDF Upload Task is a long-running, asynchronous operation. The metadata type of this operation is SdfUploadTaskMetadata. If the request is successful, the response type of the operation is SdfUploadTask. The response will not include the resulting files, which can then be retrieved using media.download.
The state of operation can be retrieved with sdfuploadtask.operations.get.
Required. The SDF version of the uploaded file. If set to SDF_VERSION_UNSPECIFIED, this will default to the version specified by the identified advertiser. An advertiser inherits its SDF version from its partner unless configured otherwise.
Response body
If successful, the response body contains an instance of Operation.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-04-15 UTC."],[],[],null,["# Method: advertisers.sdfuploadtasks.upload\n\n- [HTTP request](#body.HTTP_TEMPLATE)\n- [Path parameters](#body.PATH_PARAMETERS)\n- [Request body](#body.request_body)\n - [JSON representation](#body.request_body.SCHEMA_REPRESENTATION)\n- [Response body](#body.response_body)\n- [Authorization scopes](#body.aspect)\n- [Try it!](#try-it)\n\nCreates an SDF Upload Task. Returns an [Operation](/display-video/api/sdf-upload/rest/v4/sdfdownloadtasks.operations#Operation).\n\nAn SDF Upload Task is a long-running, asynchronous operation. The [metadata](/display-video/api/sdf-upload/rest/v4/sdfdownloadtasks.operations#Operation.FIELDS.metadata) type of this operation is [SdfUploadTaskMetadata](/display-video/api/sdf-upload/rest/v4/SdfUploadTaskMetadata). If the request is successful, the [response](/display-video/api/sdf-upload/rest/v4/sdfdownloadtasks.operations#Operation.FIELDS.response) type of the operation is [SdfUploadTask](/display-video/api/sdf-upload/rest/v4/SdfUploadTask). The response will not include the resulting files, which can then be retrieved using [media.download](/display-video/api/sdf-upload/rest/v4/media/download#google.bytestream.RestByteStream.GetMedia).\n\nThe state of operation can be retrieved with `sdfuploadtask.operations.get`.\n\nAny errors can be found in the [error.message](/display-video/api/sdf-upload/rest/v4/sdfdownloadtasks.operations#Operation.FIELDS.error). Note that [error.details](/display-video/api/sdf-upload/rest/v4/sdfdownloadtasks.operations#Operation.FIELDS.error) is expected to be empty.\n\n### HTTP request\n\n- Upload URI, for media upload requests: \n `POST https://displayvideo.googleapis.com/upload/v4/advertisers/{advertiserId}/sdfuploadtasks`\n- Metadata URI, for metadata-only requests: \n `POST https://displayvideo.googleapis.com/v4/advertisers/{advertiserId}/sdfuploadtasks`\n\nThe URL uses [gRPC Transcoding](https://google.aip.dev/127) syntax.\n\n### Path parameters\n\n| Parameters ||\n|----------------|-------------------------------------------------------------------------------------------------------------------------------------------|\n| `advertiserId` | `string (`[int64](https://developers.google.com/discovery/v1/type-format)` format)` Required. The ID of the advertiser to upload SDF for. |\n\n### Request body\n\nThe request body contains data with the following structure:\n\n| JSON representation |\n|-----------------------------------------------------------------------------------------------------------------|\n| ``` { \"filename\": string, \"sdfVersion\": enum (/display-video/api/sdf-upload/rest/v4/SdfConfig#SdfVersion) } ``` |\n\n| Fields ||\n|--------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `filename` | `string` Required. The filename of the asset, including the file extension. The filename must be UTF-8 encoded with a maximum size of 240 bytes. |\n| `sdfVersion` | `enum (`[SdfVersion](/display-video/api/sdf-upload/rest/v4/SdfConfig#SdfVersion)`)` Required. The SDF version of the uploaded file. If set to `SDF_VERSION_UNSPECIFIED`, this will default to the version specified by the identified advertiser. An advertiser inherits its SDF version from its partner unless configured otherwise. |\n\n### Response body\n\nIf successful, the response body contains an instance of [Operation](/display-video/api/sdf-upload/rest/v4/sdfdownloadtasks.operations#Operation).\n\n### Authorization scopes\n\nRequires the following OAuth scope:\n\n- `https://www.googleapis.com/auth/display-video`\n\nFor more information, see the [OAuth 2.0 Overview](/identity/protocols/OAuth2)."]]