Programster's Blog

Tutorials focusing on Linux, programming, and open source

A New Way To Fund The Internet (Without Ads)

It didn't take long after the World Wide Web took off for people to realize they could apply the business model of inserting advertisements to content, in order to make a profit on "free" content. This simple business model is what funds most of the content on the Internet today, such as Facebook, Google, Youtube, and all those news/blog sites like The Verge, TorrentFreak, and Engadget. Some of it is obvious with pop-ups and banners, whilst at other times it is more subtle, such as Google ad listings that appear at the top before "natural" search listings that people often mistake for the natural search.

The Rise and Need of Ad Blockersot more problems

In recent years, there has been somewhat of a fight-back in the form of using ad blockers like Adblock Plus. These have either been installable extensions, or even baked into the browser with Opera and now even Chrome. This is because a lot of advertisements are too intrusive or even downright malicious. How often have you clicked the big green "download here" button only to realize the download button you actually wanted was a much smaller one buried somewhere else on the page?

Many content creators would have you believe that it would be impossible for the Internet to work without advertisements for many of the reasons mentioned here.

Just to be clear, I'm not saying Linus has that position, he just lists some good points.

However, I don't "buy" this argument that we must have advertisements because there are other possible business models, usually around direct payment. For example, Dominoes doesn't need advertisements to fund/justify having a website. It's a virtual store front so that helps them sell you pizza. It's just that the Internet wouldn't work the way it currently does, and sites that couldn't survive by other means would have to go under.

No Ads, Just Selling Your Data

Another cunning, and possibly more sinister way to make money, is for sites to collect massive amounts of data on their audience and then sell it to others who might want it. Sites do this mainly through cookies and JavaScript that track you all over the Internet. If you're logged into Facebook or Google (which you probably are, you just might not realize it), those organizations have all your profile data to hand, such as name, age, gender, and possibly address. They then have "like" or "share" buttons (or just JavaScript scripts that you don't see like Google analytics) scattered all over the Internet on other sites, which report back immediately when they load (you don't have to click them). The tracking organization can then save this history of visited sites against your logged in profile to build a better picture of you and your habits. E.g. do they go to Breitbart and are thus more likely to be Republican? How much time do they spend viewing content online? If you do click the "like" or share buttons you provide them with what they want most most of all, which is to building a profile of your interests. This will allow them to serve up the most effective advertisements and "fake news", or build statistical data to sell to political campaigns.

The video below is from the makers of Ghostery, an addon that will help fight this sort of thing.

A Possible Alternative

In recent news, The Pirate Bay was using JavaScript (notice a pattern here?) to "hijack" your computer's CPU resources for mining on behalf of the site in order to make money. TorrentFreak have already pointed out that this may be one of the best ways for Pirate sites to earn money, as it's a lot more difficult for them to get corporations to pay money for advertising. However, I see no reason why this idea couldn't be taken further and improved in order to be a justifiable way for content creators to publish "free" and make money without having to use advertisements or harvesting data.

The Current Issues With This Idea.

There are many issues with the current implementation. Some of which are:

  • It's currently JavaScript based so limited to just 1 process/thread.
  • Everyone has different CPUs which have different computational power. ARM chips in phones aren't going to compare against an overclocked i7 7700K.
  • If the mining process is eating up all of your Javascript's single thread, the site may appear "laggy" as it competes for for CPU time.
  • Mining on CPUs is far less effective than using a GPU or ASIC with the current popular cryptocurrencies.

Solutions

Firstly, we probably need the implementation to be baked into the browser. This way the mining process could run on a different thread to the ones being used to render and run the website. By being part of the browser, its simpler for users than having to download a third-party application, and we can keep this behavior of the mining only happening whilst browsing the internet, and being used for the benefit of whatever is being actively viewed (not background tabs). Also, the user could have preferences set, like don't run when on battery power. We would need to use another Cryptocurrency (or pick one that already exists and fits the bill), that uses an algorithm most suitable to an x86 CPU. Don't bother competing with GPUs and ASICs. The mining process should not run on mobile devices as ARM chips aren't powerful enough, and users won't want anything that reduces their battery lifetime.

Each person's individual contribution would be minuscule, but that's similar to how advertising is right now. Out of thousand's of views, only a tiny percentage of users will actually click the advertisements, and the site will get a few pennies/cents per click. However, if you get millions of views, this all adds up. The really nice thing about this model is that it rewards sites that have engaging content. If your site is clickbait with users bouncing off of it it as soon as they realize their mistake, you aren't going to get much mining time.

Conclusion

I'm sure there are a lot more problems to be overcome than I have listed, and probably much better solutions being thought up by people much smarter than I (such as yourself). However, I believe this idea is taken hold amongst some, and am hopeful that developers/organizations might get behind it to make it become a reality.