TikTok Display Card image: upload 1920x1080, shown at 750x421

TikTok Display Card: JPG or PNG, 1920x1080 recommended, shown at 750x421, popup time set by TikTok. What to make and how to pick a contrasting color.

5 min readSume
All posts

A TikTok Display Card is a 16:9 still that pops up over your video ad: TikTok recommends uploading it at 1920x1080 pixels and displays it at 750 by 421 pixels, as a .jpg, .jpeg or .png with no file-size limit stated (read 2026-10-03). You cannot choose when it appears. TikTok says the card pops up automatically after the ad has run for a few seconds, with the timing optimized and not customizable.

That makes the Display Card an image job, not a video job. Sume can generate a 16:9 still and can show you which frame of your clip the card will cover, but the card itself is a separate upload inside Ads Manager.

The numbers TikTok gives for the card

The creation steps are short. You need a campaign with Single Video as the ad format, finish the creative (video, text, link, call to action), open Interactive Add-ons, choose Card, select Display Card and upload the image (read 2026-10-03). The help article was last updated in February 2025, so re-read it before a big launch.

Display Card facts from TikTok Ads Help, read 2026-10-03
ItemTikTok's wording or valueNote for your asset
Recommended upload1920 x 1080 pixelsExport one 16:9 master at this size
Final display750 x 421 pixelsCheck text at about 39 percent of the upload width
Formatsjpg, jpeg, pngSume still images can be JPEG or PNG
File sizeNo limit statedStill keep it light for review and preview
TimingPops up after a few seconds, not customizableDo not rely on a specific second
ShapeRectangular, borders may be transparentAvoid transparency in the center
Call to actionCTA button must be clearly visibleDraw a high-contrast button area

Make the still with Sume images

Sume's image generation takes an aspect_ratio from each model's native catalog, and on models that accept custom pixels an image_size of WIDTHxHEIGHT. On GPT models both edges must be multiples of 16, so 1920x1080 is not a legal custom size there (1080 is not a multiple of 16); ask for 16:9 and read the returned dimensions, or resize afterward. TikTok's 750x421 is a 1.78 ratio, so a 16:9 render matches.

Image models often garble small button text. Keep the call to action to one or two short words, render at the largest size you can, and look at it at 750 pixels wide before you upload. TikTok also asks for smooth, clear edges, no mosaic or serrated look, and no pixelated assets, so an upscaled low-resolution render is a rejection risk.

Pick a card color that stands out from the clip

TikTok says the card color should stand out from the video. Because the card appears a few seconds in, the frames under it are the ones from the early seconds. Extract stills from the clip with video frames at, say, 3 and 6 seconds and measure their dominant colors, then choose a card color far from them. Frames submit as 202, and the resource at GET /v1/video-frames/:id returns frames[{t,url,width,height}] when resource_status is ready.

This script pulls those two stills and prints their mean color. It needs SUME_API_KEY, requests and Pillow, plus a clip on media.sume.com.

import os, io, time, requests
from PIL import Image
BASE = "https://api.sume.com"
H = {"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"}
clip = "https://media.sume.com/artifacts/artf_demo/ad.mp4"
r = requests.post(BASE + "/v1/video-frames", json={"video_url": clip, "at": [3, 6]},
                  headers={**H, "Idempotency-Key": "card-colors-001"})
r.raise_for_status()
rid = r.json()["request_id"]
while True:
    res = requests.get(f"{BASE}/v1/video-frames/{rid}", headers=H).json()
    vf = res.get("video_frames", res)
    if vf.get("resource_status") in ("ready", "failed"):
        break
    time.sleep(3)
for f in vf.get("frames", []):
    if f.get("url"):
        img = Image.open(io.BytesIO(requests.get(f["url"]).content)).convert("RGB")
        print(f["t"], img.resize((1, 1)).getpixel((0, 0)))

Limits to plan around

Two review habits help. First, export the card at exactly the recommended 1920x1080 and keep the key content away from the edges, since TikTok only says the borders may be transparent and says nothing about cropping, so anything near the border is a risk you cannot test until preview. Second, keep a text-free version of the card art alongside the lettered one, so a rejected call to action does not force you to regenerate the whole image.

Sume does not build the Interactive Add-on, upload the card, or control when it shows; those stay in Ads Manager. Image cost depends on the model you pick, so read the live price in GET /v1/catalog rather than assuming one. If your clip is not yet hosted on media.sume.com, import it first, since the frame endpoint refuses off-host URLs.

Keep the 1920 x 1080 upload and the 750 x 421 preview crop side by side in your notes. When a reviewer asks why a headline looks small on the card, the crop shows what TikTok displays, and the original shows what you uploaded.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume