New version of On Premises – 9.2d

OnPremises 9.2d was released last week.  The most important improvement, in my humble opinion, is that the interface is now supposed to work properly with IE 10, IE 11, and the latest versions of Firefox.

In addition, the Browsers Report now correctly displays IE 10 and 11.  If you haven’t noticed, these have been a big headache for all the analytics tools I know of thanks to Microsoft’s insular changes to how these browser versions appear in the User Agent field.

And, SQL Server Express 2012 is now installed out-of-the-box!  Thanks Webtrends.   SQL Server 2012 R2 is also now supported.

For those OnPremises users waiting for other interface changes … nothing at this time.  Most of the changes are happening in 10.

Putting Last Touch Attribution to Rest

Campaign Attribution: Using Webtrends Visitor Data Mart to get weighted multi-touch attribution results.

How Webtrends Visitor Data Mart (VDM) makes multi-touch attribution easy

(From Rocky – We met Gary Kralicek last month and he had some great things to say about campaign attribution.  An expert user of both Webtrends Analytics and Webtrends Visitor Data Mart (now sometimes called Segments), he was kind enough to put some of his experience into this guest post.)

Limitations of Last Touch Attribution in Webtrends Analytics

We’ve all been there.   We’ve all been asked some form of this question from marketing:  How are my campaigns performing?

If we’ve been good and faithful Webtrends analysts, we’ve been careful to ensure all of our incoming campaign traffic included the WT.mc_id parameter, populated our campaigns.csv file and enabled the Campaigns report or any number of custom campaign reports in Webtrends Analytics.   These reports typically assign full credit to the last campaign before conversion.  These reports provide some value and are certainly better than nothing, but they fail to tell the full story of a customer’s journey to conversion.

Let me start off by saying that I feel your pain.

After years of saying, “that’s the best we’ve got” in reference to our last touch campaign reporting in a world of long sales cycles over multiple visits, I’m happy to report that there is hope even for us Webtrends analysts.

Setting the Stage – A Lifelike Example

Before we jump in to a Visitor Data Mart Solution, let’s look at a lifelike scenario for an online retail site and explore how a purchase would be represented in Webtrends Analytics.

Bob (a fictional shopper) would like to buy some Blue Widgets and is shopping online.  Over the course of 5 days, Bob visits your site 5 times as follows:

  1. March 1st – Paid Search Brand Keyword
  2. March 2nd – Organic Google Search – Keyword Not Provided (of course)
  3. March 4th – Email Click through
  4. March 4th – Organic Google Search – Keyword: Acme Blue Widgets
  5. March 5th – Direct Visit (No Referral)

On that 5th visit, Bob makes a purchase of 100 Blue Widgets.

Here’s how the Traffic Source, Most Recent Organic Search Engine and Campaigns reports represent that purchase in WT Analytics.

Traffic Source Report

The traffic source report will show the conversion only on the visit in which the conversion occurred, Direct Traffic in this example.


Most Recent Organic Search Engine

The Most Recent Organic Search Engine report will give full conversion credit to the last organic search that occurred prior to sale.


Campaigns Report

The campaigns report will give full credit to the last “campaign” visit, ignoring organic search or other sources.


These reports seem great, especially to the individual managers who manage the various channels.  For instance, the SEO person will celebrate a sale attributed to Organic Search (most recent organic search report).  In the same way, the email manager will celebrate a sale being attributed to an Email campaign (campaigns report).  Finally, the old school guy who thinks marketing investments are silly will cite the Traffic Source report and say that Direct Traffic got the sale.

The problem in this example arises when the VP that oversees these channel managers begins to add up their results and compare them to an online sales report.  In this example, the sum of the channel manager “victories” would be 3 and the online sales report would show 1 sale.  Assuming that VP is pretty good at math, he or she will quickly reach the conclusion that 3 does not equal 1.  This runs the risk of discrediting your whole web analytics program because that VP simply does not believe the data.

  • The only way to deal with this situation is to apply an appropriate attribution model to assign credit where credit is due.

Visitor Data Mart – a Brief Introduction

