MaskWright

2026-05-27 · Jordan Hale · 652 words

Ads in the dashboard, not in your tabs

Ads in dashboard chrome, not in launched tabs. Feed plus iframe wrappers. This privacy note is where the free app puts the bill, and where it does not.

Ads in the dashboard, not in your tabs 1

The free app puts the bill in chrome we draw: a sidebar slot and a footer slot in the operator UI. It does not inject banners into Seller Central. That is the placement I will defend. I will also name the caveat, because the ads feed can still open a URL when a profile starts.

This privacy note sits in Privacy. A free app funded by owned ad slots is the monetization twin. What leaves this machine is the ledger.

What you see in the dashboard

Iframes from https://www.maskwright.com/electron-ad-sidebar (300 by 250) and electron-ad-test (728 by 90). Those wrappers load third-party scripts (effectivecpmnetwork.com, highperformanceformat.com among names in the routes). They see a normal web ad request from the machine that loaded the operator UI. They do not get your profiles.json.

A JSON feed at https://maskwright.com/ads/v1/creatives.json (override MASKWRIGHT_ADS_URL) rotates every 15 to 20 seconds. The dashboard iframes currently use hardcoded wrapper URLs. They do not bind src to the feed’s click URL. Two channels, one app.

The launch-tab caveat

The ads package can include launchUrl, launchTabUrl, and launchTabIntervalSec. Those can open a page in a launched Chromium via internal CDP. Hosted examples have pointed at lab pages. Defaults in code have pointed at an ad network host. So the title is placement in chrome we draw, plus a hook I will not hide.

That is still not “we inject a banner into every site.” It is a tab the profile may open. If that bothers you, firewall the feed and the wrappers. There is no shipped toggle in 0.1.

What ads are not

Not your cookie store. Cookie-based sessions. Sharing a profile is still sharing cookies, ads or not. Not a backup. Backing up the store. Not localStorage import. Not disk use except whatever cache the iframes leave in Electron. Unsigned builds and SmartScreen is a different Windows warning.

SurfaceAds?
Operator sidebar / footerYes, iframes
Seller Central page contentNot injected by us
Optional launch tabPossible via ads hooks
Profile cookie uploadNo

I want the operator UI to look like a tool with ads, not like a page you shop on. Seller Central should look like Seller Central. If a launched profile opens an extra tab to an ad host because of a feed hook, that is a tab you can close, and a reason to read the JSON. It is still not a skin over the shop.

Electron loads those iframes even while a profile is quit. That is app traffic. It is in the leave-the-machine pillar. Blocking maskwright.com blanks the slots. The store still opens. Unsigned Windows builds are a separate warning on first install, not an ad network.

If a future build adds a disable switch, this page should say so. August 2026: no switch I can point at.

Pushback I hear: “just add a paywall.” There is no payment flow in 0.1. Blocking hosts blanks slots. The store still opens. Read the JSON if a launch tab surprises you. The title is placement in chrome we draw, plus a hook I will not hide. August 2026: no disable switch I can point at.

FAQ

Can I pay to remove ads?

No payment flow in 0.1. Block hosts if you must live with blank slots.

Do ad networks see which profiles I have?

They see the operator UI’s web requests, not a list of uuids. I will not invent “zero identifiers.” Ordinary ad requests are ordinary.

Is this why the app is free?

Yes. Download MaskWright. Read the pillar if you want the full leftover list.

We fund the launcher with slots in the launcher. We do not fund it by selling your last mile or by painting over the shop you logged into. The launch-tab hook stays on the record so the title does not get cleaner than the code.

Related notes