Cloudinary Blog

The Laughable Curve - Optimizing Your Media and Maximizing Revenue

How you can now create content in unique ways for each web visitor
In economics, there is a concept referred to as “The Laffer Curve,” which illustrates how increases in government tax rates beyond a certain level will ultimately decrease tax revenue.  It is often visualized with the following graph:


 

Beyond tax rate t*, tax revenues actually decrease because economic activity is stifled as a result of excessive tax burdens. You may wonder why we are discussing mundane economic principles, but there is a very good reason: Your website/app follows a similar curve with regard to revenue and media performance.


Consider how this concept applies to your website. You have to compress your images so your site loads as fast as possible, but you don’t want to compress them too much and suffer the consequences of poor image quality. In most cases, we have to guess what our optimal tax rate (bandwidth) is to maximize revenue. If we compress our images too much, visual quality becomes poor and our website/app becomes laughable from the user perspective. Because of this, I call the web performance version of the Laffer Curve “The Laughable Curve” and it looks like this:
 
The Laffer Curve
 

Some sites opt for a quality that still looks pretty good but is compressed as much as possible. Perhaps those developers understand their visitors and know that a faster loading website is more valuable than a nice looking one. Others opt for high visual quality and even minor, barely noticeable image artifacts are unacceptable. In these cases, developers may know that their visitors are discerning types, who have very high standards, and they don’t want to risk their brand image.


Much of this is likely speculation, though, because it is hard to determine where Q* sits.  Even in today’s world of personalized experiences, A/B testing and advanced analytics with micro segments down to the 1:1 level, we’re still left to guess what people want.  And that guesswork is potentially leaving a lot of money on the table. For example, ecommerce giant Amazon noted that a page load slowdown of only 1 second would cost it $1.6 billion in sales revenue. Similarly, Google noted that a slowdown of just four tenths of a second in its search results would result in a loss of 8 million searches per day, which translate into millions less in online advertising.


The relationship between site performance and revenue/conversion is a highly studied one and the evidence is overwhelming that performance has an outsized effect on your key performance indicators (KPIs). This potential A/B test uniquely doesn’t start with a hypothesis, but an established theory.  So why is it rarely, if ever, tested?  My theory:  the “Content Dilemma.”

The Content Dilemma

The Content Dilemma is a stubborn bottleneck that has plagued marketers, creative teams, product managers and developers alike. Simply stated, your ideas for using content in unique ways for each web visitor is hampered by your capacity to create that content. Anyone who is trying to personalize their site, run a nurture campaign, or deal with segment-based display advertising quickly runs into this limitation. In turn, the idea of testing image quality on your site falls victim as well, since different images have to be created for each different quality level you want to test. Cloudinary can help you create dynamic content programmatically and on the fly, eliminating this creative bottleneck, and providing vital assistance when executing A/B testing to ensure that you’re maximizing revenue.


To determine the optimal image resolution to maximize bandwidth, three ingredients are needed: 
 
  1. A way to conduct A/B/N tests – These can be internal systems or a third-party tool like Maxymiser, Optimizely, Adobe Target or SiteSpect. For technical reasons, a server side solution or a SiteSpect account might be best, since manipulating image URLs with JavaScript could introduce its own performance issues.  
  2. A reporting mechanism – To get maximum value out of an A/B/N test, it is necessary to set up as many segments as possible, since different cohorts will respond differently to changes. For instance, you can compare mobile vs. desktop, since there’s typically a huge variability in connection speed and browser performance. There are also distinctions between rural and urban, different browsers, new and returning customers, with hundreds of other unique factors coming into play. Maxymiser is a really great tool for doing this because it will identify what your important segments are without requiring you to set them all up ahead of time. Passing the visitor experience as a variable to your site analytics tool (Adobe Analytics, Coremetrics, WebTrends, to name a few) will work great as well, enabling you to closely examine how exactly behavior is affected by image size/quality.
  3. Images – You will want to start with four or so different quality levels (a A/B/C/D test), which will require you to take the number of images on your site and multiply by four. Don’t ask your creative team to do this, they will never talk to you again. Here’s where a tool like Cloudinary is valuable because it enables you to quickly create various images simply by changing a parameter in the image URL. The ability to make these image changes on the fly will not only help you execute the test, but also maintain the winning experiences going forward.

