Analytics & Marketing Insights

3 Problems Solved by Adobe Analytics Calculated Metrics

3 Problems Solved by Adobe Analytics Calculated Metrics

November 3, 2016           Adobe Analytics

As an analyst, you are at the mercy of your implementation. If something breaks or was not scoped out in the initial implementation, analysis stops. When analysis stops, valuable insights are hard to come by.

When I find myself in these situations, I turn to one of my favorite features of Adobe Analytics: the calculated metrics builder.

With a combination of segmentation and advanced calculations, calculated metrics can help you solve problems of broken variables and missing data, plus generate reports previously only available by exporting data outside of Adobe Analytics.

Let’s go through three common problem scenarios and how calculated metrics can be used to solve them.

Bridging Gaps in Data

Problem 1: Data Flatline

You’ve been planning a new site launch for months. In the production environment, everything looks ship shape and ready to go. However, something changed between the production environment and the live site just before launch, so this happened:

screenshot of data gap in adobe analytics metrics report

Once you have found the problem and fixed it, the data is now flowing correctly but leaves you with a gap. At this point, you’d probably just cut your losses and fondly remember The Great Flatline of May 10th.

Solution: Fill in the Gaps

The first step is to find another metric that trends similarly to the one that broke.

Go to the page and click on the link. Are there any other variables that fire on that hit that you can use? You can use any combination of events, eVars or props to find a proxy for the broken event.

For example, maybe every time that link is clicked it takes you to a page with a specific query string parameter. If you are capturing the full URL in a prop and/or eVar (highly recommended) then you can use that as your proxy. If you have Activity Map set up, you could use the activity map link names. You may need to experiment with different combinations.

graphic explaining how to get better view of Adobe Analytics calculated metricsOnce you think you have found something, set up a segment in the segment builder that reflects what you have found. For example, if you were using an instance of a Page URL eVar with a specific query string parameter, your segment might look like this:


screenshot of adobe analytics segment builder


Whatever it may be, go into Analysis Workspace and put them both on a trend line. If you’re lucky, you will have come up with a metric that looks like this:

graphic example of trend line in adobe analysis workspace

But sometimes you won’t be able to find an option that works out perfectly and you’ll have to settle for something like this:

example of metric proxy in adobe analysis workspace

Either situation will work. It is important to remember that this metric isn’t meant to be a source of record, it is just something to help fill in the gaps for trending purposes.

Once you have found your metric, grab 200 days (or as many as you can, based on the implementation) of data for both metrics and download the data as a .csv file.

Open up the .csv and run a quick calculation dividing your proxy event by the actual event:example of proxy event segment spreadsheet for adobe analytics metrics

Finally, get an average of those numbers:

image showing example of metrics calculations for adobe analytics
Once you have this number, open up the calculated metric builder and take your proxy event/segment combination and divide it by this average number:

screenshot of sample of metric proxy preview in adobe analytics

The result is an unbroken event that you can use in dashboards and reports when you need to analyze data over that specific time period:

example of adobe analytics segmentation for reporting

Going Back in Time

Problem 2: Untracked Conversions 

Someone from the marketing team lets you know that there is a group of important links that are present on some blog pages. Any time a user clicks on these links it means $10 for your company (once per visit), so it is important to track this conversion.

Oh, and one more thing — she needs to know how those links have performed since May 1st. And now it’s June. Had you known about this back in April, you could have set up a currency event to increment $10 every time someone clicked a link and then set it to fire only once per visit.

Now, unless you have a DeLorean in the break room, that ship has sailed.

Solution: Build Metrics

The first step is to go to the website and click on the links that you need to track for the marketing team.

Much like you did above, you are looking for something unique that you can use as a proxy for each of the important links. For this particular client, we have Activity Map set up, which identifies links that are clicked even if you have not specifically tagged them with any custom variables.

Once you have identified each of the links and what they are tracked as in Activity Map, you can use the corresponding “Activity Map Link” and “Activity Map Page” dimensions in Adobe Analytics to make a segment that looks like the following:

screenshot of adobe analytics calculated metrics builder

