How to Measure True Return on Ad Spend (ROAS) When Marketing SaaS

Published on

If you are a software-as-a-service (SaaS) company and are trying to track your Customer Acquisition Cost against your Customer Lifetime Value, you may face difficulties attributing these metrics to your marketing channels. Here is how we navigate our way through this issue for many of our clients.

The Case: Using Customer Lifetime Value to Calculate Return on Ad Spend

At Hop Online, we have SaaS clients who offer online subscription services, starting with a free trial of usually 7, 14 or 30 days. The trial requires a credit card to get started, and you have to actively opt out or it rolls over to a paid subscription automatically at the end of the trial period.

When managing PPC campaigns, it’s important to measure return on ad spend (ROAS) for each individual campaign. We also need to calculate the customer lifetime value (the recurring revenue from the subscription service) and measure it against the customer acquisition costs (CAC) per campaign. This way we can decide which campaigns perform best and focus on them.

What makes things trickier, is that we need to do this in Google Analytics. Why? Because Google Analytics is the most popular and versatile web analytics tool, it’s free, and it integrates natively with Google Ads.

That last part – the smooth integration with Google Ads, is important for two reasons:

  1. First, it allows us to measure the return on ad spend, which is also an important element of the cost of acquiring a customer.
  2. Secondly, we can use the transaction data to feed the increasingly powerful bidding algorithms that drive the target cost-per-acquisition (tCPA) and target ROAS bidding strategies.

The Challenge: Google Analytics Cannot Track the Recurring Transactions That Occur After the End of the Free Trial

We have implemented Google Analytics (GA) with e-commerce tracking and can monitor free trial signups that happen on the website along with the traffic source.

However, when the free trial ends and the credit card gets charged (the so-called auto-upgrade event), GA does not track the transaction. And how could it? It does not occur on the website, but in a payment processing system.

So the value of these subsequent transactions is not registered in Google Analytics, and we cannot calculate the true ROAS within Google Analytics and Google Ads. Read on to find out how we are solving this problem for our clients.

As marketers, we want to point you in the right direction and show you the steps to truly know your Customer Acquisition Cost against your Customer Lifetime Value, so you can optimize your marketing efforts, use the right channels, and market to the right audiences.

The Solution: Use Google Analytics to Create a Single Customer View

These are the 4 steps to overcome the challenge of tracking off-site conversions and bringing the data back into Google Analytics and Google Ads:

  1. Implement the user-ID functionality in Google analytics and start collecting the unique IDs of your customers in a special Google Analytics user-ID view.
  2. Whenever there is a transaction/cancellation/refund associated with a user, generate an HTTP request using the Google Analytics measurement protocol.
  3. Run Google Analytics reports to get insights on the efficiency of your campaigns per medium/channel and audience segments.
  4. Import data in Google Ads to measure ROAS and power the automated bidding strategies

Step 1: Implement the user-ID functionality in Google Analytics and start collecting the unique IDs of your customers in a special Google Analytics user-ID view.

First, you will need to implement the user-ID feature of Google Analytics. More info on the feature here. This involves creating a special user-ID Google analytics view and sending to this view the unique ID of each of your registered users with every user interaction.

The user ID can be sent to Google Analytics either by modifying the Google Analytics tracking code (as explained here for the latest gtag.js and here for the analytics.js code) or by using Google Tag Manager as explained here.

Once user-ID is implemented, you will be able to identify each of your registered users within Google Analytics. All of their past website sessions will be unified, which will allow you to see all paid and non-paid visits from all channels leading to the point of conversion — for each individual customer.

Step 2: Send user-specific transaction events back to Google Analytics

Every time there is an event like incoming revenue, cancellation, etc. you should send it to GA through the Google Analytics Measurement protocol. You can send various kinds of data in this way without an actual session occurring on your website. You will need to develop a process within your back-end where this happens automatically for a transaction and other events.

The Measurement protocol works with hits / HTTP requests much like API calls, and you can use the hit builder to structure and validate your hits. Here is the Measurement Protocol Parameter Reference ecommerce example which you will need to build a transaction hit. For events like a cancellation, you will need to generate an event hit similar to this example.

One very important thing to remember here is that with every hit you need to send back the specific user ID, so in the above-mentioned examples instead of the ‘cid’ parameter (client ID) you need to use the ‘uid’ parameter (user ID).

Step 3: Analyze the data in Google Analytics

The next step is about accessing and analyzing the data in Google Analytics. Have in mind that all data sent by the measurement protocol using the user ID will be only visible in your user ID view.

The first report you can check out is the set of Acquisition reports in Google Analytics:

You can get insights from the data on conversion rates, transactions, and revenue.

The user ID functionality unifies all user sessions retroactively even before the user registered on your website. That is why the Multi-Channel Funnels reports in Google Analytics are especially useful here. There you can see all user touchpoints with your website and evaluate the worth of all of your marketing channels with the use of the Attribution Model Comparison report.

Step 4: Import data in Google Ads to measure ROAS and power the automated bidding strategies

If you have linked Google Analytics to Google Ads, turned on auto-tagging in Google Ads and imported the relevant Goals / Transactions as conversions, all of the data imported through the measurement protocol will be sent to Google ads and attributed to the correct campaign, ad group, keyword, etc.

This can be very helpful for measuring ROAS and the overall effectiveness of your Google ads campaigns. If you are using automated bidding strategies this data will also be very useful for powering the algorithms behind these strategies.

One thing to consider here is that you will see a discrepancy in the data between GA and G Ads. This is because of the way conversion attribution works in the two platforms.

In Google Analytics, the default attribution model is last non-direct click (meaning credit will go to the last non-direct channel a user used to interact with your website). In Google Ads, you can choose which attribution model to use (the default being last click).

Bonus Tip: Turn GA into a Truly Customer-Centric Platform to Augment Your Marketing Results

Once you have the above-mentioned system in place, it will take a little more effort to add additional events and user attributes to Google Analytics which would allow you to build Audiences/Segments based on these attributes and events.

You can use the GA custom metrics and dimensions, as well as custom events to import user-specific attributes and interactions such as user type, active users, cancellations, upgrades, usage milestones, etc.

This way you could turn Google Analytics into a truly customer-centric platform where you track a single customer view for all of your customers and use it to improve your marketing campaigns and your product. You could also use your user-based GA audiences built around their specific attributes in Google Ads to target similar audiences and expand your market reach efficiently. Here’s a related helpful article from Google on the subject.

See the True Picture of ROAS

As marketers, we want to point you in the right direction and show you the steps to implement accurate tracking of your transaction data within GA, so you can achieve accurate ROAS calculations for your marketing channels.

We are helping most of our SaaS clients implement this solution, though each company has its unique combination of payment gateway, data warehouse, back-end processes, and event tracking.

Once the right tracking is in place, we overhaul our marketing campaigns and reach a higher level of efficiency and lower levels of customer acquisition costs that wouldn’t be possible otherwise. If you need help putting this conversion tracking system in place, just get in touch.

Let's Talk!

Drop us your contacts and we'll get right back to you to discuss your needs.

Your message was sent successfully!

Error. Please try again!

See locations
We use cookies and local storage for better UX, analytics, and ads.
Learn More