I recognize that many readers of this blog may not be familiar with Webtrends Visitor Data Mart (VDM) so a brief introduction of VDM is appropriate and necessary before moving on.  VDM is a Webtrends product that makes use of the same Webtrends SDC Logs as Analytics.  The difference is in the way VDM processes the log data.  While Analytics populates reports in profiles and makes some visitor history available, VDM populates database tables that represent events.  Each event has a Visitor ID, Visit ID and a Timestamp (very important as you will see) along with a number of additional attributes that describe the event.  For example, a purchase event includes the product(s) that were purchased, price, invoice number, etc.

A few examples of VDM events that come out of the box are:

  • Ad Event View (aka Campaign Visit)
  • Product View
  • Cart Add
  • Purchase Event
  • Search Click through
  • Scenario Step Event

Like Webtrends Analytics, VDM can also be used to capture information about custom events like lead form submissions, newsletter signups and any other interesting event that happens on your website.  In addition to events, Visitor Data Mart also keeps a good amount of Visitor level data like Lifetime Value, Lifetime Page Views, Recency and Frequency information.

  • Basically, Visitor Data Mart gives us a Visitor-centered view of website events over time and across visits.

 Putting it all together – Using VDM to Enable Multi-Touch Attribution

At its base, multi-touch event attribution requires you to have the ability to tie visits and events to the same visitor and to put them in chronological order.  Once you can identify all of the visits that belong to a visitor in the order they occurred AND you understand the source of each visit (direct, campaign, organic search, referral, etc.), you can then apply whichever attribution model you choose.  This is done to give proper credit to those sources (campaigns, organic search, referrals, etc.) that contributed to a conversion (sale, lead submit, newsletter subscription, etc.)

Choosing your attribution model and building the process to apply it to the data may be a discussion for another time and each has much to consider but I will very briefly discuss.  Most simply, an attribution model will assign full or partial credit to the source or source(s) that led to conversion.  Things to consider include amount of time between campaign visit and conversion, whether you want to give higher weights to first and/or last touch, how to divide remaining credit to middle touches, adjust for channel, etc.  Attribution models can be simple or complex and can easily warrant their own discussions. Regardless of which attribution model you choose, you are essentially striving to give proper credit where credit is due.

VDM view of Bob’s Purchase

Let’s look at our example again and see it the way VDM would view it.  Please be aware, we are using VDM as an analysis enabler, not a reporting tool here.


Each of Bob’s Visits is recorded in the Visit table with a Visit ID.  Bob is also recorded in the Visitor table with a Visitor ID, which corresponds to Bob’s Webtrends visitor id from the Webtrends cookie on his browser.  In addition to each Visit, various events are also recorded.  In this case, we see 2 Ad Events and 2 Organic Search Events.  Each event contains the Visitor ID, Visit ID, Timestamp and various additional descriptive attributes about the event.

As we said, on the 5th visit, Bob made a purchase and it was recorded in a Purchase Event, making use of the same tags as would be used for WT Analytics – WT.pn_sku, WT.tx_u, WT.tx_e, etc.

A simple representation of the purchase data is shown here:


At this point, we have identified the relevant events that make up Bob’s history.

Applying Your Attribution Model to the Data

For example purposes, I will illustrate a simple Attribution approach that will allocate 50% of the credit to the last non-direct touch prior to conversion and evenly distribute the remaining 50% to the preceding non-direct visits with a maximum consideration window of 30 days.

This illustration walks us through the basic steps that you could follow to apply an attribution model.

In order to perform these steps, you will likely have to extract the data out of the VDM database and write a program (in SAS for example) or get fancy with Excel to clean and manipulate the data. This section is not depicting a functional aspect of Visitor Data Mart.

Step 1 – Assemble Your Data

In this step, you must build your working dataset.  In this case, we will create a simple data set that combines the purchase with the other events in chronological order, latest first.  The data is pulled from the VDM database using SQL Queries.

Our sample data looks like this at this point:


Step 2 – Discard Rows That Do Not Qualify for Credit

In this step, we will be removing rows that do not qualify to receive credit.  In our example, we will remove any direct visit rows (since our model specifies non-direct visits only) and any rows whose event timestamp falls outside the consideration window.


Step 3 – Apply Your Model’s Rules to the Data

