Marketing ROI analysis: a complete guide for small businesses

Image contains marketing roi analysis

If there is one thing that has allowed our presentation software Slidebean to grow fast AND efficiently, is our obsessive tracking of our marketing ROI. Back in 2015 when we only had about $2,000-$3,000 worth of marketing budget to spend each month, getting the most out of our buck was fundamental not only to grow but to survive.

But keeping account of where a customer came from is very hard, especially when you start diversifying your marketing channels to campaigns that don't have a direct conversion.

Let's take a Google Adwords ad, for example; you can track and confirm the source of a conversion using:

  • The conversion tracking pixel from Adwords.
  • A conversion event in Google Analytics.
  • The UTM parameters on the URL.

(we'll get into each one of them in a minute).

However, when you sponsor a podcast or a Youtube video, for example, customers might end up searching for your name in Google rather than clicking the sponsored link, which means you'd probably have no idea how they made it to your website in the first place.

This is where the science of smart tracking comes in; for any online product or service, there are dozens of tools you can use to track customer sources accurately; we'll get into each one of them in this article.

The basics: Google Analytics

Google Analytics is a very powerful (and free) tool. If it were easier to use it would probably kill a bunch of other analytics tools in the market, but Google hasn't been great at simplifying it.

Still, it's incredibly simple to integrate and start tracking, all you need to do is add a short script to the top of your website.

Now, Google will start tracking everything that happens in your site: pages visited, funnels, user journies, time on a page... You can go back any time to look at historical data and answer new questions that might come up about your user activity. However, mining this data is complicated.

Image contains google analytics goal definition

Google Analytics Goal definition

The easiest way to approach Google Analytics is to define Conversion Goals early on. A Conversion Goal is a trigger that occurs when a user completes a desired action on the website. That goal might be,

  1. visiting an individual page or series of pages (like a checkout or successful sign-up page),
  2. spending a certain time on the website or
  3. completing a trigger event that you are sending from your app.

Once you have Goals defined, you can easily filter your data to know which channels are driving these conversions. On this sample, you can see that we can easily tell which channels drive more signups, and compare conversion rates.

Image contains google analytics

You can do the same for more advanced goals, like activating a plan or completing a purchase. It's important to define these goals early on because Goals doesn't allow you to look at historical data, so they will only start recording conversions once you have set them up.

Google limits conversion goals to 20 per account, feel free to use them all up at the very beginning and then discard and replace the ones you aren't using.

In Slidebean, we have defined the following goals that we track regularly:

  • Sign Up
  • Conversion to any Plan
  • Conversion to our Individual Plan
  • Conversion to our Teams Plan
  • Single Presentation Purchase

As you can see, all our goals are related to marketing ROI. You may also define goals for UI/UX monitoring: like a tutorial or onboarding process- however, other tools like Kissmetrics let you take a lot more action on those types of funnels.

UTM Parameters

You can further 'educate' your Google Analytics metrics by using UTM parameters on your links. When you paste a link on say, a Quora answer, or a Facebook post, Google Analytics can track the domain and the address where that visitor came from, but that data is rarely very useful on a mid-to-large scale website.

UTM parameters are also the only way to get deep campaign insights in Google Analytics from marketing efforts that are not running inside Google's environment.

With the Google's URL Builder you can send additional information to Analytics to track traffic sources better. For example, if you have a brand awareness campaign built around answering customer's questions in Quora, Reddit or Twitter, you can group all that traffic together using a utm_campaign parameter.

This is how a tagged URL for a Facebook ads campaign would look

This is how we've tagged the urls on this article:

Let's look at each variable:

Source: usually the domain (not the full address) where the link will be posted. If you are advertising on Facebook, this should be

Medium: this is mostly used for paid ads campaigns (CPC - Cost per Click or CPM - Cost per Impression), but you may also define it as email, post or content. Google Analytics will automatically consider any CPM/CPC visitor as 'Paid Traffic.'

Campaign: you'll want to define a campaign nomenclature and get everyone on the marketing team to follow that standard; for example our pitch deck campaign was called US-Startups or WW-ContentMarketing so that you can group all the conversion together using a single ID.

Campaign Term and Content (optional): you should only add these parameters if you are doing in-depth analysis or if your campaign has a lot of fronts. You can us Term to filter the keywords that you are targeting, or in the case of a Facebook ads campaign, the audiences that you targeted. Campaign content on the other side lets you add a different name or ID to each particular version of your ad. Again, these ought to be used if you are looking for very detailed tracking.

Tracking Conversions directly in your ad Platform

Switching back and forth between your ads platform and your Google Analytics results can be very cumbersome.

Inside Google's environment, you can integrate your Google Analytics to Adwords account, and cross-match your Goal Conversions to your Campaigns, Ad Groups and even specific ads and keywords (more information on how to integrate here).

This is how this looks:

image contains tracking conversions in ad platform

Knowing which particular keyword drove a conversion can be extremely useful to filter out bad keywords, or to optimize for these keywords in your SEO plans (this is how we did it).

But this Analytics-Adwords direct integration doesn't occur with other platforms, so unless you have an advanced UTM tags system, it's going to be very hard to know which specific ads are being successful.

This is why many platforms have started creating their tracking pixels. Some are very easy to integrate, and some are not, but most follow the same system than Facebook.

With Facebook, you need to add a general tracking pixel to the head section of your pages. That pixel automatically tracks page views (PageView), so you can, for example, define conversions based on specific pages visited.

However, the best way to track Goals is to use Facebook's Conversion Events. Facebook has a default set of events like 'Lead' or 'CompleteRegistration' that you can trigger when a user clicks a particular button or completes a concrete step: these are much more accurate than URL tracking and are necessary if you have a single-page application like ours.

Image contains Facebook stats

On Facebook's ad platform, you can build campaigns using these Conversions as Objectives, so that their ads are automatically optimized for the copy and images that are driving the most conversions, instead of the most clicks). Furthermore, you can use these conversions for Retargeting. But that's a whole other story.

With Conversion Events enabled and well setup, you can compare campaign ROI directly on Facebook, which will save you A LOT of time and effort. Twitter and LinkedIn have similar conversion tracking, though their pixels are not as good.

It's also important to remember that each pixel or code you install on a page has an impact on performance and loading time. Use them all wisely and test consistently.

Going Pro: Tracking Conversions in Kissmetrics

Kissmetrics is a fantastic and powerful tool to track activity inside of your app, but it's done wonders for us regarding tracking our marketing ROI.

If you install Kissmetrics in both your app and your landing pages, their pixel will automatically assign an anonymous ID to every single visitor that lands on your website, even if they haven't registered yet. Any data points associated with that identifier are stored on the Kissmetrics database and linked to an email address as soon as that user provides that information.

Let's look at an example:

  1. User A visits your website thanks to a piece of content that you promoted through a Facebook ad.
  2. They read the content and leave.
  3. 1 month later, they read another piece of content from your blog, that they found browsing the internet.
  4. 3 months later, that user returns to create an account on your platform. They search Google for your company name, and come across a Google ad that you have setup, and click it to get through your website.

Even though it was the Google Ad on step 4 that ultimately drove that customer to Sign Up, the real credit (in my opinion) goes to the campaign that brought him in in the first place.

For Google Analytics, the credit/attribution for that sign up will probably end up being the Adwords campaign for branded searches that the customer clicked on step 4 because Google Analytics 'doesn't remember' that user came to the website before then.

In Kissmetrics, on the other hand, you can look at that customer's activity log, and you will see that a unique ID for that user was created with step 1 and that the first source campaign for that customer is a Facebook ad (this is transferred to Kissmetrics using UTM tags).

Here’s an example of a customer’s journey in Kissmetrics;

Image contains google stats

Each visit is tracked with activity and campaign sources:

Image contains campaign sources

All subsequent visits are also tracked, as well as the visit that drove him to sign up, as well as the campaign that brought him to the website the last time.

One key difference between Google Analytics and Kissmetrics is personally identifiable data: as soon as your customer adds an email address, that email is connected to the anonymous ID created on the first visit, which lets you look at a particular user's activity log.

Last Resort: Promo codes and check-out surveys

Now, some campaigns simply cannot be tracked by traditional means. If you put a billboard on the subway, for example, you can try driving people to, but a lot of individuals will just search your brand in Google and convert from there.

This is where checkout surveys and campaign-specific promo codes come in. You can use a checkout survey to track and to validate further the results you are getting from your other marketing channel tracking methods.

We implemented this checkout survey that we built in Typekit, and it has done wonders for us. We copied that 2-question system from Squarespace, but it has been great to track new marketing efforts like podcasts.

Image contains a computer displaying stats


For a SaaS company, there's a magic LTV > 3x CAC number. The lifetime value of each customer should be 3x its acquisition cost; this is calculated quite easily using the monthly churn percentage.

Tracking lifetime value on other types of businesses is harder, obviously. For an eCommerce platform, for example, you can use margins, average transaction size and percentage of repeat customers to calculate an LTV.

We recently implemented a product that works as a single purchase, so we've looked at customer data to understand how many of our users make repeat purchases, and how many of them subscribe a plan after that. We accounted all of that to estimate that 'single purchase LTV,' which is now at 1.5x the value of the original transaction.

Bringing it all together

Now you have various data points confirming the customer source, but how to summarize them in a way where you can study your ROI?

We use a combination of spreadsheets to connect the following data points:

  1. Customer ID: emails from the database.
  2. Customer plan and estimated LTV: based on their plan or purchases, sourced from ChartMogul.
  3. Customer's sources: all the data points collected from the UTM tags and the checkout surveys. This consists of 1-6 columns that we source from Kissmetrics.
  4. Customer's revenue to-date: pulled from Stripe.

This requires some intermediate Excel/Spreadsheets skills. The formulas that you'll end up using the most are INDEX/MATCH, COUNTIFS, and SUMIFS. These are the spreadsheets that we end up using the most:


a general spreadsheet + charts to understand WoW or MoM performance.

Image contains monthly summary


Using INDEX/MATCH, you can generate a graph of how much MRR each campaign brought for a given weekly or monthly cohort.


Using INDEX/MATCH as well as your estimated LTV data, you can calculate the estimated LTV brought by each campaign. Your spend per campaign should certainly be lower than this number, ideally 1/3 or less.

Image contains LTV stats


using Stripe data, you can calculate actual charges made to each user and determine if the spend for a particular campaign is on track to being recovered. If you are a SaaS company, this is especially useful to monitor the impact of yearly pre-paid subscriptions.

Image contains LTV stats

Did you find this useful? Please let us know in the comments below.

Related video

Slidebean logo
© Copyright 2024 Slidebean Incorporated. All rights reserved.
Made with 💙️ in New York City and San Jose
Download our Template

This is a functional model you can use to create your own formulas and project your potential business growth. Instructions on how to use it are on the front page.

Financial Model Example
We've got it! Look for an email from
Oops! Something went wrong while submitting the form.

Book a call with our sales team

In a hurry? Give us a call at 

Please await momentarily as we prepare your calendar, complete with available slots.