> ## Documentation Index
> Fetch the complete documentation index at: https://docs.snowdoughnut.com/llms.txt
> Use this file to discover all available pages before exploring further.

# YouTube creative specs

> YouTube paid creative: skippable and non-skippable in-stream, bumper, in-feed, Shorts, and companion banner, with the duration rules that drive the edit.

YouTube paid placements. Current as of 28 July 2026.

<Note>
  Video generally has to be uploaded to YouTube and set **public or unlisted** before it can be used in Google Ads. Build that step into the timeline.
</Note>

## Duration drives the edit

On YouTube the cut length, not the canvas, is the binding constraint.

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 760 250" width="100%" role="img" aria-label="Duration ranges by YouTube format: bumper up to 6 seconds, skippable in-stream from 7 seconds, standard non-skippable 7 to 15 seconds, and connected-TV non-skippable 16 to 30 seconds.">
  <rect width="760" height="250" fill="#ffffff" />

  <text font-family="ui-sans-serif, system-ui, Segoe UI, Arial, sans-serif" x="20" y="24" fill="#212529" font-weight="650" font-size="15">Duration by format (seconds)</text>

  <line x1="80" y1="210" x2="680" y2="210" stroke="#adb5bd" stroke-width="1.5" />

  <line x1="80" y1="46" x2="80" y2="216" stroke="#adb5bd" stroke-width="1" />

  <line x1="180" y1="46" x2="180" y2="216" stroke="#e03131" stroke-width="1.5" stroke-dasharray="4 3" />

  <line x1="280" y1="46" x2="280" y2="216" stroke="#dee2e6" stroke-width="1" />

  <line x1="380" y1="46" x2="380" y2="216" stroke="#dee2e6" stroke-width="1" />

  <line x1="480" y1="46" x2="480" y2="216" stroke="#dee2e6" stroke-width="1" />

  <line x1="580" y1="46" x2="580" y2="216" stroke="#dee2e6" stroke-width="1" />

  <line x1="680" y1="46" x2="680" y2="216" stroke="#dee2e6" stroke-width="1" />

  <text font-family="ui-sans-serif, system-ui, Segoe UI, Arial, sans-serif" x="80" y="228" fill="#868e96" font-size="11" text-anchor="middle">0</text>
  <text font-family="ui-sans-serif, system-ui, Segoe UI, Arial, sans-serif" x="180" y="228" fill="#e03131" font-size="11" text-anchor="middle">5</text>
  <text font-family="ui-sans-serif, system-ui, Segoe UI, Arial, sans-serif" x="280" y="228" fill="#868e96" font-size="11" text-anchor="middle">10</text>
  <text font-family="ui-sans-serif, system-ui, Segoe UI, Arial, sans-serif" x="380" y="228" fill="#868e96" font-size="11" text-anchor="middle">15</text>
  <text font-family="ui-sans-serif, system-ui, Segoe UI, Arial, sans-serif" x="480" y="228" fill="#868e96" font-size="11" text-anchor="middle">20</text>
  <text font-family="ui-sans-serif, system-ui, Segoe UI, Arial, sans-serif" x="580" y="228" fill="#868e96" font-size="11" text-anchor="middle">25</text>
  <text font-family="ui-sans-serif, system-ui, Segoe UI, Arial, sans-serif" x="680" y="228" fill="#868e96" font-size="11" text-anchor="middle">30</text>

  <rect x="80" y="54" width="120" height="22" fill="#1971c2" fill-opacity=".25" stroke="#1971c2" stroke-width="1.5" />

  <text font-family="ui-sans-serif, system-ui, Segoe UI, Arial, sans-serif" x="70" y="70" fill="#212529" font-size="12" text-anchor="end">Bumper</text>

  <rect x="220" y="92" width="460" height="22" fill="#2f9e44" fill-opacity=".2" stroke="#2f9e44" stroke-width="1.5" stroke-dasharray="6 4" />

  <text font-family="ui-sans-serif, system-ui, Segoe UI, Arial, sans-serif" x="70" y="108" fill="#212529" font-size="12" text-anchor="end">Skippable in-stream</text>

  <rect x="220" y="130" width="160" height="22" fill="#1971c2" fill-opacity=".25" stroke="#1971c2" stroke-width="1.5" />

  <text font-family="ui-sans-serif, system-ui, Segoe UI, Arial, sans-serif" x="70" y="146" fill="#212529" font-size="12" text-anchor="end">Non-skippable</text>

  <rect x="400" y="168" width="280" height="22" fill="#1971c2" fill-opacity=".25" stroke="#1971c2" stroke-width="1.5" />

  <text font-family="ui-sans-serif, system-ui, Segoe UI, Arial, sans-serif" x="70" y="184" fill="#212529" font-size="12" text-anchor="end">Non-skippable (CTV)</text>
  <text font-family="ui-sans-serif, system-ui, Segoe UI, Arial, sans-serif" x="190" y="44" fill="#e03131" font-size="11">skip becomes available</text>
</svg>

The dashed red line at 5 seconds is the one that shapes the edit: on skippable in-stream, **everything that must land has to land before it.**

| Format                           | Duration          | Notes                                                       |
| :------------------------------- | :---------------- | :---------------------------------------------------------- |
| **Bumper**                       | Max 6 seconds     | Cannot be skipped. One message, one visual idea             |
| **Skippable in-stream**          | Minimum 7 seconds | Viewer can skip after 5 s. 15 s is a strong reusable target |
| **Non-skippable in-stream**      | 7–15 seconds      | Video Reach campaigns can also use 6, 15, and 30 s assets   |
| **Non-skippable (connected TV)** | 16–30 seconds     | **Horizontal only**                                         |
| **In-feed video**                | Any length        | Ideal length depends on objective                           |
| **Shorts**                       | Minimum 5 seconds | 6–60 s recommended for Video Reach Shorts inventory         |

## Video assets

| Orientation     | Build at    |
| :-------------- | :---------- |
| Horizontal 16:9 | 1920 × 1080 |
| Vertical 9:16   | 1080 × 1920 |
| Square 1:1      | 1080 × 1080 |

Minimum recommended quality **720p**. Maximum file size 256 GB.

## Images

| Asset             | Spec                                                |
| :---------------- | :-------------------------------------------------- |
| In-feed thumbnail | 1280 × 720 (16:9), JPG/GIF/PNG, under 2 MB          |
| Companion banner  | 300 × 60, JPG/GIF/PNG, max 150 KB. **Desktop only** |

The companion banner can be uploaded or generated from your YouTube channel banner.

## Copy limits

| Placement     | Field       | Limit                          |
| :------------ | :---------- | :----------------------------- |
| In-feed video | Headline    | Up to 2 lines of 40 characters |
| In-feed video | Description | Up to 2 lines of 35 characters |
| Shorts        | Headline    | 40 characters                  |
| Shorts        | Description | 90 characters                  |

In-feed text may not display on every device or placement, so do not put anything load-bearing there.

## Working notes

* **Front-load the first five seconds.** Brand, product, and the main message go before the skip button appears.
* **A 15-second horizontal master is the most reusable single asset.** It clears the skippable minimum and the non-skippable range.
* **Connected TV is horizontal only.** A vertical-only campaign forfeits that inventory.

## Related resources

* [Image and video specs](/image-and-video-specs)
* [Google YouTube copy template](/google-youtube-copy-template)
* [Performance Max creative specs](/google-pmax-creative-specs)
* [Creative brief](/creative-brief)