In this step, we will divide up the credit for the sale according to the rules stated in our model.  The “pseudo-logic” for this follows:

For each invoice:
     RowCount = # of Rows getting Credit for that Purchase
     For i=1 to RowCount {
	If i=1   
		If RowCount = 1
			RowCredit = .5
			RowDollars = PurchaseTotal *.5
		RowCredit = .5 / (RowCount-1)
		RowDollars = .5 * PurchaseTotal / (RowCount-1)

After applying this logic to our data, we can see that the most recent qualifying event received 50% credit for the conversion and the other 3 qualifying events each received 16.67% credit for the conversion.  For ROI calculations, we also divided the purchase revenue according to those percentages as well.  The results are shown here:


A New Type of Reporting Required

There is no report in Webtrends that can reflect the post-attribution distribution of credit so you will need to build custom reports and/or dashboards to distribute.  You will also need to educate your customers about “full sale equivalents” to represent the credit given to your various channels.  Obviously we showed an example that contains only one purchase.  This method still works if you have thousands of purchases.  As seen in our example, email received 16.67% of a sale.  It may receive 50% of another sale, 10% of another and on and on and on.  At the end of the month, you add up the values in “Row Credit” to determine how many full sale equivalents the channel accounted for.

Here is a sample attribution report that would be useful for channel managers as well as executives.  This type of reporting would not be possible without applying an attribution model to your data.


Concluding Thoughts

The purpose of this post is to give a brief introduction to VDM and a brief explanation of how it can be used to drive a multi-touch event attribution solution.

Hopefully it gives a little insight into some of the possibilities that VDM enables and as always, I hope it got the gears turning in your head.  This post just scratches the surface of what VDM offers.   Unfortunately there is additional cost to license VDM, but in many cases the cost can easily be justified by the richness of analysis it enables.

I invite you to share your own experiences with solving campaign attribution problems in a Webtrends environment and/or other analysis problems you’ve been able to solve using VDM.

Use URL Search/Replace to Undo Hard-Coded Content Groups

URL Search & Replace – using it to remove hard-coded content groups from your reports.


This post is about a specific use for the Webtrends “URL Search and Replace” functionality.  We wrote about URL S&R in a general way in this post.

You should know about URL S&R because once in a while it’s very helpful.  Irreplaceable, in fact (haha).


Basically, what URL Search/Replace does is this:

The first task the Webtrends processing engine performs is to look at the URL of the hit it’s about to process and to check whether any “Search and Replace” rule matches that URL.  If yes, it makes the specified change then sends the altered hit to be processed as usual.  If no, it sends the original hit, unchanged, to be processed as usual.  That’s it.  The important thing that makes it so useful is that Webtrends does this before absolutely any other processing of that hit.

I don’t know of any other web analytics tool that allows this, but I could be wrong.

Examples of uses:

  • Take a dedicated landing page URL and add the WT.mc_id parameter that you should’ve put there in the first place, but forgot to do, in order to get the traffic to show in campaign reports that depend on seeing WT.mc_id.
  • Change “redir.jsp?” into “” so you can see redirects in pages reports in a less confusing way.
  • Remove the parameter “sessionID=whatever” from all URLs in case you have those kinds of archaic things happening.
  • (if you process server logs rather than SDC data) change an important image into a page file, i.e. change “importantimage.jpg” into “importantimage.html”.

And, the subject of today’s post …

  • Make Webtrends completely ignore any hard-coded content groups (WT.cg_n) and only use the UI-defined content groups you have turned on for that profile.

Why?  If you have hard-coded content groups, they will show up everywhere  – in content group reports and also in content group path reports.  If you want to look at back-and-forth travel among a few select content groups that you defined in the UI, those hard-coded groups mess up everything.  (I know some of you out there have discovered Content Group paths, so this post is for you!)

The answer to the mess is to devote a profile to those select UI-defined content groups and, in that profile, make Webtrends blind to the hard coded ones.

Here’s how:

Since hard-coded content groups contain the text “WT.cg_n=<something>&” you can “remove” them all with this configuration in the S&R interface:

    • Replace from
    • Start of first
    • WT.cg_n=
    • Up to
    • End of next
    • &
    • with
    • <empty field> (i.e. nothin’)

Note that this will leave any content subgroups in place, which is not a big deal – these don’t show in Content Group reports, the Content Group dimension, Content Group paths, or anything else.  If you really want to suppress the subgroups also, use the specification below which relies on the fact that the WT.sys parameter pretty much always follows WT.cg_n.  (You might want to check with a debugger or in an actual log file to be absolutely sure)

    • Replace from
    • Start of first
    • WT.cg_n=
    • Up to
    • Start of next
    • WT.sys=
    • with
    • <empty field>

That’s it.  Once you have made the S&R rule, just turn it on for the selected profile.  Make sure only the important UI-defined content groups are active in that profile.

If you have any other outrageous examples of using URL S&R, let us know!


I realize that Webtrends probably prefers that we only use hard-coded content groups and that they (Webtrends) are trying to lead us in that direction.  It’s true that UI-created content groups use processing time and may not make it easy to architect some functions and reports.  But I think that’s a bit wrong-headed, because the UI-based ones are so much more versatile.  Google Analytics’ recent addition of content groups to their UI is, I think, validation of this.  First of all, UI-defined content groups can be created really fast.  Second, they can be turned on and off as needed, just by assigning/unassigning them to a profile, individually.  Agree?  Disagree?  Feel free to write to us.

Google Analytics’ Content Groups compared to Webtrends’ Content Groups

Google Analytics has added Content Groups! Since I rely heavily on Content Groups in Webtrends, I wanted to see whether GA did it differently.


Let it be known that I really like Webtrends’ Content Groups.  I use them constantly.  The Content Groups report, rather than the Pages report, is my go-to report.  And the Content Group Paths from Entry report is important enough to sacrifice an entire profile slot to.

So I was excited when I found out Google Analytics has implemented its version of content groups a few weeks ago.  I took a look and saw a few differences I’d like to call out.

apples and oranges

Can I assign a page to more than one group?

In Google Analytics, a given page can be in a maximum of five content groups.  That is, a page can be in only one group per grouping and there are five possible groupings.  Within a grouping, Google Analytics will assign a page to the first content group criterion it matches.

In Webtrends, a page can be in any number of content groups.  I can have any number of schemes going at once, in a given profile.

This can make the resulting Content Groups report a bit of a beautiful mess because of the intermingling of schemes, but it’s a minor drawback since I can filter the Content Groups dimension, bookmark the resulting set, and end up with permanently available individual reports for each of my schemes.

(Tip: Put the scheme name into content group names, for example “Checkout, Step 1” and  “Checkout, Step 2,” or “Page Type:  Form” and “Page Type: FAQ”.)

Comment:  I do like that Google Analytics allows me to activate different Content Group schemes one by one.  I don’t like limiting a given page to participation in only five content groups.  I use many content group schemes and, in Google Analytics, I’d have to start proliferating profiles.

Is there Content Group pathing?

In Google Analytics, I can see the previous and the next content group.  I cannot see content group paths (anything longer than one step).  Chaining “nexts” isn’t the same as paths, btw!

In Webtrends, I can see the previous and the next content group only for those content groups for which I have set up a one-step path report.  I can, however, see content group paths — longer paths for individual groups (specially set up) and the all-important (to me) Content Group Paths From Entry.

Comment:  Webtrends’ Content Group Paths from Entry is a mainstay of my analytics practice.  Google Analytics’ pathing, which involves chaining of “nexts” rather than paths that correspond to real visitors’ extended paths (the WT method), is inferior.

Can I assign pages to content groups using page code or tag management?

In Google Analytics, yes.  But each page can be assigned to only one Content Grouping in the tag code.

In Webtrends, yes, and you can hard-code the same page into as many content groups as you want.  One drawback is that hard-coded content groups can’t be eliminated from a profile instantly, which can be done in Google Analytics by switching groupings.  (On the other hand, de-activating hard-coded content groups in a Webtrends profile is fairly easily done with a URL Search & Replace operation.)

Comments:  I put individual pages into several content groups all the time.  Being limited to one just won’t work out.

Can I assign pages to content groups by extracting part of the URL or page title?

In Google Analytics, yes.   It allows either simple matching or regex for turning part of a URL into the name of a content group.  This includes parameters – I can turn the value of a parameter into a content group.  For example, if I have a parameter “color=” then this can be a Grouping and each color will be a content group.   This will in all likelihood use up one of my five groupings.  (In Google Analytics, this was previously sort of available by filtering on the Content – All Pages report, then saving the resulting report as a shortcut.)

In Webtrends, this extraction method sounds familiar because Webtrends does this exact same thing.  But Webtrends doesn’t call it “content groups.”  In Webtrends, this is called “defining a custom dimension”.   In Webtrends, there is no limit to the number of custom dimensions.

Comment:  Being able to see only five tabulated parameters is just not going to work for most of my clients.   I can’t even think of a web site I work with that has only five parameters that need tabulating.

Can I assign pages to content groups based on rules?

In Google Analytics, yes.  But your rules will work with URL parameters only if you haven’t suppressed those parameters in the GA Reporting View Settings.

In Webtrends, yes.  And you can use parameters in rules whether you have suppressed them in report views or not.  Another difference in the details:  Webtrends allows content groups to be based on numeric value logic as well as text, while I’d have to use regex to do that in Google Analytics.

Comment:  Suppressing parameters in report views bring order to the chaotic-looking GA pages reports.   It feels like a big compromise to have to sacrifice content groups at the same time.  But hey, that’s what Excel and APIs are for.

Can I drill down to see metrics for the individual pages in the content groups?

In GA, yes.

In Webtrends, no.  I’d have to create a 2D report of Content Groups over Pages.  Easy enough to create and apply, but still an extra step.

Comment:  I can’t decide whether it’s too big a hassle to create that 2D report in Webtrends.  Um … no.

What metrics can I have?

In Google Analytics, only six metrics are shown:  Page Views, Unique PageViews (equivalent to WT’s Visits), Average Time on Page, Entrances, Bounce Rate, % Exit, and Page Value.  You can also get other measures, sort of, using a Secondary Dimension (but the resulting report needs to be exported and sorted).

In Webtrends, I can apply any of the dozens of out of the box measures as well as any measure I can make up.  In addition, there’s a “Content Group Duration” report that supplies time spent viewing pages in the content group (total and average), and a “Content Groups of Interest” feature that provides a Unique Visitors metric encompassing past visits (i.e. how many unique visitors have ever seen this content group).

Comment:  No comment needed!

Are Content Groups retroactive?

In Google Analytics, no.

In Webtrends, no …. but you do have 90 days of replay analysis available in OnDemand, and infinite re-analysis with OnPremises.

Comment:  Another “no comment needed.”


Final comment:  much as I love many other GA features (which I think will be addressed by the upcoming Webtrends Explore) I really can’t live with GA’s current CG limitations except for uncomplicated sites.  We’ll see what the future brings.

Doubles! Reasons for Discrepancies between Webtrends and Google Analytics Visit Counts

Three reasons why Google Analytics sees more visits than Webtrends does


Google Analytics usually shows more visits than Webtrends does, for the same site, same time.

There are three reasons:

  1. If a visit starts before midnight and finishes after midnight, Google Analytics counts two visits.  Webtrends counts one visit.
  2. If a page view happens in the middle of a visit that has a different campaign (organic search, paid search, or any hit with utm_campaign= in it), Google Analytics counts two visits. In other words, if a visitor who has your site open in one tab, then uses a campaign or search link on another tab to come to the site separately, Google Analytics considers that second action the start of another visit.    The same thing happens if the visitor backs out of the site then returns via another search or campaign.  In all the above, Webtrends counts one visit.  (Note: these assume the visitor is moving around with no gaps of 30 minutes or more.)
  3. If you have WT or GA tags on two or more domains, Google Analytics will start a new visit when you cross domains.  The exception is when the sites are linked and the links have been specially coded to transfer a Google Analytics visitor ID.   Webtrends counts one visit.  The exceptions for Webtrends are Safari (and soon Firefox, and maybe eventually other browsers), or any situation where third party cookies are not accepted.

If you know of any extra wrinkles to this or other reasons for the higher visit count in Google Analytics, let us know!