Skip to content
Get MCP AdsGet MCP Ads, home
Start free

google_ads_upload_video

Upload MP4/WebM/QuickTime bytes (max 16 MiB) to the Google-managed YouTube channel for the selected ad account.

Upload MP4/WebM/QuickTime bytes (max 16 MiB) to the Google-managed YouTube channel for the selected ad account. Visibility is UNLISTED: viewable by anyone with the link, not private. Default preview omits bytes and returns planHash; confirm requires expectedPlanHash. This API has no validateOnly. After upload, query you_tube_video_upload.state and video_id with google_ads_run_gaql; only use the video ID after PROCESSED, via google_ads_apply_plan assetOperation.youtubeVideoAsset. No automatic retry after an uncertain upload.

Kind
Write
Discovery
Reachable through search_tools and run_tool
Account parameter
customerId
Endpoint
https://mcp.getmcpads.com/google-ads/mcp

ParametersLink to this section

NameTypeRequiredNotes
customerIdstringRequiredSelected Google Ads customer ID, not the manager account.
currencystringRequiredActual account currency as a three-letter ISO code; verified natively before writes.
loginCustomerIdstringOptionalOptional MCC ID; defaults to the selected account's inferred manager.
testAccountOnlybooleanOptionalRequire customer.test_account=true before writing. Always use true for sandbox acceptance.
confirmbooleanOptionalApply only when true and expectedPlanHash matches the exact preview.
expectedPlanHashstringOptionalSHA-256 planHash from the preview of this exact payload, required for application.
bytesBase64stringRequiredRaw base64 video bytes, no data URL. Prefer an existing YouTube asset for large videos.
mimeTypestringRequiredActual MIME type of the supplied video bytes. One of: video/mp4, video/webm, video/quicktime.
titlestringRequiredNonempty title for this new video upload.
descriptionstringRequiredNonempty video description; Google rejects an empty value during upload.
visibilitystringRequiredExplicit acknowledgment of the visibility of this YouTube upload.

Calling itLink to this section

jsonThrough run_tool, since it is not announced
{
  "name": "run_tool",
  "arguments": {
    "name": "google_ads_upload_video",
    "args": {
      "customerId": "<string>",
      "currency": "<string>",
      "bytesBase64": "<string>",
      "mimeType": "video/mp4",
      "title": "<string>",
      "description": "<string>",
      "visibility": "<string>"
    }
  }
}
Esc

Type to search