The Search For An Optimal AdWords CPC


As we are approaching the end of the year, and the time has come to get into a reflective mood, I wanted to return to a nice little problem I’ve mulled over quite a bit this year: What is the optimal AdWords CPC (cost per click)?

Having been in the SEM game for more than 10 years now, you might be surprised that I’m only just thinking about this question — seems quite important, right?

Truth be told, it’s a question I’ve never really stopped thinking about, as I find it very interesting. (It should be noted at this time that my university dissertation focused on an old algebraic parlor game, which was endlessly fascinating but ultimately useless — thankfully, here we’re in more practical territory.)

To help find the optimal solution, we need to have a clear goal. I feel the most obvious goal to aim for is to maximize the profit of a PPC campaign. Maximizing revenue is fine, but its one-dimensional nature can lead you into trouble. (Remember, “Revenue is vanity, profit is sanity.”)

Let me first try and pique your interest in this problem and its shape-shifting answer, then go on to discuss the journey to finding a better understanding of the answer.

So, What Is The Optimal Bid Price?

A simple answer to a simple question, right?

Let’s look at the most logical way to answer this question, with a simple scenario to get a starting point.

A retailer knows that the conversion rate (CR) on keywords for “Blue Widgets” is 4 percent. He also knows that the average profit per transaction is $90.

Calculating from here means that return on ad spend (ROAS) will be positive for anything below the revenue per click (RPC), which equates to $3.60 (Profit x CR). Let’s look at the dynamic of cost per click (CPC) at different points:

Shock, horror! Increasing the bid leads to negative ROI, whilst decreasing it improves the ROAS. But there we have it — find your break-even point and aim for that as your measured CPC.

But leaving it here would be too easy, and that doesn’t really answer the question at all.

So let’s add a bit more complexity and try and make the situation more realistic and less theoretical. The main issue here is that we are talking about the volume of profit, for which we need to factor in volume of clicks and revenue.

Price Elasticity Of Demand (PED)

Those who’ve flirted with economics may be familiar with this concept. For those who aren’t, I’ll refer to Investopedia for a definition. They define PED as follows:

A measure of the relationship between a change in the quantity demanded of a particular good and a change in its price. Price elasticity of demand is a term in economics often used when discussing price sensitivity. The formula for calculating price elasticity of demand is:

Price Elasticity of Demand (PED) = % Change in Quantity Demanded / % Change in Price

Why is this relevant? Essentially, this helps to describe the dynamic that occurs when bidding in an AdWords auction, albeit in a slightly roundabout way.

To increase demand — i.e., to increase the number of people clicking your ads — you need to increase your ad position (or improve your ads, of course, but let’s keep it simple for now). To increase your ad position, you need to pay more. The amount extra you have to pay is flexible, based on where you are on the curve.

Reforming the equation in SEM terms means we can think of it as: Elasticity of cost = % Change in Clicks / % Change in CPC

To illustrate how this works and its effect, consider what the AdWords bid simulator shows you. This is visualizing the fact that the farther toward the high end of demand you go, the larger increments you need to bid to keep the demand increasing (for diminishing amounts of increased traffic).


What you need to take away from the above is that the increase in clicks is not proportional to the amount you would increase your bids by — the law of diminishing returns means you ultimately end up having to increase bids by large amounts to get small gains.

The effect this dynamic has is very important in our discussion of “the right amount to bid.”

Refining The Question

To help us with the search for the optimal bidding amount, we refine the question a little to become, “Given the current evidence, what is the optimal CPC target to maximize profit?”

An important requirement is to get a view of what would happen if we were to increase/decrease the bid. For the purpose of the article, I’m going to shortcut the mathematical proof and just say that we can use an isoelastic demand function to model how this “elasticity” affects things when we dial up or down the bids. (Details here for those who want to know more.)

The function itself is the fun-looking…


… where x is the CPC, r is our Elasticity and k is our “constant of elasticity.” I’ll leave it there for the detail, but in short, we can crunch the numbers to see the effect of % changes of target CPC.

