Your options at a glance
webOS TV apps are web apps: either packaged (an IPK with your HTML, CSS and JavaScript) or hosted, where the installed app points at your own server. LG documents both types. Monetization therefore works the way it does on the web, minus the parts LG reserves for its partners.
| Ads | No public LG ads API or ad network for third-party apps. You bring your own: a VAST player plus an ad server or network that serves web apps. |
|---|---|
| In-app purchases | LG Billing for in-app purchase is discontinued. LG recommends Paymentwall; other third-party billing may need a separate contract with LG. |
| Subscriptions | Through your billing provider (Paymentwall or another approved option). Seller Lounge lists webOS Pay and third-party billing as options. |
| Paid apps | Not covered by any public LG billing documentation we could find. Ask in Seller Lounge. |
| Advertising ID | None for third parties. LGUDID is a device ID that needs the user's agreement first. |
| Proxy / bandwidth SDKs | Banned: LG said in July 2026 that apps keeping a residential proxy option will be suspended. |
"Is there an ad network from LG?"
It keeps coming up on LG's own developer forum, and LG staff have answered it twice:
"Ads API is only available for contracted LG partners."
In December 2024 the answer to "is there an advertising network from LG?" was that no advertising-related APIs are provided. Either way, a third-party developer gets no public ad SDK from LG. LG Ad Solutions, LG's advertising business, sells ads on LG's own surfaces, such as the home screen and its LG Channels streaming service; we found no public program that lets independent app developers sell ads through it.
What webOS developers use instead is ordinary web ad technology that has to survive a TV browser:
- A VAST video player in your app, fed by an ad server or network that accepts web or CTV app traffic.
- Direct deals: sponsors or cross-promotion you sell yourself, served from your own server.
- An ad SDK built for TV web apps, which bundles the player, remote handling and the ad request in one script. That is the gap SofAds is built for (see below).
Playing VAST ads on webOS
A recurring forum thread: VAST or VMAP ads play through Google IMA in a desktop browser, but not on the LG TV. LG's reply was that it cannot check third-party solution issues. Google's own IMA page doesn't list LG TVs as a supported platform; it says to contact your Google account manager to learn more about LG TV support. So IMA on webOS is something you test yourself, with no promise from either side.
Google does publish an official guide for its PAL library on LG webOS. PAL generates a nonce for ad requests to Google Ad Manager, so it is useful if you already have an Ad Manager account; it is not an ad network on its own.
Things that make video ads more reliable on TV browsers, whichever stack you pick:
- Resolve VAST wrappers on a server, not on the TV. Each wrapper hop is another request from a slow device, and the chain can end empty.
- Pick one progressive MP4 that fits the screen, rather than relying on the TV to choose from many renditions.
- Pause your game's render loop before the video starts. WebGL games and video decoding compete for the same GPU on low-end panels.
- Handle BACK yourself. On webOS the BACK key is keyCode 461. An ad overlay that ignores it leaves the user stuck.
- Always time out. If the ad hasn't started within a few seconds, close it and give the game back.
LGUDID: a device ID, not an advertising ID
Samsung has TIFA, a resettable advertising ID. LG has no public equivalent for third-party apps. What it documents is LGUDID, a device unique ID:
- It needs webOS TV 3.0 or later and is read through the luna service
luna://com.webos.service.sm, methoddeviceid/getIDs. - LG generates it from the MAC address as a seed plus a random UUID.
- LG's reference says you must get the user's agreement to use their personal information before you call the API.
- LG doesn't document whether or how a user can reset it.
webOS.service.request("luna://com.webos.service.sm", {
method: "deviceid/getIDs",
parameters: { idType: ["LGUDID"] },
onSuccess: (res) => { /* res.idList[0].idValue */ },
onFailure: () => { /* fall back to your own install ID */ },
});
Treat it as a device identifier under privacy law, ask first, and keep a fallback: a random install ID that your app generates and stores, which the user can reset. Our guide to advertising IDs on Smart TVs compares LGUDID with TIFA and WAID.
In-app purchases: LG billing is gone, Paymentwall is the default
LG's in-app purchase guide is short: "The LG Billing Service for In-App Purchase is no longer provided." LG recommends Paymentwall, and says it may ask for a separate contract if you use another third-party billing solution.
In Seller Lounge, the billing options are webOS Pay, third-party billing, or both. When developers asked in August 2026 whether Stripe or PayPal were allowed, LG pointed them to the provider and to Seller Lounge 1:1 Q&A rather than giving a yes or no. webOS Pay is tied to the user's LG account; whether every third-party developer can use it is not clear from public documents.
LG publishes no revenue-share figures for any of these. Ask before you build a store around IAP, and see TV in-app purchases: Samsung Checkout vs Paymentwall for the comparison with Tizen.
app-ads.txt and the developer URL in Seller Lounge
Ad buyers check app-ads.txt by reading the developer URL from your store listing and fetching /app-ads.txt from that domain. On LG this is the weak link:
- In 2025 a developer reported that the developer URL on LG listings was not exposed to app-ads.txt crawlers. LG's answer was to raise it through Seller Lounge 1:1 Q&A.
- In August 2026 a question about inventory partner domain (IPD) support was redirected to Seller Lounge as well.
- When we fetched LG store pages, the IAB
appstore:*meta tags were present but empty for the apps we tried.
So: publish the file on your developer domain anyway, make sure the developer URL in Seller Lounge is correct, and ask LG directly if a buyer can't verify it. The full setup, with store ID formats, is in our app-ads.txt guide for TV apps.
LG's July 2026 proxy SDK suspension
Until mid-2026, a common way to earn from a free webOS app was a residential proxy SDK such as Bright Data's Bright SDK: with the user's consent, the app let a proxy network route traffic through the TV, and the SDK vendor paid the developer. Spur found residential proxy SDKs in more than 42% of the LG webOS apps it analyzed.
On July 21, 2026, LG's SVP John Taylor told KrebsOnSecurity:
"A residential proxy network is not an intended use for LG smart TVs ... If this option is not removed, these apps will be suspended."
If your app has one, remove it before your next update. Our guide to Bright SDK alternatives after the LG and Samsung ban covers what to replace the revenue with.
Rewarded and QR formats with the Magic Remote
webOS users hold either a pointer-style Magic Remote or a plain D-pad remote, so every ad screen has to work with both: one focused button, OK and click doing the same thing, and BACK always available.
- Interstitial video at natural breaks (between levels, after game over), skippable after a few seconds.
- Rewarded video: the player opts in for an extra life or coins. BACK may end it early, without the reward, and the screen should say so.
- Scan-to-reward QR: the reward is granted when the player scans a QR code with their phone, instead of after a 30-second video.
Placement and remote UX are covered in rewarded ads for Smart TV games; the QR side in QR code ads on TV.
Early access
How SofAds fits on webOS
SofAds is the ad network for Smart TV apps and games, and webOS is one of its four launch platforms. It is new: we are onboarding the first outside publishers by hand, and we have no traffic or earnings numbers to show you yet.
- One script in your app that renders interstitial, rewarded, scan-to-reward QR and QR card ads as overlays, with BACK (461), OK and Magic Remote clicks handled.
- Server-side decisioning: wrappers are resolved, floors and frequency caps applied on our server, so changing the setup needs no new LG submission.
- Never-throw: every call settles as
shown,no_fill,errorortimeout. - Free usage analytics: daily users, retention and sessions by TV model and country.
SofAds.init({
appId: "sof_YOUR_APP_ID",
onPause: () => game.pause(), // stop your render loop before video
onResume: () => game.resume(),
});
// At a natural break: the call always settles, the game just continues.
async function onLevelComplete() {
await SofAds.showInterstitial({ placement: "level_break" });
startNextLevel();
}
// The player chose to watch for a reward. onReward fires at most once;
// addCoins is your own function.
function onExtraLifeButton() {
SofAds.showRewarded({
placement: "extra_life",
onReward: (reward) => addCoins(reward.amount),
});
}
On webOS, include webOSTV.js so the SDK can read your app ID with webOS.fetchAppId(). It reads LGUDID only where your consent setup allows it and otherwise uses its own resettable install ID. If your app sets a Content Security Policy, allow https://*.sofadsrv.com. The LG webOS setup docs have a complete appinfo.json and index.html.
See how SofAds works for publishers or email hello@sofads.com with your webOS app.
Frequently asked questions
Is it possible to integrate advertising into webOS apps?
Yes. webOS apps are web apps, so you can play ads with a web video player and your own ad source. What LG doesn't offer third parties is its own ads API or ad network: LG staff said the Ads API is only for contracted LG partners.
Which ad networks can be used on webOS?
Any ad server or network that accepts web or CTV app traffic and returns VAST video that a TV browser can play. Mobile ad SDKs built for native Android or iOS apps can't be loaded into a webOS web app. Google IMA is not officially listed for LG TVs; Google says to ask your account manager.
Why don't my VAST ads play on an LG TV when they play in Chrome?
TV browsers are slower and stricter than desktop Chrome. Common causes are long VAST wrapper chains, ad media in a format or bitrate the TV can't decode, and a WebGL render loop competing with video. Resolve wrappers on a server, serve one MP4 that fits the screen, and pause your render loop during the ad.
How do I get the advertising ID or Limit Ad Tracking on LG?
LG offers no public advertising ID or Limit Ad Tracking flag to third-party apps. LGUDID is a device unique ID, read through luna://com.webos.service.sm, and LG requires the user's agreement before you use it. Many apps use their own resettable install ID instead.
Does LG still offer in-app billing?
No. LG's documentation says the LG Billing Service for In-App Purchase is no longer provided and recommends Paymentwall. Other third-party billing may need a separate contract with LG.
Does the LG Content Store support app-ads.txt and inventory partner domains?
Publish app-ads.txt on your developer domain, but check that buyers can actually find it: developers have reported that LG's developer URL was not exposed to crawlers, and LG directs both app-ads.txt and IPD questions to Seller Lounge.
Are residential proxy SDKs like Bright SDK still allowed on LG TVs?
No. In July 2026 LG said apps that don't remove a residential proxy option will be suspended.
Sources
Checked on October 7, 2026. Platform rules change; when a source and this page disagree, the source wins.
- LG webOS TV Developer: Web app types
- LG webOS TV Developer: App approval process
- LG webOS TV Developer: App ecosystem
- LG webOS TV Developer: In-app purchase
- LG webOS TV forum: In-app purchase (Aug 2026)
- LG webOS TV Developer: Device unique ID (LGUDID)
- LG webOS TV forum: Programmatic advertisement on an LG TV app (Jan 2024)
- LG webOS TV forum: Ads network for webOS (Dec 2024)
- LG webOS TV forum: Playing ads on an LG Smart TV web application (May 2024)
- LG Ad Solutions: CTV and home screen inventory factsheet
- LG webOS TV forum: Exposing the developer URL for app-ads.txt crawlers (2025)
- LG webOS TV forum: Inventory partner domain support (Aug 2026)
- Google IMA SDK: Other platforms
- Google PAL: Get started on LG webOS
- KrebsOnSecurity: LG to ban residential proxies from smart TV apps (Jul 2026)
- Spur: Smart TV apps and residential proxy SDKs