Increase Your PPC ROAS In 2 Minutes With Dynamic Value Tracking

By Jeff Allen | @JeffAllenUT | President at Hanapin Marketing

Better measurement of PPC results leads to better Return on Ad Spend. This post walks you through how to increase your ROAS by customizing your Google AdWords conversion tracking code to dynamically pull in order values or assigning values to leads based on the likelihood of a specific lead generating revenue for your business. (Side note, this is probably my most verbose post on PPC Hero. Don’t let that fool you. It really does take only a few minutes!)


Why Pull “Value” Into The AdWords Interface?

Adding the “Value” field to your conversion tracking allows you to see revenue generated from or attributed to your AdWords campaigns at the keyword, ad group, and campaign level. This makes it easy to make decisions within your account without having to consult Analytics or other third part tools.


Dynamic Value Tracking in Google AdWords


The above shows what this looks like. You can see that adding the value to the tracking code, and the total conversion value to your columns, makes it very easy to see if something is profitable or not and make your optimizations accordingly.


AdWords Conversion Code Customization For Lead Generation

For eCommerce the conversion value is pretty obvious (how much money they spent!) for lead gen that is less the case. What I have found to be the most effective for tracking value for lead generation clients is to work out the estimated value per lead (and per type of lead) based on the lead to sale closing rates of your client. Here’s the formula for that:


(Sales/Leads)*Average Order Value


For example:


For a software company you generate 100 leads and the company reports back that 11 turned into sales. You then ask, “what’s your average order value on those 11 sales?” And they say $397. Or they say that they don’t know but they generated $3,376 in revenue and then you divide that by 11 and that tells you that their average order value is $397.


11 sales / 100 leads * $397 average order value = $43.67 lead value.


A quick note of caution here, you don’t totally control lead quality or the sales persons abilities so it is harder to hang your hat on a lead value for lead gen clients. Probably the wisest thing to do is use the value per lead as a general measure versus an absolute, like you might for ROAS for an eCommerce client.


Besides just working out the average revenue per lead, you also need to determine if certain leads are of a higher quality than others. Typically, the answer is yes. If that is because a contact form submission is better than a newsletter form submission then it’s an easy fix.


Redirect the user to separate confirmation pages for each and set up two conversion tracking codes with different value associated to them. That way at a glance you can look at the value column in ad words and see which keywords are driving the most value in terms of expected revenue versus just total leads.


Dynamically Inserting Value Into AdWords Conversion Code For eCommerce

Having AdWords pull in your shopping cart total price into the “Value” column of the interface requires the answer two questions and then customizing the tracking code in 3 places.


The two questions you need answered are:

  1. What is the server side variable name your shopping cart uses for the order total? (i.e. total_value)
  2. What programming language does your back end use.


You’re developer will know both of these or be able to look them up quickly. In fact, your best bet will be to send your developer a link to this article along with your orginal conversion tracking code and let them do the work. It will probably take them the two minutes the headline sold you on and they’ll make sure it’s done right!


The three places that you will modify the code based on that information are in bold below. What is exactly between the brackets in this example “<%total_value%>” will vary based on the above two questions. This example is for a shopping car programmed in PHP with a server side variable of “total_value”.


<script type=”text/javascript”>

/* <![CDATA[ */

var google_conversion_id = 123456789;

var google_conversion_language = “en”;

var google_conversion_format = “2”;

var google_conversion_color = “ffffff”;

var google_conversion_label = “AAAAAAAAAAAAAAAAAAA”;

var google_conversion_value = 0;

if (<%total_value%>) {   google_conversion_value = <%total_value%>;   }

/* ]]> */



<script type=”text/javascript”    src=””>   </script>


<div style=”display:inline;”>

<img height=”1″ width=”1″ style=”border-style:none;” alt=””    src=”   123456789/?value=<%total_value%>&label=

AAAAAAAAAAAAAAAAAAA&guid=ON&script=0″/>   </div>



How Do You Use This Information To Increase ROAS?

As has been alluded to in this post so far, increasing ROAS using this data is as simple as filtering your keyword level data a few different ways. The first will be to find your best revenue driving keywords and bidding them up. To do this I set the filter finds all keywords that have generated an ROAS that is 1.5x goal and that are at an average position below 2.


Increase ROAS with Dynamic Value Tracking in Adwords


To figure out what keywords are 1.5x goal I need to determine what my “Value/Conv” ratio is. This is pretty simple as it is just your ROAS.


CPA(goal) * ROAS goal = Value/Conv goal


Client with CPA goal of $70 and a ROAS goal of 1.45 has a value/conv goal of $101.50.

[($70 * 1.45) = $101.50]


Increasing bids on keywords with high ROAS (non brand terms that is) is a great way to increase ROAS because while it may end up reducing total ROAS for that specific keyword, driving a higher percent of your conversions from those keywords at the high ROAS should results in an overall increase in revenue, sales, return on ad spend.


After that you create a filter to find keywords with ROAS below goal and slash the bids, or pause those.