Extensions
Monetize your extension without injecting ads.
Give signed-in users an Earn button in your popup. The offerwall opens in a new tab, users complete offers for points, and your server spends those points on premium features. Nothing touches the sites they visit.
- 3,000+ offersby country and device
- No SDKone signed link, new tab
- MV3 friendlyno remote code shipped
How do you monetize a browser extension without ads?
Add an optional, clearly labeled Earn button to your popup or options page. When a signed-in user clicks it, your server returns a signed offerwall link and the extension opens it in a new tab with chrome.tabs.create. Users complete offers and earn points that your server spends on premium features or higher limits. A signed postback credits each reward. Your extension ships no remote code and never changes the websites people visit.
How it works for Extensions.
From the first click to the reward in your currency, in five steps.
User signs in
The user signs in to your account from the popup. The extension keeps only a session token, never your link salt or postback key.
Server signs the link
On a click on Earn, your API checks the session and returns a fresh wall link signed with your link hash salt for that account ID.
Wall opens in a new tab
The extension opens the link with chrome.tabs.create. The wall runs as an ordinary website, outside your extension code.
User completes an offer
The user picks an offer shown for their country and device and completes it in the browser tab.
Postback credits points
Your server gets a signed postback, adds the points once per transaction ID, and the popup shows the new balance next time it opens.
Why Extensions owners add Moonetix.
One pay-per-result affiliate network, built around your currency and your users.
Nothing injected into pages
The wall lives behind your own button. No banners, swapped affiliate tags or redirected searches on the sites your users browse.
No remote code in the package
Your extension fetches JSON from your API and opens a tab. No CDN script, no SDK, nothing that runs outside your submitted code.
Points that fit your purpose
Set your own points name, icon, rate per $1, user split and rounding, so rewards map to things your extension already sells.
Reach users who never pay
Users who skip your subscription can still earn premium time with offers, while paying users keep their plan.
Works for Electron apps too
Desktop apps use the same signed link, opened in the default browser or a locked-down window. See the Electron guide.
Compare extension and web users
Tag the link with
sub1=extensionand group clicks, conversions and reversals by sub ID in reports and the Reporting API.
The Earn button, in Manifest V3.
Your popup asks your own backend for a signed link and opens the offerwall in a new tab. Nothing remote runs inside the extension.
document.getElementById('earn').addEventListener('click', async () => {
// Your backend signs the link for the signed-in user
const { url } = await api('/offerwall-link');
if (typeof url === 'string' && url.startsWith('https://wall.moonetix.com/')) {
await chrome.tabs.create({ url });
}
});{
"manifest_version": 3,
"name": "Your extension",
"version": "1.0.0",
"action": { "default_popup": "popup.html" },
"permissions": ["storage"],
"host_permissions": ["https://api.yoursite.com/*"]
}No tabs permission needed
Chrome’s tabs reference says creating a tab needs no permission, so you avoid an extra install warning.
No secrets in the package
The hash salt and postback key stay on your server. The extension only receives a ready, signed link.
A real tab, not a frame
The offerwall opens in its own tab, so it never covers or changes the pages your users visit.
Full guide with the backend route: offerwall in a Chrome extension.
Pass store review.
Browser stores review monetization closely. These points come from the Chrome Web Store and Firefox add-on policies. Read them again before each release, and check every other store you publish in.
Do
- Describe the earn feature in your store listing and interface, and label the button as rewards from third-party offers.
- Keep every core feature usable without the wall, and let users hide the button in settings. Chrome says ads must be easy to remove.
- Keep points inside your extension’s single purpose, for example extra workspaces or more monthly checks.
- Name the offerwall partner and the user ID it receives in your privacy policy, and call your API over https only.
Do not
- Never give points for installing, rating or reviewing your extension. Chrome does not allow incentives to download a Web Store extension.
- Never inject offers, ads or affiliate tags into the websites users visit. Firefox does not permit adding affiliate tags to web content.
- Never load a script from outside your package. MV3 lists a
<script>tag pointing outside it as a violation. - Never force users to open the wall or hand over personal data to use the extension. Chrome prohibits forcing clicks on ads.
Sources, checked on November 5, 2026: Chrome Web Store: Ads policy, Chrome Web Store: Spam FAQ, Chrome Web Store: Manifest V3 requirements, Firefox: Add-on Policies. Platform rules change, so check them before you launch.
Set it up in four steps.
Apply as a publisher
Create an account and apply with your extension. Every application is reviewed by hand, and once you are approved, the apps you add are live right away.
Add your extension as an app
Set the points name and icon, the rate per $1, the user split and the wall design with the live preview, so the wall matches what points buy in your extension.
Add a wall link endpoint
Your server signs the account ID with your link hash salt and returns the link your popup opens in a new tab. The MV3 guide has the full code.
Handle postbacks, then test
Credit points once per transaction ID and remove them on reversals. Use Open as a test user and Send a test postback before you submit the update for review.
What could it earn?
Slide to your audience and adjust the assumptions. The rates are an example, not a promise: placement, countries, and devices change every result.
Guides for Extensions.
Step-by-step guides from the Moonetix Academy.
Extensions questions
What extensions owners ask before they add Moonetix.
Still have a question? Contact us
Is an offerwall allowed in a Chrome extension?
The Chrome Web Store has no rule against offerwalls as such, but its ads, affiliate, user data and spam policies all apply. Keep the wall optional, clearly labeled, opened by the user from your own interface, and never reward installs or reviews.
Can I show the offerwall inside the extension popup?
Not on Moonetix. The wall only loads in frames on the https website you registered for the app, so open it in a new tab instead. That also keeps it outside your extension’s code.
Can I give users points for installing my extension?
No. Google’s Spam FAQ says offering incentives to download a Chrome Web Store extension is not allowed, and incentivized ratings and reviews are treated as manipulation.
Does opening a wall in a tab count as remote code under MV3?
No. Your extension fetches a link as JSON data from your own API and opens an ordinary web page in a tab. The wall’s scripts run as that website, not inside your extension.
Where should the points balance live?
On your server, tied to the user’s account. Anything kept only in extension storage can be edited by the user, so treat it as a display cache and credit points only from the signed postback.
Does it work in Edge and Firefox?
Yes. Edge runs the same MV3 code with minimal changes, and Firefox offers tabs.create under the browser namespace. Each store has its own policies, so test and review each one separately.
Can I add an offerwall to an Electron desktop app?
Yes. Your backend signs the link, the main process opens it with shell.openExternal or a sandboxed window, and postbacks credit points. The Electron guide has tested code.
How do browser extensions make money?
The common models are a paid tier, an optional offerwall that pays users in points, and disclosed affiliate links inside your own interface. Injecting ads or affiliate tags into websites is what most often gets extensions rejected.
Other industries
- AppsFitness, AI, quiz and utility apps
- GamesMobile, Unity and HTML5 games
- Game serversMinecraft, Rust, Hytale and more
- DiscordServers, economy bots and /earn commands
- TelegramMini Apps, bots, channels, tap games
- CommunitiesForums, member sites and fan communities
- Rewards sitesGPT, cashback, faucet and reward apps
- Web apps & AISaaS, AI tools and freemium web apps
Turn your traffic into earnings.
Create a free publisher account and earn from every offer your users complete on your website, app, game, or community.