Let me illustrate by taking our example from above a step further. Let’s assume a very sensible PPC account manager has recognized that $3.60 is a poor target CPC to aim for and has been running the account with measured CPC of $2.00 for a given keyword. Putting the numbers in gives us the following:


So in the absence of actual data and for the purposes of this article, we’ve modeled the scenarios based on expected behavior given the known dynamic. Adding in our revenue and profit columns starts to make things more interesting:


Key things to note: Maximum revenue and maximum profit are at different points, and there is a clear curve when plotting out the various points that suggests profit approaches a maximum point, then recedes from there on. Taking this at face value, we have a decent estimate of a good target CPC to aim at for this keyword.

This effect of reaching a maximum is due to the effect of what we’ll call Incremental ROAS. As we increase bids, the revenue and cost are both increasing at different rates, meaning that when comparing stages, the ROAS is different at each. And this matters because? Well:

At a given point, Incremental ROAS becomes negative, effectively eating into any profit you might have gained. Essentially, the cost starts to outweigh the benefit.

This is good news. It means if we can isolate the point at which Incremental ROAS equals zero, we find the point at the very top of the curve in the Profit versus CPC plot, giving us the optimal CPC target.

Once again, math will be our friend. The process of finding an optimal value of a function, given a set of parameters, is known as Minimization & Maximization.

They do what you’d expect, but because they exist, there are existing methods and approaches, which means we can easily solve the problem of: “Given the current evidence, what is the optimal CPC target to maximize profit?”

Practically speaking, this involves recreating the problem in your programming language of choice. You all program, right? (Take fellow SEL columnist Daniel Gilbert‘s talk, “You can’t do PPC if you can’t code,” with a pinch of salt.) For me, this meant creating the function in Python and leveraging the smarts of the SciPy package and their “optimize” utility.

As an example, below is the output for a specific keyword where I knew the current CPC, conversion rates and profit margin and had done calculations to get a robust set of figures to calculate the demand and elasticity.

So that just about sums up my “working” through this problem. In practice, it’s very difficult to implement some of the optimization, but it is very useful to know the dynamics of the problem, as I believe it will add to your understanding when assessing SEM performance.

Additionally, some of the more advanced bid optimization tools will use similar logic and algorithms (amidst a layer of other calculations).

To finish off, I have a series of important caveats. Recall from the start, this is about an exploration of a question to which there is not a single concrete answer, but I hope the logic and process has been interesting and informative and has gotten you thinking about this question yourself.

Now, the all important caveats:

Caveat #1: By introducing the Isoelastic function in such a simple way, a number of mathematical assumptions were made without proof. This generally is not okay, but the mathematical robustness was not my aim. Conveying the narrative was, and some shortcuts were necessary steps. In fact, there has been quite a bit of simplification, but I’m going to blame that on the influence of an old lecturer who was a fan of this method of teaching — removing all complexity that isn’t hugely relevant in order to make the point of your lesson.

Caveat #2: The scenarios were still based on theoretical data. What differences would real data make, and how do I get real data to work this problem with? In short, things become a bit more in-depth and bespoke to each situation, at which point the narrative is lost in favour of the problem being computational power and equation solving. Not a fun read.

Caveat #3: We’ve assumed that conversion rate is static — in the real world, there is a degree of variability about this. (See my previous post, “Marketing Analysis: Unlocking The Power Of Descriptive Statistics” for more on this.) Combining this into the equation makes the problem even more interesting, but we’ll leave that for a later date.

Hat Tip

Finally, I’d like to give a “hat tip” to a couple of articles I read that got me thinking about this topic in greater detail and helped clarify that this approach could be valid:

  1. The Profit-Driven Marketer: Setting a New Standard for Performance from ThinkWithGoogle
  2. Profit Driven Management of PPC Campaigns by Witold Wrodarczyk

The post The Search For An Optimal AdWords CPC appeared first on Search Engine Land.