Key takeaways

  • Godot has no built-in ads or store SDK, so mobile ads and in-app purchases come from plugins, mostly hosted in the community-run godot-sdk-integrations organization.
  • Each export target has its own rules: Google Play and the App Store require their own billing for digital goods, and Steam allows no advertising models and only Steam Wallet payments.
  • An offerwall needs no Godot SDK: your backend signs a link, the game opens it, and your server credits currency from postbacks, in every build except Steam.

How do you monetize a Godot game?

You monetize a Godot game the same way as any other game: a premium price, in-app purchases, ads, or a rewarded offerwall. The difference is that Godot ships none of the SDKs for these, so you add each one yourself: an AdMob plugin for mobile ads, a Google Play Billing or StoreKit plugin for purchases, GodotSteam for Steam, and a signed link for an offerwall. Which mix you can use depends on where you ship, because Google Play, the App Store, Steam, itch.io and the web each set different rules.

This guide covers Godot 4 (the current docs are for Godot 4.7) and lists the plugins that are still maintained, with release dates checked on October 22, 2026.

What Godot gives you, and what it leaves to plugins

Godot is free and open source under the MIT license. Its license page says the engine’s license terms “do not apply to the content you create with it” and that you will be the sole copyright owner of your game. There is no engine royalty to plan around, so every dollar your game makes is split only with the stores and ad networks you choose.

What Godot does not have is a monetization layer. There is no ads node, no store node and no built-in WebView. The Godot Foundation explained why in its post Third party services SDKs and their circumstances (September 2024): it “has decided to maintain its stance on not directly developing SDKs” and instead set up an official GitHub organization, godot-sdk-integrations, where the community and vendors host and maintain integrations. The Foundation says it will not manage or update them.

In practice:

  • Check every plugin’s last release and its supported Godot version before you build on it. Mobile plugins often need a rebuild when Godot or the vendor SDK updates.
  • Use Godot’s v2 plugin system for Android (Godot 4.2 and later, per the Android plugins page) and the .gdip plugin format for iOS, described on the iOS plugins page. Plugin code runs only in exported builds, so test on a device.

Godot monetization options by platform

One Godot project can export to Android, iOS, Windows, macOS, Linux and the web. Each target allows a different set of models. Policy facts in this table were checked on October 22, 2026.

TargetAdsIn-app purchasesPremium saleOfferwall
Android (Google Play)Yes, with an AdMob pluginGoogle Play Billing required for digital goodsPossible, less commonYes, within Google Play rules
iOS (App Store)Yes, with an AdMob plugin and the ATT promptApple in-app purchase required for currency and unlocksPossible, less commonYes, within Apple rules
Windows, macOS, Linux on SteamNo, Valve does not support ad modelsSteam Wallet only, through the microtransaction APIThe main modelNo
Desktop on itch.io or your own siteRareYour own checkout, or paid DLC-style downloadsYes, with a revenue share you set on itch.ioYes
Web exportThrough a web ad or portal SDK called from JavaScriptDepends on the host or your own checkoutRare, web games are usually freeYes, by link or iframe

Many Godot developers end up with a free mobile build with ads and purchases, and a premium Steam build with neither. Godot’s feature tags and separate export presets make that split clean, so one project can serve both.

Godot AdMob plugins for mobile ads

Google publishes Mobile Ads SDKs for Android, iOS, Unity, Flutter and C++ on its AdMob developer site. Godot is not on that list, so every Godot AdMob integration is a community plugin. Two are actively maintained for Godot 4:

PluginGodot versionLatest release (checked October 22, 2026)Notes
Poing Studios Godot AdMob Plugin4.5 and laterv5.1.0, September 2026, with newer nightly buildsAndroid and iOS, GDScript and C#, mirrors the Google SDK’s structure, mock ads in the editor, mediation adapters, UMP consent
godot-sdk-integrations Godot Admob Plugin4.7 (tested against)v7.0, May 2026Android and iOS as separate Asset Library entries, node-based setup in the Inspector, all ad formats, mediation with up to 15 extra networks, UMP consent and ATT signals

Older Godot 4.0 plugins still appear in search results and the Asset Library. Skip anything without a release in the last year, because Google Play keeps raising the target API level it accepts and an abandoned plugin will eventually block an update.

Which ad formats fit a Godot game

  • Rewarded video is the format players accept most, because they choose to watch. Offer it for a revive, a second chest or a daily bonus. What are rewarded ads? covers the mechanics.
  • Interstitials work between levels or runs, never in the middle of play. Cap how often they show.
  • Banners earn little and take screen space, so many games skip them.

If a rewarded ad grants currency that matters, do not trust the client alone. Google’s server-side verification page describes callbacks that Google sends to your server when a user earns a reward. Check that your chosen plugin exposes the server-side verification options before you rely on them. To compare networks and set up mediation, read AdMob alternatives and What is ad mediation?

