Demand Gen one-click image ads: match the landing page
Google's September 2026 Demand Gen Drop adds one-click landing pages from image ads on YouTube Shorts and Gmail. Make a matching page hero with Sume.

Google's September 24, 2026 Demand Gen Drop adds a one-click landing page: a single tap on an image ad on YouTube Shorts or Gmail goes to your landing page. For Shorts, Google says to upload 9:16 full-bleed image ads, and it says adding Gmail to Demand Gen gives a 40% increase in conversions at the same ROI for image creatives. With one tap and no extra step, the page the tap opens has to continue the ad.
These points are from Google's announcement, read on 2026-10-02. For the image size itself, see the related post.
What did Google announce?
The relevant items for image advertisers are these.
| Item | What the page says |
|---|---|
| One-click landing page | Single tap on image ads on YouTube Shorts and Gmail |
| Shorts image ads | Upload 9:16 full-bleed image ads |
| Gmail in Demand Gen | 40% increase in conversions at the same ROI, for image creatives (Google's figure) |
| Business Agent for YouTube Ads | Sign-up |
What should the landing page do?
Reuse the ad's product, colour and headline in the page hero so the tap feels like a continuation. If the ad shows a blue jacket, the page should open on the same blue jacket, not a category grid.
Make the hero from the same image
Take the ad's source photo and request a wider hero with the Image API: aspect_ratio 16:9 for desktop, or 4:5 for a mobile hero. Keep the product unchanged and leave space for your own headline text, added in code, not in the pixels.
import os, requests
r = requests.post(
"https://api.sume.com/v1/images",
headers={"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"},
json={
"model": "sume/auto",
"prompt": "Wide landing page hero from this exact product photo, same colours, empty space on the left for a headline, no text in the image",
"input_references": [
{"type": "image_url", "image_url": {"url": "https://example.com/ads/jacket.jpg"}}
],
"aspect_ratio": "16:9",
},
timeout=60,
)
body = r.json()
if r.status_code == 200:
print(body["data"][0]["url"])
else: # 202: poll the job
print(body["data"]["status_url"])
Sources
Related posts
More in Use cases
- Diwali greeting video from photos: music bed and Timeline render
Make a 20-second Diwali greeting video from four photos: generate an instrumental bed with Music Router, add fades, and render vertically for status posts.
- Does the EU AI label replace an ad disclosure? Article 50(6) says no
Article 50(6) leaves other transparency law untouched. An AI label and an ad disclosure are two lines, and Sume caption cues can burn in both.
- DoorDash menu photos: 1400x800, 16:9, unedited. Use AI elsewhere
DoorDash wants menu photos at least 1400x800, 16:9, under 2 MB and unedited. Keep AI out of the menu; make promo clips and ads from the same photo with Sume.
- ElevenLabs Avatars Flows batch hooks vs Sume idempotent submits
ElevenLabs integrates Avatars with Flows to batch products, languages and hooks. How to batch avatar videos in Sume with idempotency keys.
Written by Sume