A Closer Look at Image Quality

Now, let’s take a closer look at how you can change image quality when doing A/B/C/D testing. 

This is my original image, Farmer Bob: 

Farmer Bob
 
I can adjust the quality of the image simply by adding a parameter to the url. If I want 80 percent quality, it looks like this:
 
Farmer Bob q_80
 
After the “q_” string, simply insert the % quality you want between 1-100.  For this image for four different qualities, we come up with the following sizes:
 
Farmer Bob q_90   Farmer Bob q_80
Q_90 (196.83 KB)                                              Q_80 (143.08 KB)  
 
Farmer Bob q_60   Farmer Bob q_40
Q_60 (85.37 KB)                                                 Q_40 (62.48 KB)
 
Cloudinary also offers more advanced compression algorithms, called “auto quality” (q_auto). These algorithms use a perceptual model to investigate each image individually and adjust several levers that have quality and size impacts (format, chroma/luma quality, chroma subsampling, progressive vs. non, etc.) to compress as much as possible while maintaining a high level of visual quality. If you wanted to use those options, there are actually four levels of “auto” quality.
 
 Farmer Bob q_auto:best   Farmer Bob q_auto:good
Q_auto:best (113.54 KB)                                       Q_auto:good (89.57 KB)

Farmer Bob q_auto:eco   Farmer Bob q_auto:low
Q_auto:eco (65.48 KB)                                            Q_auto:low (57.91 KB)
 
Of course you could add more variations to your test, but I recommend starting with four because it will allow you to gather enough data per experience for relevant results. From there you can hone in on where you should perhaps dig a bit deeper in a follow-up test.
 
As you can see, there are many variables and scenarios that can impact how you manage images on your website - from resolution and image size to bandwidth usage. By leveraging these tips, you can optimize your website for site performance and revenue/conversion rates, plot your Laughable Curve and find your Q* for each key segment. The processes outlined here can take the guesswork out of the testing process, help you overcome the content dilemma, enabling you to simply and effectively reach each unique web visitor. 

Recent Blog Posts

Build the Back-End For Your Own Instagram-style App with Cloudinary

Github Repo

Managing media files (processing, storage and manipulation) is one of the biggest challenges we encounter as practical developers. These challenges include:

A great service called Cloudinary can help us overcome many of these challenges. Together with Cloudinary, let's work on solutions to these challenges and hopefully have a simpler mental model towards media management.

Read more

Build A Miniflix in 10 Minutes

By Prosper Otemuyiwa
Build A Miniflix in 10 Minutes

Developers are constantly faced with challenges of building complex products every single day. And there are constraints on the time needed to build out the features of these products.

Engineering and Product managers want to beat deadlines for projects daily. CEOs want to roll out new products as fast as possible. Entrepreneurs need their MVPs like yesterday. With this in mind, what should developers do?

Read more

Your Web Image is Unnecessarily Bloated

By Christian Nwamba
Your Web Image is Unnecessarily Bloated

As a developer, it seems inefficient to serve a 2000kb JPEG image when we could compress images to optimize the performance without degrading the visual quality.

We are not new to this kind of responsibility. But our productivity will end up being questioned if we do not deliver fast. In order to do so, the community has devised several patterns to help improve productivity. Let's review few of these patterns based on their categories:

Read more

Google For Nigeria: We saw it all…

By Christian Nwamba
Google For Nigeria: We saw it all…

Note from Cloudinary: Christian Nwamba, a frequent Cloudinary contributor, recently attended, and was a main speaker, at the Google Developer Group (GDG) Conference in Lagos, Nigeria. Christian led a session teaching more than 500 developers how to “Build Offline Apps for the Next Billion Users.” The stack he used included JS (Vue), Firebase, Service Workers and Cloudinary. Below is his account of the conference and his talk.

Read more
Viral Images: Securing Images and Video uploads to your systems

When was the last time you got paid $40,000 for a few days of work? That is what happened last year to Russian independent security researcher Andrey Leonov, who discovered that if you upload a specially constructed image file to Facebook, you can make Facebook's internal servers, nested deep within their firewalls, run arbitrary commands to expose sensitive internal files in a way that could easily lead to a data breach.

Read more