There seems to be a bit of uncertainty what Web Monetization is and what it isn't. This post will try to shed some light of this new standard.
What is Web Monetization
Web Monetization is an open technology that allows someone viewing a webpage or playing a web game to stream very small payments (micropayments) to the creator in real time. It is an exciting new and non-intrusive way for game developers to monetize their web games while at the same time offering premium content to their paying players.
Web Monetization is being proposed as a W3C standard. It is based on the Interledger protocol which is an open, neutral protocol for transferring money of any currency, including digital currencies such as Bitcoin.
How does it work?
Three things are required in order to send and receive payments:
- A player must have an account with a Web Monetization Provider - The provider streams payments from the player. One example (currently the only example) is Coil.
- The developer must have a Web Monetization Wallet - The wallet holds received payments. Examples of services which provide digital wallets are Uphold and Gatehub.
- The developer must add a Payment Pointer on the webpage containing content that should be monetized - The payment pointer tells the provider which wallet to send the money to. An example of a payment pointer is the one held by the Defold Foundation: $ilp.uphold.com/QkG86UgXzKq8.
If the payment pointer is present on a website it will receive payments when visited by a web monetized user. The payment pointer is embedded in the <head> of a web page:
<meta name="monetization" content="$ilp.uphold.com/QkG86UgXzKq8">
Setup and detecting payments
The basic setup of adding the payment pointer to your website is documented here. As a developer you have access to a simple event based JavaScript API to detect when payments are streamed. Use this to differentiate between a paying and a non-paying player. Learn more about the JavaScript API here. For Defold there's an extension which binds the JavaScript API to Lua and similar integrations also exist for Godot, Phaser and Unity.
Wait? Streaming micropayments? Can't I pay any amount I want?
The purpose of Web Monetization is not to be another system for in-app purchases or tipping. It is supposed to be used for streaming of micropayments. Creators should get rewarded automatically and instantly through many many small streams of revenue coming from active use of the content they provide, be it an article, a video or a game.
How should I use Web Monetization in a game?
This is for you to figure out! You should come up with ways in which you can reward web monetized players as they play your game. One very obvious (but not very creative way) is of course to disable ads for web monetized players. Instead we recommend that you try to come up with ways in which you can integrate the streaming payments in the main game mechanics or meta game. Does monetized players have access to otherwise restricted content? Do they get some kind of bonus? Counters/timers that increase/decrease faster? Something else?