A Guide to Web Monetization

The Why

If you have landed here, you either want to find out more about web monetization and how to implement it, or you're here by accident. But since you're already here, let us introduce you to this burgeoning technology that could be a viable alternative to traditional methods of getting paid for web content.

These days, you can't talk about paid web content without touching on advertising. If the content is free, often, the creators have to serve ads as a means to earn something. Some will offer a paid option to get rid of aforementioned ads. Advertising has almost become a scourge of the web.

To get paid for showing ads on the web, there has to be some form of proof that the ad had been seen or interacted with. Cue the boatload of tracking scripts that come with the ads, as well as the various annoying tactics (like pop-ups) to ensure someone at least sees the ad for the 3 seconds it takes to find the close button.

The motivation behind all these dark user interaction patterns is that compensation is based on the offending ad being clicked on, or at least seen. What if we had a different approach to compensating content creators that did not rely on the advertising model?

The What

The Web Monetization API aims to provide an open, native and automatic way to compensate creators, pay for API calls and support critical web infrastructure. It is a Javascript browser API which allows the creation of a payment stream from the user agent to another website.

For this to work, there needed to be an infrastructure level technology that allowed the streaming of payments. This is where the Interledger Protocol comes in. It is analogous to the Transmission Control Protocol/Internet Protocol (TCP/IP) that web developers might be more familiar with.

Where the internet sends packets of data across different networks, the Interledger protocol routes packets of value across independent networks. It seeks to do this in an interoperable manner to allow transactions in whichever currency or payment network of your choice.

A protocol is a set of rules and guidelines for communicating data. Again, with reference to TCP, there are rules for how data should be packaged into packets, how the packets are sent and received, what happens when packets are dropped etc. The Interledger Protocol defines a set of rules for how nodes should send value over the Interledger network.

The How

Currently, implementing web monetization on your site or application is a fairly straightforward process. To receive payments, you must have a digital wallet that supports the Interledger Protocol (ILP). At the moment, your options are Gatehub or Uphold, but hopefully there will be more options moving forward.

Both of the aforementioned digital wallets will generate something called a payment pointer. It takes the following form (variation depending on your digital wallet of choice):

$ilp-xxx.xxx/SOME_UNIQUE_IDENTIFIER

This payment pointer is referenced in the monetization meta tag which goes into the head of your website or application. Do note that web monetization only works on secure pages served over HTTPS.

<meta name="monetization" content="$YourPaymentPointer" />

But with that, you are set to receive payments from visitors who have an account or subscription with a web monetization provider, like Coil. They also will need to install a web monetization agent (e.g. the Coil browser extension) on their browser with the necessary authorization for the provider to stream payments to you.

You can read more details in the draft W3C specification on Web Monetization, keeping in mind that this is very much a work in progress document.