Demand Gen logo 150 KB, images 5 MB: check sizes before upload
Demand Gen allows images up to 5 MB but logos only 150 KB. Check bytes on every Sume image before upload, since output compression is not served in v1.

Google's Demand Gen image specs cap image assets at 5 MB but cap a logo at 150 KB, a limit more than 30 times smaller. A generated logo at the recommended size can pass the dimension check and still fail on bytes. Sume's image API does not serve output_compression in v1, so you cannot ask it for a smaller file; the dependable fix is to measure every file before upload and regenerate or convert any that are over.
The limits Google lists
The Demand Gen image page, read on 2026-10-03, gives sizes and ratios for each asset type.
| Asset | Minimum / recommended | Size limit |
|---|---|---|
| Square 1:1 | 300x300 / 1200x1200 | 5 MB |
| Landscape 1.91:1 | 600x314 / 1200x628 | 5 MB |
| Portrait 4:5 | 480x600 / 960x1200 | 5 MB |
| Vertical 9:16 | 600x1067 / 1080x1920 | 5 MB |
| Logo | Not read for this post | 150 KB |
Why a logo is the likely failure
Photographic detail, gradients and noise make files large. A flat logo compresses well, but a model-generated one often carries texture and soft shading that a designer's vector would not. Dimensions and ratio are only half of what Google validates, and the byte limit is the one that does not show up in a preview.
The page also allows up to 20 images per ad and 2 to 10 cards in a carousel, so a batch can contain dozens of files and one oversized logo is easy to miss by eye.
What Sume lets you control
The images docs list output_format as png, jpeg, webp or svg, with each model accepting only what its catalog lists, so read supported_parameters first. They state that output_compression and seed are in the schema but advertised by no model in v1, so sending either returns 400 unsupported_parameter. Aspect ratios include 1:1, 4:5 and 9:16, and the resolution tiers are 512, 1K, 2K and 4K.
Two levers remain: a lower resolution tier, and a different format. The Demand Gen page text read for this post does not list accepted file types, so do not assume webp is accepted for ads without checking the current page.
A byte check that runs before upload
Run this over the URLs a generation batch returned. It reads each file, compares the byte count to the limit for its role, and prints the offenders. It uses only the standard library.
import urllib.request
LIMITS = {"image": 5 * 1024 * 1024, "logo": 150 * 1024}
def check(url, role):
with urllib.request.urlopen(url, timeout=60) as r:
body = r.read()
kind = r.headers.get("Content-Type", "")
ok = len(body) <= LIMITS[role]
return ok, len(body), kind
batch = [
("https://media.sume.com/img/example/0.png", "image"),
("https://media.sume.com/img/example/logo.png", "logo"),
]
for url, role in batch:
ok, size, kind = check(url, role)
print(role, "OK" if ok else "TOO BIG", size, kind)Keep the check in the pipeline
Run the byte check as a gate between generation and upload, not as a manual step at the end. A gate that fails the whole batch on one oversized logo is annoying but cheap, and a rejected asset in an ad account is slower to discover. Log the size next to the job id so you can see which prompts tend to produce heavy files, and adjust the brief for logos accordingly.
If the logo is over
Regenerate at a lower tier before trying anything else, and ask for a flat background and few colors in the prompt, since less detail means fewer bytes. Keep the generation job output, then re-measure. A logo you will use for months is also worth a one-time manual export in a design tool, where file weight can be tuned directly.
Sources
Related posts
More in Use cases
- Demand Gen video ads: four ratios, a 5 s floor and the 4:5 gap
Demand Gen video takes 1:1, 16:9, 4:5 and 9:16, from 5 s. How to render the four-ratio set with Sume, including the 4:5 case the video API does not list.
- Dhanteras Nov 6 jeweller clip with the product commercial Format
Make a Dhanteras product clip for a jewellery counter with one call to Sume's sume-product-commercial Format, a $20 spend cap and a poll until the receipt.
- Digital signage greeter: a 9:16 avatar clip loop, priced on Sume
A signage greeter from Sume Avatar 1.0: pick 9:16, 3:4 or 16:9 per screen, render five 20-second clips, and see the cost by tier for the whole rotation.
- Animate a rangoli photo into a 5-second Diwali clip for $0.63
Turn your own rangoli photo into a 5-second diya-flicker clip for Diwali on Sunday, November 8, 2026. Wan 3.0 first frame at 720p is $0.625 on Sume.
Written by Sume