SaaS: The most reliable way to calculate the profit of each marketing channel

Many apps prefer to lure people in with a freebie (free trial, free version, free add-on, you name it) and it’s usually the case that they will invest money to get people using the free product.

Crazy? No! There is profit to be made by investing money to increase the number of free users (they are actually valid leads) it’s just that profit is not going to happen over night.

A real life scenario

In the case of the most recent web app we have worked with, the owners were willing to pay up to $10 per lead (free account) which would be recovered if 1 in 10 free accounts would switch to a paid version of the app and stay on the subscription for at least 4 months.

If you are wondering about benchmarks for the above conversion rates, there is this great Quora discussion on the topic.

In other words, the app marketing team would be able to invest $100 in AdWords, hoping that 10 of the visitors they bring to the website will decide to try out the free version of the app.

If one of those 10 users will decide to switch to a paid plan and stay with it at least 4 months, he would have spent at least $100 on the product, proving to be a break-even point for the investment. Anything about that (2 paid users or 5 months spent) would be profit.

The main problem of the marketing team is that at the end of the month, when the $100 are already spent, there is no way for them to know if it has been a good investment or not.

They’ll need to wait for at least 5 more months and, most importantly, they need to have some good tracking in place as neither Google AdWords nor Google Analytics will be able to report more than the first payment of the subscription, as the renewals are automatic, in the back-end.

What used to work so far

The best free solution to track the above scenario was to save the __utmz cookie in the database, next to all the other details of the user that just signed up.

What is(was) __utmz?

For those who are not aware of the __utmz cookie, it is one of the 4 (sometimes 5) cookies set by the old version of Google Analytics on each website which contains the details of the last referrer that brought the user to the website.

By storing the cookie in your system, each time a user would get to your website by clicking on a Google AdWords campaign and would create an account, you would have that info directly in your own app database.

5 months later, a simple search of all the people that created an account  after clicking on a Google AdWords campaign would give you a clear image of how many upgraded and exactly how much they had spent on your app. All you needed to do is to do some basic math and calculate the ROI and profit for each of your marketing channels.

What is going to work (better) in the future?

The mighty __utmz cookie is getting retired by Google with their new Universal Analytics tracking which is now out of beta. Every SaaS business that was counting on it for campaign performance reporting will need to look for alternatives.

Preparing for the moment when we won’t be able to use the __utmz cookie any more, we came up with a solution and we decided to open source it so anyone out there can benefit from it: getSetReff on gitHub.

What the code will do is to save a first party cookie in the browser of the user, named __reff, that can be saved in the database of the app for each user that created account. It will tell you not only the last traffic source that brought the user to your app before creating an account, but every single traffic source together with activity metrics for the user.

The __reff cookie will look similar to this:

getSetReff

As you can see, it stores all the referrers that brought the user to the website together with:

  • the start time and the end time of each past visit of the user (so you can calculate time spent before converting)
  • number of viewed pages

There is more to it

The __utmz usage was more of a hack while getSetReff() is designed for the purpose of identifying and analyzing the traffic sources of app users. Being open source, there is no danger for it being retired in the future.

The __utmz gives you only the last referrer of a visit which means that if someone comes to your app website via a paid campaign, does not convert and later in the day searches for you on Google and does convert, what you would save as the referrer of that conversion in your database would be google.com/organic even though you actually paid for that user and he might prove to be a profit for you.

The __reff cookie takes care of this part by allowing you to actually save all the referrers that brought the user to your website before he converted. You will actually be able to apply some advanced attribution modelling because of this, though that would require some advanced database skills on your side.

Is the implementation worth it?

The referrer data that you now posses is always going to be linked to the spending history of your users so you’ll be able to answer any of these questions:

  • How long does it take for an advertising campaign to become profitable?
  • What is the quality of customers that are delivered by paid versus organic traffic sources (charge backs, lifetime value, etc)?
  • For the investment we did in January to bring new users in our app, how much profit did we do on that investment by June?

 What do you make of it? If you are doing paid marketing for a web app, I’m sure you felt frustrated at least once about tracking the results as it’s way more complex than for ecommerce websites. Do you think the above approach will help you?

If you are the technical guy who is usually required to work with code like the one we shared, let me know if there is anything you would like to see improved on it.