Ad mistakes that get Godot games rejected or flagged

  • Shipping with real ad unit IDs in debug builds, or clicking your own live ads while testing. Both plugins ship Google’s test IDs for this.
  • Skipping the consent form for users in the EEA and UK. Both plugins include Google’s User Messaging Platform; show it before you request ads.
  • Showing an interstitial in the middle of play or right as the player taps a button, which leads to accidental clicks.

In-app purchases in Godot: Google Play and the App Store

If you sell currency, levels or other digital content inside a mobile game, the stores require their own billing. Google’s Payments policy says apps that charge for in-app digital content “must use Google Play’s billing system” and lists virtual currencies as an example, with exceptions only through its alternative billing programs in eligible regions. Apple’s App Review Guidelines section 3.1.1 says that to unlock features such as “in-game currencies, game levels, access to premium content, or unlocking a full version”, you must use in-app purchase. In the United States storefront Apple now allows buttons and links to other purchase methods; in other storefronts it does not. Both rules were checked on October 22, 2026.

Android: GodotGooglePlayBilling

Godot’s Android in-app purchases page calls GodotGooglePlayBilling a first-party plugin, compatible with Godot 4.2 and later, and it needs Android Gradle builds enabled. Its 3.3.0 release (July 2026) moved to Google Play Billing Library 9.1. The documented flow is short:

var billing_client: BillingClient

func _ready():
    billing_client = BillingClient.new()
    billing_client.connected.connect(_on_connected)
    billing_client.query_product_details_response.connect(_on_query_product_details_response)
    billing_client.start_connection()

func _on_connected():
    billing_client.query_product_details(["gem_pack_small"], BillingClient.ProductType.INAPP)

func _on_buy_pressed():
    var result = billing_client.purchase("gem_pack_small")

The docs say you must complete a product details query before you call purchase(), and results arrive on a purchases-updated signal. Consumables such as gem packs are consumed after you grant them; one-time unlocks are acknowledged.

Grant the gems on your server, not in GDScript. Google’s fight fraud and abuse page says to send the purchaseToken to your backend, check that it was never used before, verify it with the Google Play Developer API, grant the item, and then acknowledge the purchase. It also says not to grant anything while a purchase is PENDING.

iOS: InAppStore or StoreKit 2

iOS has two options, both hosted in godot-sdk-integrations:

  • InAppStore in godot-ios-plugins. It wraps Apple’s original StoreKit API and you build it from source for your Godot version (the repository has no prebuilt Godot 4 release). You read results by polling pending events for product info, purchases and restores.
  • Godot StoreKit 2, a newer plugin for Apple’s StoreKit 2 with await-friendly methods. Its README says it is “still in ongoing development so the API isn’t stable”, and its latest release was v0.2 in September 2025.

Either way, add a Restore purchases button for non-consumables, test with sandbox accounts on a real device, and keep the wallet on your server so a purchase on one device shows up on another.

Selling a Godot game on Steam and itch.io

On desktop, the usual model is a premium price. The two stores Godot developers use most have very different terms.

Steam

Valve’s Steam Direct fee is $100 per app, non-refundable, and recouped in the payment after the product reaches $1,000 in Adjusted Gross Revenue (checked October 22, 2026). Two Valve rules shape everything else:

  • No ads. Valve’s Advertising on Steam page says advertising models are not supported in games distributed on Steam, and that you should not reward players for watching or engaging with ads. That rules out AdMob-style ads and offerwalls in the Steam build.
  • Steam Wallet only. The Microtransactions page says in-game purchases must use the microtransaction API “so Steam customers can only make purchases from the Steam Wallet.”

For achievements, overlays and microtransactions from Godot, the community project GodotSteam wraps the Steamworks SDK for Linux, macOS and Windows, as a module or GDExtension. Its source now lives on Codeberg, and its GitHub repository is archived, so download it from the links on its site. The full rule set is in Can you put ads in a Steam game?

itch.io

itch.io uses open revenue sharing. Its payments guide says you decide what percentage of sales goes to itch.io, “from 0% to 100%”, uses 10% as the default rate in its example, and says payment processing costs (generally $0.30 plus 2.9%) come on top.

Monetizing a Godot web export

Godot 4 web exports run in any modern browser. Godot’s Exporting for the Web page notes two limits that affect monetization planning: since Godot 4.3 single-threaded export is the default (threaded builds need cross-origin isolation headers, which not every host can send), and C# projects in Godot 4 cannot export to the web.