It is important to be as specific as possible in this segment to make sure we are only capturing the clicks on these links. For this reason, use both the Activity Map page dimension and the Activity Map link dimensions to specify the hit of each link.

Once this segment is created, go into the Adobe Analytics calculated metrics builder and use it to make the following segmented metric:

image showing example of adobe analytics new calculated metrics

Add the segment you just created and then add the “Activity Map Link Instances” metric within the segment. You can then multiply it by a static number. We wanted each link click to represent $10, so we will multiply by 10 and turn it into a currency format. We can see the metric is working as of the day we implemented Activity Map.

You can use this metric in all of your other Adobe Analytics audits and reports to see what traffic sources are bringing in more clicks to those specific links.

Reporting Unique Variables

Problem 3: Unique Reporting Requests

Your boss would like to see the total number of Reward IDs that have logged in this month compared to last month. It is important to note that rather than seeing unique visitors, he is interested in seeing unique Reward IDs, knowing that many users log in from multiple devices. Now, of course you can get this data in a number of ways, but you already have an Analysis Workspace project report that you send out every week and this would be a perfect number to add to the top of that dashboard.

Solution: Amaze Everyone

In this situation, we are capturing Membership ID in an eVar whenever the user logs in. This means that if we go into Analysis Workspace and add the Membership ID eVar, the number of rows is equal to the number of individual Membership ID’s that have logged in given the time period.

Open up Analysis Workspace and add your Membership ID eVar with visits as the metric:

screenshot of visits metric in adobe analytics

The resulting table will give you a list of all of the Membership ID’s that have visited the site and were logged in. The number we are really interested in is the total number of rows:

image of row count in adobe analytics table

We now want to create a new calculated metric that counts the number of rows in a report. However, we don’t want to include the “None” row, so we’ll make sure it says the row count – 1:

graphic showing adobe analytics calculated metric for counting rows

Drag this newly created metric onto the Freeform Panel:

screenshot of adobe analytics freeform panel

Next, find the two date ranges you want to compare: Last Month and 2 Months Ago. Take these two date ranges and replace “Rewards Membership ID”:

example of adobe analytics date range comparison

Now we want to break down each of these date ranges by “Rewards Membership ID”:

graphic example of date range breakdown in adobe analytics


We can now see that last month we had 69,523 members log in, which is up from 58,206 the previous month. If we select a number from two months ago and a number from last month we can right click and say “Summary Change”:

screenshot of right click menu for summary change in adobe analytics

The result will be a large % difference Month over Month summary number to place on your dashboard:

image of large change number on adobe analytics dashboard

If you would then like to hide the table from the dashboard, you can click on the green circle and choose “Hide Data Source”:

screenshot showing how to hide data source in adobe analytics report

Please Segment Responsibly

When Adobe Analytics added the ability to segment your calculated metrics, they opened the door to analysis that I did not even think was possible, given the limitations of the reporting interface.

Combining the freedom of Analysis Workspace with the power of segmentation, calculated metrics are now one of the most powerful features available in Adobe Analytics.

Want to dive deeper? Check out this massive 51 page calculated metrics resource (PDF) from Adobe Analytics with FAQs, How To Videos, explanation of unified calculated metrics, and more.

