Release checklist
TV apps stay on TVs for a long time in the version you submit, and store reviews take days. Go through this list before every submission, and especially before the first one: some settings only reach TVs with a new release.
In the dashboard
- The app answers "Is this app made for children?". Unanswered apps are treated as made for children, with fewer ads (why).
- Each platform you submit to has a listing with your app ID: Tizen, webOS, Whale TV, Titan OS.
- Your developer website has the app-ads.txt line, so the listing can go live as soon as the store URL is added.
- Your placements have their reward amount and icon, if you use rewarded ads.
In your build
SofAds.inituses your real app ID (sof_…), notsof_YOUR_APP_ID.- No
test: trueinSofAds.init, and noSofAds.debug(true). - You tested on a real TV: a test ad at each placement, the rewarded flow including the scan test, and BACK during an ad.
- Your app pauses its loop and sound in
onPauseand continues inonResume. - A no fill never blocks the user: the game goes on without an ad.
- The SDK is bundled in your package, or loaded from a pinned version (
https://sdk.sofadsrv.com/v1.0.0/sofads.min.js), never a "latest" URL. The SDK changelog lists the versions.
Samsung Tizen
$WEBAPIS/webapis/webapis.jscomes before the SDK inindex.html.config.xmlhas the starter lines:<access origin="*" subdomains="true">,<tizen:allow-navigation>*</tizen:allow-navigation>and the four privileges. Published apps are rarely updated, so put them in the first release.- If Google demand may ever be enabled for your app: the Google (PAL) privileges block too, and your Content Manager knows the app may load Google's PAL script (Samsung asks for permission before an app loads external scripts).
- No inline scripts or styles in your pages (Samsung asks for a policy without
unsafe-inline, andallow-navigationputs the app in Tizen's CSP-based security mode).
Hosted apps
For Tizen hosted apps, Whale TV and Titan OS, where your app runs from your own website:
Tizen: Samsung agreed. Samsung generally doesn't accept hosted apps in its store; ask your Content Manager before you build one. Tizen APIs aren't supported on hosted pages, so the SDK runs there without TIFA (details).
The packaged start page opens your hosted URL and shows a translated offline screen with a retry button when the site can't be reached (template).
The app keeps one permanent domain. Browser storage and the SofAds install ID belong to the domain, so moving it starts every user over: caps, test devices and analytics see new users.
The hosted site loads a pinned SDK version, so an SDK update reaches your users when you choose.
Consent and privacy
- Your consent screen or consent tool passes its result to the SDK (
consentininit, thenSofAds.setConsent()), as on privacy and consent. - Your privacy policy has the lines for each platform, and your store listing links to it.
- Your privacy settings offer a "Reset advertising ID" button that calls
SofAds.resetAdvertisingId().
After the app is live
- Add the store URL on each listing. SofAds then reads the developer URL from the store page and checks app-ads.txt.
- The listing switches to live and real ads start. If it stays pending, see listing pending.
- Register your own TVs as test devices, so checking the live app never counts as real views.
Sources
Checked on October 8, 2026. Store rules change; when a source and this page disagree, the source wins.
- Samsung Developers: Hosted applications FAQ
- Tizen Docs: Web runtime, content security policy and the CSP-based security mode
- IAB Tech Lab: app-ads.txt specification (GitHub)
Keep reading
- Troubleshooting: what each SDK and dashboard message means.
- Samsung Tizen setup: the complete config.xml and the hosted-app template.