Performance Max image assets: three ratios, 5120 KB cap, 20 each
Performance Max wants landscape 1.91:1, square and 4:5 portrait images up to 5120 KB, 1 to 20 each. How to batch a matrix of images on Sume. Read 2026-10-03.

Performance Max image assets come in three ratios: landscape 1.91:1, square 1:1 and portrait 4:5, each file under 5120 KB, with 1 to 20 images per type. Sume's image API covers square and 4:5 directly, and landscape needs the closest listed ratio plus a crop check.
The Google asset table
The Google Ads API page on Performance Max asset requirements lists these sizes. They were read on 2026-10-03.
| Asset | Ratio | Recommended | Minimum | Count |
|---|---|---|---|---|
| Landscape image | 1.91:1 | 1200x628 | 600x314 | 1 to 20 |
| Square image | 1:1 | 1200x1200 | 300x300 | 1 to 20 |
| Portrait image | 4:5 | 960x1200 | 480x600 | 1 to 20 |
Limits that apply to every file
The page sets a 5120 KB maximum per image and accepts GIF, JPG and PNG. A photo-like image saved as PNG can exceed that, so export photographic assets as JPEG. Sume's Image API accepts output_format of png, jpeg, webp or svg per model, so request jpeg for photos and leave webp and svg out of this channel.
Where Sume ratios match
Sume lists these normalized aspect ratios: 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 4:5, 5:4, 1:2, 2:1, 1:4, 4:1, 1:8, 8:1, 9:21 and 21:9. A given model accepts only the subset in its catalog descriptors. Square (1:1) and portrait (4:5) are on the list. 1.91:1 is not, so for landscape generate at 16:9 or 2:1 and crop to 1.91:1 yourself.
The docs also note that for 4:5 the model's native size can differ from 1080x1350 and that an exact pixel target is a post-step, so measure the files you get back against the minimums in the table.
A batch matrix
A small script can fan one set of prompts across ratios and keep the output grouped by asset type. The version below submits one image per prompt per ratio and prints where each result is, handling both the 200 image response and the 202 job envelope.
import os
import requests
URL = "https://api.sume.com/v1/images"
HEADERS = {
"Authorization": f"Bearer {os.environ['SUME_API_KEY']}",
"Content-Type": "application/json",
}
# A ratio only works on models whose catalog descriptor lists it (read supported_parameters).
RATIOS = {"square": "1:1", "portrait": "4:5", "landscape": "16:9"}
PROMPTS = ["Running shoe on a clean studio floor", "Running shoe on wet pavement at dawn"]
for kind, ratio in RATIOS.items():
for n, prompt in enumerate(PROMPTS, start=1):
body = {
"model": "openai/gpt-image-2",
"prompt": prompt,
"aspect_ratio": ratio,
"output_format": "jpeg",
}
r = requests.post(URL, headers=HEADERS, json=body, timeout=60)
if r.status_code == 200:
print(kind, n, r.json()["data"][0]["url"])
elif r.status_code == 202:
print(kind, n, "queued", r.json()["data"]["status_url"])
else:
print(kind, n, "error", r.status_code, r.text[:200])Before upload
Check three things per file: the pixel size against the minimum, the byte size against 5120 KB, and the crop for landscape.
Sources
Related posts
More in Use cases
- Performance Max logo assets: 1200x1200 square and 1200x300 landscape
Performance Max takes a 1:1 logo at 1200x1200 (minimum 128x128) and a 4:1 landscape logo at 1200x300. How to prepare both with Sume. Read 2026-10-03.
- Pinterest ad disclosure: "modified with AI" or "AI-generated person"
Pinterest labels AI content from IPTC metadata, classifiers and creator disclosure. For ads you disclose via the ellipsis menu. Which wording fits which image.
- Pinterest see-fewer AI Pins: beauty, decor, fashion, food and drink
Pinterest's see-fewer GenAI controls cover beauty, art, fashion, decor, health and sport, plus food and drink from December 12, 2025. What it means for Pins.
- Seedance 2.5 C2PA, watermark and real-face rules: an ad checklist
BytePlus lists C2PA credentials, visible watermarks and real-face limits for Seedance 2.5. A checklist of what to confirm and record before an ad clip ships.
Written by Sume