Skippable ads: how the skip button works
Some video ads may be skipped after a few seconds. The SDK handles that for you, the same way for every ad source, following the skip button requirements Google sets for its demand on TVs. Your app only sees the result.
From countdown to skip
- Not skippable yet. The ad says when it may be skipped: the VAST
skipoffset(or the campaign's skip time). Until then a translated notice shows how long is left: "You can skip in 5 s". - Skip ad. When the countdown ends, a "Skip ad" button with text and a skip-next icon replaces the notice and takes the remote focus by itself, so a single OK press skips.
- Skipped. The ad closes and your app continues.
An ad without a skipoffset is not skippable. BACK still works on every ad screen, as on any TV app.
Where the button sits
- Bottom right of the ad for left-to-right languages, bottom left for right-to-left languages such as Arabic.
- Sized for viewing from the sofa, inside the TV-safe margin.
- Reachable with the arrow keys of the remote and focused automatically when the countdown ends.
- Text plus the skip-next icon, in the ad's language.
The button text comes from Google's own translations. For the languages the SofAds frame supports:
| Language | Button text |
|---|---|
English (en) | Skip Ad |
Dutch (nl) | Advertentie overslaan |
German (de) | Überspringen |
French (fr) | Ignorer l'annonce |
Spanish (es) | Saltar anuncio |
Italian (it) | Salta annuncio |
Polish (pl) | Pomiń reklamę |
Portuguese (pt) | Pular anúncio |
Arabic (ar) | تخطي الإعلان |
What a skip reports
On a skip the SDK fires the ad's VAST skip tracking, records a SofAds skip event, and tells the ad's signal providers about the interaction (for Google demand that is PAL's sendAdTouch). In your app:
async function betweenLevels() {
const r = await SofAds.showInterstitial({ placement: "level_break" });
// r.skipped is true when the viewer pressed Skip ad
if (r.skipped) console.log("skipped after", r.ad_id);
}
SofAds.on("skip", (e) => console.log("skipped", e));The full event list is in the SofAds SDK reference.
Rewarded ads are never skippable
A rewarded ad has no skip button, even when the video has a skipoffset. The viewer can close it with Close or BACK, and the screen says "No reward if you close". The reward only comes when the video completes (or, for a scan-to-reward ad, after the scan).
Try it with a test ad
Interstitial test ads rotate in Google's skippable sample ad, so you can see the countdown, the focused button and the skip events on your own TV before going live.
Frequently asked questions
Can I change when an ad becomes skippable?
No. The skip time comes from the ad itself (the VAST skipoffset) or the campaign settings, so every app shows the same ad the same way.
Why is the skip button on the left in Arabic?
Google requires the skip button at the bottom right for left-to-right languages and at the bottom left for right-to-left languages, mirroring the reading direction.
Can viewers skip a rewarded ad?
No. Rewarded ads have no skip button. Closing one early is always possible, but then there is no reward.
Sources
Checked on October 7, 2026. Platform rules change; when a source and this page disagree, the source wins.
- Google PAL for CTV: Skippable ads (skip button requirements and translations)
- IAB Tech Lab: VAST 4.x (skipoffset and skip tracking)
- Google PAL for CTV: goog.ctv.pal reference
Keep reading
- Test ads and test devices: see the skip button on your own TV.
- Rewarded ads for Smart TV games: where rewarded video fits and how BACK should behave.
- Samsung Tizen setup: the Google (PAL) block for apps with Google demand.