The AdMob plugins are mobile only, so web ads come from a web ad network or the SDK of the game portal that hosts you. You call those from GDScript through the JavaScriptBridge singleton, which can run JavaScript, read objects such as window with get_interface(), and pass Godot callbacks to JavaScript with create_callback(). A rewarded ad on the web is then a JavaScript call that resumes your game through a callback. Portals, ad options and the rest of the web picture are in How to monetize an HTML5 web game.

Adding an offerwall to a Godot game

An offerwall lists offers from advertisers, such as trying an app or finishing a survey. Players who complete one earn your in-game currency, and you earn per completed offer. It suits the same players rewarded video does, the ones who will not pay, and a completed offer usually pays more than a single ad view. Offerwall vs rewarded video compares the two.

You do not need a Godot SDK for this. The offerwall is a web page, and Godot can make an HTTPS request and open a URL on every platform. The pattern is:

  1. Your backend signs an offerwall link for the logged-in player.
  2. GDScript fetches it with HTTPRequest and opens it with OS.shell_open().
  3. The offerwall sends a server-to-server postback to your backend for each reward and each reversal.
  4. The game reloads the balance from your server when the player comes back.

The full code, the web export pop-up rule and the Steam export preset are in How to add an offerwall to a Godot game. The key rules: never sign the link in GDScript, never credit currency on the client, and leave the earn screen out of the Steam build.

On mobile, read the store rules first. Apple’s guideline 3.2.2(x) lets apps incentivize actions such as watching an ad, but not forcing users to rate, review or download other apps to use the app. Can you put an offerwall in an iOS app? and Incentivized installs: Google Play policy go through the details.

Illustrative example: pricing earned gems against a gem pack

Sample figures only. Say your smallest Google Play gem pack is 500 gems for $4.99, about 100 gems per dollar the player pays. If you set the offerwall so each dollar you earn gives the player 100 to 150 gems, an offer that earns you $2 gives 200 to 300 gems. Players who earn gems get a fair deal, and buying stays the faster path. Try your own numbers in the virtual currency calculator, and see virtual economy design for sinks and pricing.

Which monetization mix fits your Godot game

GameMain modelAdd-ons to consider
Free mobile casual or hyper-casualRewarded video and interstitialsRemove-ads purchase, small gem packs, an optional earn screen
Free mobile game with a deep economy (RPG, idle, collection)In-app purchasesRewarded video for non-payers, an offerwall for currency
Premium PC gameSteam or itch.io saleDLC, soundtrack, supporter pack; no ads in the Steam build
Browser gamePortal or web adsAn offerwall by link or iframe, a paid desktop version

Most free games do best with a mix of ads and purchases aimed at different players, not one model alone. Hybrid monetization for games explains how to segment payers and non-payers so ads do not eat into purchases, and How to monetize an app covers the wider set of models. To estimate ad income per thousand impressions, use the eCPM calculator.

Where Sharklio fits in a Godot game

Sharklio is a pay-per-result affiliate network. It has no Godot SDK, so Godot games use the signed offerwall link from your backend, which works in Android, iOS, desktop and web exports. Each app sets its own currency name and icon, conversion rate, user split, rounding and wall design, with a live preview. Offers depend on the player’s country and device, players on VPNs, proxies, Tor or data center networks are blocked, and end users must be at least 16. Every credit and every reversal reaches your server through a signed server-to-server postback, and every publisher application is reviewed by hand. See how the wall works, or get in touch.

Frequently asked questions

Does Godot have built-in ads?

No. Godot has no ads or store SDK in the engine. Mobile ads come from community AdMob plugins such as the Poing Studios plugin or the godot-sdk-integrations Godot Admob plugin.

What is the best AdMob plugin for Godot 4?

As of October 2026, the two maintained options are the Poing Studios Godot AdMob Plugin (Godot 4.5 and later, GDScript and C#) and the godot-sdk-integrations Godot Admob plugin (tested on Godot 4.7). Pick the one that supports your Godot version and had a recent release.

How do I add in-app purchases to a Godot game?

On Android, use the GodotGooglePlayBilling plugin, which Godot’s docs list for Godot 4.2 and later. On iOS, use the InAppStore plugin from godot-ios-plugins or the newer, still unstable Godot StoreKit 2 plugin, and verify every purchase on your server before you grant items.

Can I make money with a Godot game on Steam?

Yes, mainly through a premium price, DLC and Steam Wallet microtransactions through GodotSteam. Valve does not allow advertising models or rewards for engaging with ads, so ads and offerwalls stay out of the Steam build.

Does Godot take a cut of my revenue?

No. Godot is MIT licensed and its license terms do not apply to the content you create, so you only share revenue with the stores, payment processors and ad networks you use.

Can a Godot web export show ads?

Yes, but not through the AdMob plugins, which are mobile only. Call a web ad or portal SDK from GDScript with JavaScriptBridge, or open an offerwall by link.