Let us know if you have any questions or comments about calculated metrics builder, analysis workspace or other related Adobe Analytics analysis.


  • Hello Brad, I’m Brazilian and a big fan of your blog, I work with Web Analytics here in Brazil, and in an implementation I noticed that Adobe Analytics does not work in custom mode correctly, and I manually made the implementation via DTM. The implementation is done and is 100% but I am having difficulty implementing stagging, I do not know which variable to add in the script, could you help me?
    In the normal way of doing for s.account, it is not working and is generating second server and consequently Overusage. How can I solve this problem? Thanks, and congratulations for the blog.

  • Hello Wallan,

    I’m not sure I get exactly what you’re asking, but if you’re trying to test the staging DTM and are having problems with it, you need to make sure that your staging environment has a slightly different snippet. If you’re logged into your Property, there’s a menu item called “embed” and it provides you both the staging and production versions. A shortcut – the staging snippet is nearly the same as the production snippet. (xxxx are that really long number for your account )

    You can also get the DTM switcher extension for Chrome which allows you to put the page in “staging” mode without the need to change the snippet.

    Please let me know if that answers your question –

  • Hello Olaf! Thanks for the help! But that’s not my problem. It’s in the Code Configuration part of the DTM Library Management, I’m doing the custom mode implementation, with check “Set report suites using custom code below”. In the Open Editor, I inserted the requested function: var s = new AppMeasurement ();
    S.account = “businessname”;
    Var s_account = s.account; And I do not know where to insert the account of my homolog, I think I need some additional function for it, because if I put in the s.account variable, I can create an overusage in Adobe Analytics. Can you help me? I think it’s something simple, but I have not found it anywhere. Thanks for the attention Olaf!

  • Olaf, The term homolog with stagging, I’m sorry

  • Hello Wallan,

    Within the code you need to add logic for either case. You need to have a way of determining which environment you’re on and then add logic to pick the correct report suite accordingly.


    var env = (/www/).test(document.location.hostname) ? “prod”:”dev”;
    var reportSuite = env == “prod” ? “Production Report Suite”:”Staging Report Suite”;

    then later:
    s.account = reportSuite;

    This will recognize any url containing “www” within the hostname as the production report suite. Anything else would be sent to the staging report suite.

  • Eli Kirkley

    Great info! I have a question on #3 though. When I do this I have a row with significant traffic that is labeled “low traffic.” Since these are being bundled together into one row, this tip doesn’t work in this scenario, correct?

  • Fred

    Hi Brad, great read! Wondering if you know of any existence of something along the concept of a UDF? So instead of building calculated metrics, have a user defined function to calculate any arbitrary metrics, ie. f(x, y) instead of f(Metric1, Metric2). Is this possible?

  • Brad Millett

    Thanks for reading Eli! unfortunately, that is correct. This tip won’t look past the “low traffic” line items.

  • Brad Millett

    Hey Fred! Thanks for reading. Would you be able to give me some more detail as to what you are trying to accomplish? That might help me point you in the right direction.

  • Fred

    Hey Brad, I am trying to run the same calculations on multiple reports… So im implementing a function rather than a metric. a simple example would be whether adobe allows user to define a plus or minus operation… without identifying what metrics im doing the operations on.

  • Brad Millett

    So for example, if you have a table with “Day” on each row, and a column for “Entries” and another for “bounces” you’d want to to have a column that basically is saying “divide column 1 by column 2”. In this situation you’d have bounce rate but if you were to change the metrics to be Orders in column 1 and Visits in column 2 the third column would remain and now it would be conversion rate (dividing orders by visits). Would that be a correct description of what you’re looking for?

    If that’s the case, no it’s not possible to do this within Adobe Analytics. You always need to define what metric you are talking about in a calculated metric.

    This doesn’t solve what you’re looking for, but you will be able to make quick, simple calculations on the fly by selecting the two metrics you care about in a table, right click and then select “create metric from selection”. it will give you a few simple options including: divide, subtract, add, multiply, and percent change. If you need more complicated functions you can select “open in calculated metric builder” where you can then build more complicated functions based on those two metrics.

  • Brad Millett
  • Jennifer Yacenda

    Hi Brad, I always revisit this post from 2016 for remembering how to do patch data when tracking doesn’t work as expected, super helpful!

    I’m wondering if there’s a way to patch data for major key metrics like Revenue and Orders for specific dates – I can create a Segment for those specific dates + create the calculated metric based on how much data is missing (e.g. 20%), but I’m not sure how to get one consistent Orders metric to be able to trend and have an accurate YOY calculation or YTD trend line.

    Have you come across this before?

  • Brad Millett

    Hey Jennifer! thanks for reaching out!

    One thing I’ve been doing lately is incorporating the IF function:

    You can use a combination of the IF function and date range bound segments to limit the transformations you do to the target metric to whatever date range you want (see screenshot for example)

    So the result is a metric you can use in any date range (even yoy comparisons) that will only “fix” the numbers in the affected date range.


Connect with Blast Analytics & Marketing

Connect with us on LinkedIn