Why Googles Smart Bidding Spent 339€ for Just One Click?

And why Google is pushing everybody to use Smart Bidding? If this bidding approach is really that superior it would be very easy for Google to take the total risk and provide pay for conversions.

I was wondering why they did this in the Display Network – my guess is that they had to, since more and more people opted out completely because of all those fraud placements and clicks (but this is worth an extra blog post).

Time to ask some questions!

To provide an idea on what might happen, I want to start with Google’s “in-market audiences”. In the background a model tells that the probability of a sale is higher than average. What happens to the CPCs if everybody bids up on that list. What are the incremental costs? What are the incremental conversions? There is only one winner in that scenario.

Google’s model says that the probability of a sale is higher than average. What happens to the CPCs if everybody bids up on that list. What are the incremental costs?

Share on Twitter

Now think of system where you can do this on scale because your bids are totally managed by Google. My guess is that there will be some crazy CPC peaks if some auction players are using that system. Time for a deep dive to get some answers…

First: Smart Bidding can work…

This is for the people that have no time or budget to think about own bidding approaches. In some industries the competition is very high and it totally makes sense to invest in your own bidding strategies.
The main challenges for all bidding systems out there are:

  • Sparse data: many keywords but only a small amount of conversion data that often cause
  • High variance in measured conversion rates and more critical in basket sizes

In simple words: only because of one big sale in the past it is normally a bad idea to predict to get the same performance in the future. And yes – your average performance numbers will still look ok for quite a while when overspending after such an outlier. But you are doing the wrong thing!

What are the CPC Peaks for your Smart Bidding setup?

Google will tell you to do not use upper bounds for your bids in their strategies. Their algorithms will do better they say. To get a first approximation if you have a problem with too expensive single clicks you can follow this approach:

  • Use the search query performance report in the most granular way that is possible (Query, Keyword, Date, Device, Network) to get single clicks in most of the cases. Do this for a long time period.
  • Order by CPC and please comment this post with your high score. The maximum I observed was at 339 € in a business where values per-click are below 5 € when you look at big numbers.
  • Identify your best case Value Per Click (ConversionValue/Clicks): e.g. take the keyword with a large amount of clicks that has the highest value per-click
  • Calculate your upper bound bid: e.g. UpperBoundBid = VPC (Best Case) / ROI-Target
  • Shortcut for the Upper Bound CPC: just filter on the Clicks that are e.g. 3* AverageCPC for that account
  • Sum up all costs and conversion values for single clicks that costs more than the upper bound.

If this task is too big for you to manage on an Excel sheet you can also use this account level Google Ads script for this task:

// SEAlyzer CPC Peak Analyzer
// Author: Stefan Neefischer (stefan@sealyzer.com)
//#################################################
// Customize to your needs START ->
var MAX_CPC = 30.00 // Type in your upper CPC bound - some good dynamic bounds are: 2*AvgCPC, 3*AvgCPC
var TIME_PERIOD = "LAST_30_DAYS" // Type in your Date Range: 20190101,20200301 or use predefined enums like LAST_30_DAYS
// <-END
//#################################################
function main() {
  fetchReport(MAX_CPC)
}
function fetchReport(upperbound) {
 var upperbound_micro = 1000000 * upperbound // microamount is used in awql - we have to convert it
  
 var top_cpc = 0
 var cost_sum = 0
 var conversion_sum = 0
 var conversionValue_sum = 0
 
 var report = AdWordsApp.report(
   'Select KeywordId,AdNetworkType2,Query,Date,Impressions,Clicks,AverageCpc,Conversions,ConversionValue,Cost,Device from SEARCH_QUERY_PERFORMANCE_REPORT WHERE AverageCpc > '+ upperbound_micro +' DURING '+TIME_PERIOD)
   .rows();
  outliercount = 0
  while (report.hasNext()) {
     var row = report.next();
     outliercount+=1
     cost_sum += parseFloat(row['Cost'])
     conversion_sum += parseFloat(row['Conversions'])
     conversionValue_sum+=parseFloat(row['ConversionValue'])
     //Logger.log(row['AverageCpc'])
     if (top_cpc < row['AverageCpc']) {
        top_cpc = row['AverageCpc']
     }
   
  }
  if (conversion_sum > 0) {
    cpo = cost_sum/conversion_sum
  }
  else {
    cpo = cost_sum
  }
  if (cost_sum > 0) {
    roi = conversionValue_sum / cost_sum
  }
  else {
    roi = 0
  }
  
  Logger.log("############# Segment performance of Clicks with CPCs > "+upperbound+" ################################################################")
  Logger.log("-> Your CPC Peak was "+top_cpc+" for the time period " + TIME_PERIOD)
  Logger.log("-> There where "+outliercount+" Cases of Clicks higher than your CPC bound")
  Logger.log("-> In total you paid "+cost_sum.toFixed(2)+" for those Clicks")
  Logger.log("-> This segment of Clicks generated "+conversion_sum.toFixed(2)+" conversions resulting in a CPO of "+cpo.toFixed(2))
  Logger.log("-> This segment of Clicks generated "+conversionValue_sum.toFixed(2)+" in ConversionValue resulting in a ROI of "+roi.toFixed(2))
  Logger.log("###########################################################################################################################")
  
}

Now you are able to answer some interesting questions:

  • What is the total number of CPC Outliers for your time period?
  • What is your personal CPC high score 🙂
  • What is the ROI of Clicks that are identified as outliers?
  • Does it make sense to spend that money?

Probably you stop reading this blog article after seeing your numbers and directly go to your Google Ads account and set bid upper bounds for the google bidding strategies. Not a bad idea!

You can do this not only for Google’s bidding strategies – I’m continuously monitoring my own bidding solutions with approaches like that.

Conclusion and actions

I focused only at the top end CPCs on a global level to get a first approximation if smart bidding is wasting money by paying a way too much for the “positive signals” within that bidding blackbox.

Note: With that approach we do not catch the cpc peaks for keywords that are on a lower average cpc level – to achieve this we have to analyze cpc outliers on keyword level. This is getting more complex and I do not want you to confuse you with a wall of python code 😉

Smart Bidding can still be the best solution for you when it makes no sense to spend high time efforts to manual bidding. If you use it I highly recommend to define some bid upper bounds.

Join the conversation on LinkedIn

More Similar Posts

Menu