TikTok app ad download card: keep the closing beat clean in Timeline

TikTok's spec page says an app ad's download card is generated and shown after the call to action. Build the last slot of your Timeline render to suit it.

5 min readSume
All posts

TikTok's In-Feed ad specification page says the download card applies only to App ads and is generated automatically, shown immediately after the call-to-action content or background color appears. You do not draw it. What you control is the ending of the video: a Timeline render with a clean final slot leaves room for it.

What the TikTok page says

The "TikTok Auction In-Feed Ads" page (read 2026-10-05) has a Download Card section. It says the card "applies only to App ads" and is "automatically generated and shown immediately after the appearance of the call-to-action content or background color."

The page also says the safe zone size depends on the video dimension, the ad caption length and any additional formats, and it links downloadable safe-zone files. It does not describe the card's exact on-screen position in the text I read, so use TikTok's own files to check placement rather than guessing.

What that means for the edit

Because the card follows your call to action, a busy final frame fights it. A simple ending helps: the product or app on a plain background, one short line of text, and no burned captions running into the closing seconds. If your captions end earlier than the video, they cannot collide with anything that appears at the end.

Build the closing slot in Timeline 1.0

Timeline 1.0 assembles one audio track plus ordered video[] slots into an MP4. The default output is 1080 by 1920. Each slot has a start, a duration and an optional fit, and a slot after the first can carry a transition of up to one second.

Make the last slot a still or a quiet clip. Stills are static holds in Timeline, which is fine for a closing frame. Make audio.duration_seconds end when the last slot ends; the docs say coverage can stop at most 0.5 seconds before the end of the spine.

{
  "audio": { "url": "https://media.sume.com/artifacts/artf_demo/vo.wav", "duration_seconds": 15 },
  "video": [
    { "source_url": "https://media.sume.com/artifacts/artf_demo/demo.mp4", "start": 0, "duration": 12 },
    { "source_url": "https://media.sume.com/artifacts/artf_demo/closing-still.png", "start": 12, "duration": 3,
      "transition": { "type": "fade", "duration": 0.25 } }
  ]
}

Check before you pay

POST /v1/timeline-1.0/plan is unbilled. It compiles the same body and returns the duration, segment count and estimate without creating a job. The render itself is priced at $0.10 per ceil output minute in the docs, so a 15 second spot reserves one minute. Confirm the live rate in GET /v1/catalog.

Captions are a separate pass. Burn them last, and end their final cue before the closing slot starts.

  • Do not rely on the download card for the offer; say it in your own CTA line.
  • Check TikTok's safe-zone files for the In-Feed with Anchor variant if your ad uses anchors.
  • Re-run the plan whenever you change a slot length.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume