Calculating Marketing ROI
There are a lot of different ways to look at marketing ROI, but for organizations that sell online, return on ad spend (ROAS) is a common metric for measuring marketing performance. ROAS is gross revenue divided by ad spend. Simply put, how much did you spend to generate how much revenue? It is commonly described as a dollar figure, e.g. “we generated 4 dollars in sales for every dollar spent on marketing,” though sometimes it is expressed as a percentage, e.g. 400%.
If awareness or leads are the focus of marketing, the other common metric is cost per acquisition (CPA), which is also referred to as cost per lead (CPL).
Generally, we calculate CPA as total spend divided by total conversions, though ideally we want to get to the cost to acquire a unique human being. This number is referred to as cost per acquired customer (CAC), but is elusive due to the fact that Analytics can’t reliably identify unique people.
Both ROAS and CPA rely on cost data, which is a bit of a challenge in Google Analytics. It is possible to get the cost of Google Ads to show up automatically in GA, but other channels are a bit more challenging. You can load costs by channel manually, but it is a bit of effort to get this set up, and requires an ongoing commitment to keep it accurate. For most purposes, it is easier and more practical to do this analysis outside of GA. Below is an example of calculating CPA and ROAS in a spreadsheet.
A template for this report exists on the ROAS + CPA by Channel tab of this Google Sheet. Select File > Make a copy to create an editable copy. The CPA and ROAS columns are formulas similar to those described above.
When you calculate the cost of each of these channels, consider including the cost of time as well as the cost of media. For example, at a small scale, organic social media may feel like it is essentially free, but to scale this as a channel, you will need dedicated resources, and may also need to pay for design and production services.
Calculating the cost of organic search can also be a bit complicated. Organic search engine optimization (SEO) tends to be a long-term investment, which should be amortized over time. One approach is to take an SEO investment made in a given month, and spread it out over the following 12 months.
UTM Codes and Custom Channel Groupings
The spreadsheet above uses the default channel groupings set up in GA. A channel grouping is a group of traffic sources that together comprise a channel. For example, all traffic from organic search engines (Google, Bing, DuckDuckGo, Baidu, etc.) is categorized as Organic Search. There are a few simple things you can do to make channel groupings much more useful.
To make channel groupings more useful, we’re going to create a new paid social channel grouping in GA based on the UTM codes appended to social ads. We’ll also create separate channel groupings for branded and non-branded paid search. For that part to work, Google Ads and Google Analytics need to be linked.
Step 0 – Google help article on linking Google Ads and Analytics
If you are also advertising on Bing, watch this video to learn how to tag Bing ads to automatically track properly in GA.
Step 1 – go to Admin > View > Channel Settings > Channel Grouping. Under the Actions drop-down to the right of Default Channel Grouping, select Copy and name the new channel grouping Advanced Channel Grouping. Note that you could modify the Default Channel Grouping instead of creating a new one, but this can’t be undone. It’s safer to create a new one.
Step 2 – append UTM codes to all of the links to your site from ads and paid content on social media networks. In the UTM codes, specify Source as the network, e.g. facebook, twitter, etc., and specify the Medium as cpc.
Step 3 – at the top of your new channel grouping, under CHANNEL DEFINITIONS, select Define a new channel. Name the new channel Paid Social, and add rules to match Source / Medium for each of the social networks on which you advertise. Make sure to use OR conditions for each rule. Once you are done, click Done and drag your new channel above the existing Social channel. GA evaluates channel definitions in order, and it is critical that the Paid Social channel gets evaluated first. Any social traffic that doesn’t get picked up by the Paid Social channel will fall into the organic Social channel.
Step 4: select the pencil to the right of the preexisting Social channel to edit it. Change the name to Organic Social.
Step 5: at the top of your new channel grouping, under CHANNEL DEFINITIONS, select Define a new channel. Name the new channel Branded Paid Search. Add a rule to match Source / Medium exactly matches google / cpc. Add an OR condition for bing if you are also advertising on bing. Then add an AND condition for Keyword matches, and specify contains and your brand name. If there are different ways people might search for your brand, include each of them. You don’t need to worry about uppercase/lowercase. When done click Done and drag your new channel above the existing Paid Search channel.
Step 6: select the pencil to the right of the preexisting Paid Search channel to edit it. Change the name to Non-branded Paid Search.
Here’s how everything should look when you are done:
Voilá! You can now differentiate branded and non-branded paid search, and paid and organic social! If there are other channels that are an important part of your marketing and don’t exist in the default channel groupings, consider adding UTM codes to them as well, and creating associated channel definition(s).