The Interledger Community 🌱

Bill Thompson
Bill Thompson

Posted on

Geo-limited monetization: integrating Web Monetization and GeoIP services — Grant Report #1

A screenshot of a test web page showing that monetisation - and therefore advertising - is enabled

Project Update

Because of the way it is funded, the BBC does not put adverts on its UK services, including the bbc.co.uk website. However it does seek to generate income when people from outside the UK visit BBC properties, for example by serving the bbc.com home page with paid advertising.

Given the interest in other ways of monetising websites, BBC Research & Development wanted to examine ways in which the emerging web monetization protocol could be used in future by organisations that limit their commercial activity by geographic area. The BBC has no plans at the moment to use this technology, but as part of R&D's broader remit to explore new technologies we wanted to investigate the functionality.

We therefore set out to investigate the utility of the current implementation of the Web Monetization API (WMA) to monetise websites that also use GeoIP mapping to implement geographic restrictions on the services they offer users.

Using the funding provided, we created an internal team lead by senior producer Ian Forrester and research engineer Iain McClenaghan to examine the potential of these technologies, building a prototype using the Web Monetization API to see if it was possible only to request micropayments from non-UK site visitors.

Having completed a wide-ranging literature review to get an understanding of the context and ramifications of adding payments to the internet, and developed the technical understanding needed to deploy a geo-linked monetised site, we are about to start our trial with live users.

Progress on objectives

Our expected deliverables included a proof of concept implementation of a GeoIP based Web Monetization system, the results from testing this, and recommendations. As the project has developed and we have discovered more about how the service works, we have worked on all three.

We have built a number of demonstrators, ending with a prototype that uses the WMA. We are about to launch our technical trial to evaluate the extent to which it is possible to reliably determine someone's geographic location and selectively limit or modify monetization options by changing currency or amount requested, or not offering monetization at all.

We will analyse these test results and use them to publish a set of recommendations, including a proposed framework for explaining geo-limited monetization to users, and a template user interface design that helps ensure the informed consent of those who choose to enable monetization and make payments.

For the first stage, we set up a series of demonstrations of web monetisation using the React module published by Coil. This was used to implement a GeoIP based system for determining payment rate in which the rate can be linked to a country’s relative purchasing power. The payment system was then used to provision advertising, exclusive content, and a full paywall on a demonstration site, as part of the preparatory work for building the trial site.

In the process of this work some unexpected features of the WMA were encountered. because the Coil extension relies on reading the Payment Pointer (the Interledger adddress to which funds should be transferred) it is possible to edit the extension and send funds to an arbitrary wallet. This could be done either by editing and compiling a new version of the extension, or by injecting the appropriate tag into a non-monetised page. We have shared these results with Interledger.

Finally, we developed a trial protocol to allow authenticated BBC users to visit our demonstration website and receive visual feedback of which country the site believed they were visiting from, and the payment rate for that country.

We are about to run the trial with up to 50 users around the world.

Example

This is a minimal example of conditionally injecting Web Monetisation meta tags based on GeoIP estimation. We will publish all our code as part of the final report.


const key = ""
const ip = ""
const payment_pointer = ""
const monetised_county_codes = [""]

const getLocation = (ip, key) => {
  const URL = `http://ipinfo.io/${ip}?token=${key}`;
  return fetch(URL).then(
    (response) => {return response.json()}
  ).then(
    (jsonResponse) => {return jsonResponse.country}
  )
}

const injectMonetisation = (payment_pointer) => {
  const meta = document.createElement('meta')
  meta.name = 'monetization'
  meta.content = payment_pointer
  document.getElementsByTagName('head')[0].appendChild(meta)
}

const triggerMonetisation = (location, payment_pointer) => {
  if (monetised_county_codes.includes(location)) injectMonetisation(payment_pointer)
}

getLocation(ip, key).then(location => triggerMonetisation(location, payment_pointer))
Enter fullscreen mode Exit fullscreen mode

Key activities

We used the OSS Web Monetization API as a JavaScript browser API to build a prototype which runs on a BBC R&D web property and requests micro payments from non-UK trialist users who wish to access certain content.

The documentation of Web Monetisation and underlying technology of the Interledger Protocol was read. The open source implementation of Coil’s Web Monetisation extension was thoroughly explored in order to give us the necessary understanding to deploy it for the trial.

The BBC’s GeoIP service was used to create a system which conditionally injects web monetization tags into a website based off of a user’s location. This allows a website to only be monetized in particular countries. A proof of concept extension to this was implemented whereby the payment rate was varied by location, however Coil does not currently support this feature so it only operated on the client side.

Demonstrations were made to show how Web Monetisation could be used (positively and negatively), including a demonstration of GeoIP integration as described above. A trial was also designed and is about to be run to evaluate how accurately monetisation could be applied based on GeoIP results.

Communications and marketing

To date our focus has been on internal conversations within the BBC around the nature of the technologies involved and how it might be of value to the BBC and other public service organisations, including conversations within research and development and with colleagues in our policy and strategy teams.

More publicly, Ian Forrester and Iain McClenaghan attended the EXIT Platforms hackday in Brussels in May 2023. This was part of BBC R&D’s engagement with PublicSpaces, SDEPS and other EU parters around alternative infrastructure and business models. We talked about our work with WMA and had meetings with representatives from Interledger.

We will publish full details of the trial, our results, and the underlying technology at the conclusion of the project.

What’s next?

We have established a trial protocol to allow authenticated BBC users to visit our demonstration website and receive visual feedback of which country the site believed they were visiting from, and the payment rate for that country.

We wanted to explore the intersection of GeoIP and the WMA, and have extended our original goal to explore not only whether monetisation can be blocked reliably according to territory but also whether payment rate can be adjusted. This is because the standard Coil payment rate of $0.0001/s seems aligned to the income and expectations of more developed nations.

At the time of writing we have implemented the full test suite and are recruiting fifty participants around the world from within BBC staff, as this allows us to use standard BBC account features (our developer certificate) to control access.

We had originally hoped to run the trial using one our public-facing sites, asking existing Coil users to visit the site and complete our survey. However BBC infosec requirements and concerns about gathering enough participants prompted a change of direction and we have set up the trial site on one of our testing servers and limited access to BBC staff with a developer certificate.
Participants are given access to a pre-loaded trial account so that if monetisation is active when they visit they are not personally paying.

What community support would benefit your project?

At the moment we are preparing for the trial, using BBC staff as subjects as they have access to the necessary authentication. We will then write up and publish our results and would hope that the community will help us share our findings widely.

Top comments (1)

Collapse
 
chrislarry profile image
Chris Lawrence

This is fascinating progress! Looking forward to hearing about the tests.