Cool data visualization: Geographic Heat Maps
We’ve always kinda ignored the geographic output of analytics tools. The reports are either huge lists that are hard to visualize or monolithic colored state maps that don’t show enough detail and are, frankly, misleading.

Lately we’ve made some pretty great state-border-agnostic USA density maps, or heat maps, by feeding WebTrends city reports to a powerful mapping software product called MapViewer by Golden Software. For us, buying the $250 mapping software was a quick decision once our end users started getting insights and discussions from the maps we made with the trial version.

(If you’re wondering, these maps are just color variations of each other (done with the Snagit screencap editor) from the original blue and red MapViewer map shown at the top. They aren’t based on the same data as the state map at the top of the post, which we grabbed from Google Analytics. So don’t get all excited because you think you see big insights in the differences.)
As you’d expect, heat maps based on pure visit counts usually resemble the underlying population distribution and there tend to be few surprises. To get more insights and start more discussions, we’ve tried the following variations:
- Calculate visits per capita (divide localized visits by localized population). The resulting map is always quite different, sometimes nearly opposite, to raw visit counts. The high-intensity areas (per capita) may turn out to be the small towns and rural areas, for example, and there may be a big de-emphasis of the coasts. The larger cities that remain lit-up can be contrasted with the cities that disappear using this alternative calculation, possibly indicating a localized word-of-mouth situation or something else that’s geographically correlated.
- Add climate data to the feed (average temperature, sunshine days) for uncovering interesting relationships with seasons.
- Show maps over time. You can get good time lapse effects with products like FantaMorph. If your content is affected by seasons, the resulting movie can give you a better sense of timing of campaigns in different areas.
- Use an engagement stat other than visits – length of visit, visits per visitor, leads or purchases, conversion rate. Start with the supposition that conversion rate etc should be about the same anywhere. But what if this analysis shows significant hot spots? It would be worthwhile theorizing why. Is the pattern perhaps corresponding to local demographics?
- Do a different map for different referrers – Google vs Yahoo vs AOL vs Comcast Search for example. This could help your geotargeted advertising, especially because AOL and Comcast seem to be geographically different from Google and Yahoo.
- For consumer packaged goods sites, maybe calculate and map the ratio of localized visits to localized purchases if you can get access to that (expensive) kind of purchase data. Look for gaps that may indicate local interest but not enough distribution. Some CPG companies keep good records on their distribution network details, so this would be another interesting place to look for interest-supply gaps.
If you do buy MapViewer, contact us for a lookup file we’ve made that changes WebTrends cities to MapViewer counties (with populations) in Excel. It’s actually the converted counties file that goes into MapViewer. Plus we have basic instructions on how to get MapViewer to produce the maps we show here. It’s not super-simple and the whole process from the WebTrends Top Cities report to a finished map takes maybe 10 minutes (using Excel 2007 because of the size of the lookup file), but it’s simple enough.
P.S. Our lookup file uses the spelling and abbreviations produced by WebTrends GeoTrends prior to version 8.7. We haven’t yet switched over to the latest and greatest GeoTrends version that, we’re told, uses a few different abbreviation conventions. It shouldn’t be hard to find and make the needed corrections.
P.P.S. MapViewer has worldwide maps but we haven’t tried them with WebTrends international city data and don’t know anything about possible lookup table issues.
P.P.P.S. If you attended one of our Engage dashboard sessions where we showed one of these maps, and if you left a business card, it may have been “housekept” by hotel do-gooders during the after-workshop conversations. Please get back in touch.
Tags
cities, density maps, distribution, Geography, map, maps, visualizationPosts that WordPress seems to think are related :)
March 7, 2010 1 Comment
Reminder: What the SDC Tag Builder can do for you
We’ve seen a lot of “How can I track …” questions lately that can be readily answered by one answer: “Use the latest SDC tag, it will do what you want and more.”
Webtrends’ TagBuilder creates your tag for you, ready to be dropped into your site. It has some powerful advanced features that take a lot of page customization work off your plate entirely.
Here is a quick list of many of the possibilities in the Additional Options section of the TagBuilder. If any of these are news to you, go to http://TagBuilder.webtrends.com and take a close look.
- Off-site links automatic tracking – the tag looks for links going somewhere else and records clicks on those links. No need for passing those clicks through a redirect or using ondown/onclick coding on each offsite link. They all get automatically picked up. Woo hoo. Saves the day when your marketing department adds new offsite links without telling you.
- Untaggable download files tracking – Tracks clicks on links that go to file types that cannot hold a tag: .txt, .pdf, .whatever. Tracking links to files that cannot be tagged is one of the downsides of using javascript page tagging, but it’s not a problem with the TagBuilder tag. You get to choose what file types get tracked, of course. This is another lifesaver because those prolific pdf writers at your company don’t need to inform you when they add a new one to a page. (Important note – we purposely used the phrase “links that go to files” because that’s all SDC does, is track clicks on those links. If a link to a PDF exists on somebody else’s site, people will request that PDF without SDC being aware of it. Unlike server logs. Thank you Michael for reminding us.)
- Form submit button clicks – Captures all clicks on form “submit” buttons, four common types of them: (they covers 99% of situations, in my experience): a)
<form>tag withmethod=get, b)<form>tag withmethod=post, c)<input>tag, no enclosing<form>tag , d)<button>tag, no enclosing<form>tag. No need for special coding on form buttons. Tracking form conversion becomes a certainty if you don’t always use thank-you pages. - Anchor link tracking (those # suffixes that have to do with within-page links). Great for understanding things like the popularity of individual questions on a FAQ page.
- Clicks on image map areas – no need for individually altering the code of image maps’ area-by-area hyperlinks.
- Mailto: clicks automatic tracking (hyperlinks using the mailto: protocol). No need to pass these through a redirect or use ondown/onclick code. This is great for those long, constantly changing lists of salespeople on your Contact Us page.
- Javascript: clicks get automatically tracked. Automatically tracks hyperlinks that use the javascript: protocol). No redirects or ondown/onclick coding for each of these hyperlinks. We actually don’t turn this one on very often in the tags we build, because it can result in double-tracking.
- Variations in how cookies are tracked: you can get SDC to generate one cookie for your main domain and another for a subdomain if you want to. Or not. You can tell SDC to use a site-generated cookie instead of the WebTrends cookie, or use a session cookie instead of a persistent cookie. The latter is handy for government sites that don’t allow persistent cookies.
- Extract part of a cookie value and put it into a parameter (that can be the basis of reports). Does a cookie contain the data of the first visit, for example? Grab it and turn it into an analyzable parameter with this option.
- Rename (i.e. map) existing parameter names to WebTrends auto-report parameter names, for example record parameters such as “prodcat=15″ as ”WT.cg_n=15″. Another example would be your on-site search engine’s unchangeable parameter names for ”number of results found” or “keyword” on the results page URL. This is a life saver if you are tagging an existing site that can’t be re-engineered to work with those WebTrends auto-config reports.
- Divert data for a subdomain to a completely different dcsID. This one saves money and keeps dev-site, UAT-site, or staging-site data out of your analysis. It eliminates the need to create filters in WebTrends reporting that filter out your dev or staging site (thereby avoiding dev or staging site hits being applied to the license quota, as long as you don’t analyze the diverted data).
- Multi-send data to WebTrends and also to your Ad Director or Quantcast account – no need for a separate tag for these two products. Hey WebTrends, keep ‘em coming in this department!
All of the above are individually activated in TagBuilder UI. You turn on the ones you want, then the TagBuilder spits out a tag that you just drop into your web site.
The TagBuilder absolutely changed our lives here at Outsider Un-Central. It’s always surprising to see that not everybody knows about it. We hope this post changes a few more lives out there.
Oh, I almost forgot. A nice touch in this tag is that each different event type gets its own little parameter that identifies the event type. It’s a simple parameter, WT.dl, that contains a value corresponding to the event type that’s tracked. For example, the parameter WT.dl=24 appears in every hit that is an offsite link hit, and WT.dl=23 appears on all hits that involve a mailto: click. This little detail makes it easy to build filters for event types. The list of WT.dl values is here.
(Please note that if you are already using the dcsMultiTrack functionality to do any of 1-7, you’ll have to do a little cleanup before taking advantage of the TagBuilder tag. Please call WebTrends for some guidance.)
Tags
Ad Director, automated tracking, domain management, downloads, extract from cookie value, form buttons, image maps, javascript clicks, mailto, offsite links, Quantcast, SDC tag, tag builder, tagbuilderPosts that WordPress seems to think are related :)
February 28, 2010 2 Comments
Cool Custom Dimension: Banish unneeded prefixes from Referring Sites reports
This dimension simplifies Referring Site reports that contain a lot of subdomains, server clusters, or data center identifiers (I’m calling them prefixes) at the beginning of the site name.
For the referrer Yahoo, for example, the Referring Site report can look like this if you are running ads on Yahoo’s network:
All that server cluster information at the beginning of the mail.yahoo.com subdomain makes it hard to see how many visits came from the Yahoo mail site. Here’s the same list with the Yahoo mail referrers highlighted below.
It’s a mess.
What we really would like to see instead of the above is a collapsed list that shows only three parts of the domain name, not all four or five: subdomain.domain.com, or in this case mail.yahoo.com, instead of all the us.mgxxx.mail.yahoo.com craziness. We want all the junk to the left gone, aggregated into a single line item like this:
This can be done with a custom dimension that strips off everything except the rightmost three parts of the site expression. Instead of what’s on the left, above, we want the consolidated version on the right.
Well, it’s quite easy to lop off all that junk. Here are the steps.
- Create a new custom dimension called “Referring Sites, limited to three elements” or whatever you want to call it.
- In the “Based On” screen, choose
“Referring Site (eg:http://www.yahoo.com).” - Click on the button called “Advanced”
- The Based On screen will refresh with more choices. Choose Regular Expression and enter this magnificent regex:

(([^/\.]*\.)?[^/\.]*\.[^\.]*)$

That’s it, save it.
(By the way, while you were in the Advanced version of Custom Dimensions, did you take a look around? That Advanced button gives two ways to show, in your reports, just a portion of a dimension value. Very handy. We’ve discussed the Advanced button before and also used it in the Display Google Organic Ranks post.)
Use this dimension instead of the out-of-the-box Referring Sites dimension whenever you want to limit the number of domain elements to subdomain.domain.com.
And before you get all impressed about what I, rocky, can do with regex … it was entirely Mister Peabody’s work and it took him about 3 minutes.
By the way, this simplified Referring Site dimension is great for evaluating the performance (i.e. the quality of the traffic) of all the Yahoo properties when you are showing ads on their network. Just use the simplified Referring Sites dimension as the primary one, and use something like Content Groups as the secondary one. Or a Scenario Analysis can be the second dimension; use anything that will tell you about key site actions.
Trust me, all Yahoo properties do NOT perform the same, not by a long shot.
Tags
data center ID, domain prefix, referring site, server clusterPosts that WordPress seems to think are related :)
February 10, 2010 2 Comments
You need to read this post about Table Limits
It’s about time we wrote this post. Overdue in fact.
You, WebTrends software user, need to know that this issue exists and you need to monitor it. Starting now.
This is Part 1 of 3 or 4 on Table Limits. This post talks about the internal or Analysis table limits. Subsequent posts will talk about the external table limits and how to change table limits. We’ll also share what we know about future releases of WebTrends and how they might change the Table Limits situation.
What is it? After processing your logs, WebTrends stores data in a database. The database is made up of linked tables. Those tables have size limits. It’s a fact of life, and table size limits are a good thing – they allow the program to work faster.
Why should you care? You’re probably not aware that **IF** you fill up one of these tables the related reports can be wrong. Most times you won’t notice or care. Sometimes you will notice and you will care a LOT, as in the ugly examples below.
Ugly example #1: Your end users contact you wanting to know about traffic to their expensive new microsite. You know you’ve been collecting the data correctly because you triple-checked the tagging before and after launch. So you open the Pages report and WebTrends tells you those pages don’t exist. Those expensive pages got no traffic at all, apparently. Knowing how the CEO’s been obsessed with the new microsite, you call in sick indefinitely.
Ugly example #2: Your marketeers contact you wanting to know about the effects of their latest paid search campaigns … were the visits from those keywords producing leads and purchases? You know you have the data because you spent a long time checking all the destination URLs that the marketeers were about to upload to the SEs and you even clicked on a few of the ads after the campaign went live, to check the marker parameters. Yet WebTrends can’t find a trace of most of those keywords, with or without marker parameters. The whole campaign failed completely, you report. But the marketeers have Google AdWords reports that show many clicks. You hear the sounds of shouting in the distance and see glimmers of torchlight …
What has happened? The WebTrends Pages table (ugly example 1) or Search Phrases table (ugly example 2) filled up at some point and aren’t accepting new entries any more. Your new pages and fresh keywords aren’t being recorded. They’re still in your raw data, but you’ve missed the chance to get them into reports.
Let me try saying it another way. If the Page report’s Analysis table is filled up with URLs, new URLs won’t be recorded any more. Yes, they’ll be counted anonymously in page view counts. But their identity, the URL, gets discarded. You won’t see the new URLs in any list of URLs. Same for search terms, referring domains, whatever.
What do you need to do to avoid all this?
- Check for filled-up tables in your profiles.
- Determine which ones need to be watched, based on the size the tables are at already.
- Set up a schedule for checking them every week or month.
- Watch for tables that are getting close to filling up.
- Expand the table sizes for those that are close, or take other actions such as starting a new profile.
How do you check a profile’s table size situation?
- Edit the profile
- Open the Table Sizes tab – you’ll now see a biggish table that looks like this in 8.0 (looks slightly different in 8.1 and up).

Look at the Analysis columns, identifying reports where:
-
There’s a colored ball-icon under Analysis Status — this means you’ve filled up a table
-or- -
The “Count” is close to the “Limit” in the Analysis Limit and Analysis Count columns. For example, the Limit may be 100,000 and the Count may be 91,000. Since the Count hasn’t reached 100,000 you haven’t yet filled up a table, but you’re pretty close.
What about the “Report” columns?
Those have to do with the displayed tables, the ones WebTrends shows you. We’ll talk about that more in the next post.
How do you increase table sizes?
There’s an “edit” icon over at the right for some of the tables. Not all of them. We’ll talk about it more in another post.
This seems cumbersome. Why doesn’t the program take care of all this?
Goooood question, so glad you asked.
WebTrends can’t have unlimited tables. It just can’t. The limits are meant to keep processing and retrieval speedy, so they’re a good idea. Part of your job, as the human expert, is to evaluate which tables are important enough that they need to be made bigger.
Having said that from WebTrends’ perspective, there are still a few things to rant about, oh definitely.
-
WebTrends utterly fails to tell the user how important table limits are. It’s not in the documentation (we can’t find it) and it’s not in the UI. I’m not sure it’s in the training either.
-
This means that every user will find out the hard way, except maybe those who use consultants or who read The WebTrends Outsider. Having to be burned first is an irresponsible way for WebTrends to manage this.
-
It’s a credibility killer in the eyes of the end user.
- A search in the forum on “table limits” produces five pages of mentions going back to 2004 and none of those mentions are happy. It’s not like WebTrends doesn’t know it’s a problem.
- At the very least, WebTrends should have the Alerts function cover this. That’s what computers are for. And the Alerts framework is already in place, hey!
- Two or three years ago WebTrends removed the warnings that appeared in the headings of reports when table limits had been exceeded for that report. WebTrends replaced that very useful warning with … nothing. Rumor has it that the warning was removed because the tech support people were tired of dealing with calls about it.
End of rant.
Tags
Posts that WordPress seems to think are related :)
January 31, 2010 9 Comments
Cool custom dimension: IP addresses
First, here’s the obligatory gripe. How is it that WebTrends doesn’t offer IP address as a dimension??? What’s up with that?
Second, here’s the obligatory Outsider solution. Make your own IP address dimension, of course! It’s better than the Visitors report because this version will combine into one row all the visitors that have an IP address in common.
Instead of this:
You can have this:
This custom dimension works great if:
- you are sessionizing based on the SDC cookie(s). Your Visitors report will show people as something like “63.15.208.255-7203986748993″ if they have a cookie and “72.181.194.189_Mozilla/5.0….” if they don’t. Note that these visitor identifiers are the IP address, followed by a hyphen or an underscore, followed by other stuff. That consistency – the IP address coming first – is the key to an easy extraction.
- you are sessioning based on IP/User Agent. Same thing happens there, the Visitors show as IP_stuff.
If you are sessionizing based on a non-SDC cookie, you’ll have to check your Visitors report to see whether the cookie values contain the IP address, and adapt the method shown here.
Steps to create this custom dimension:
1. Create a custom dimension within the Custom Reports area. Name it.
I call mine “IP address from cookie” because I’m usually working with reports that are sessionizing based on cookie. If your sessionizing is based on IP/UA, then it would be correct to call it “IP address.” Why does the distinction matter? If you’re pulling the IP from the cookie, the IP address in the cookie will be the IP address of the user at the time the cookie was originally set, i.e. their first hit of their first visit. If they have a laptop and are visiting from a different address, WebTrends will still just have the IP that’s in the cookie. Unless, of course, for this purpose you create a profile that sessionizes on IP/UA just for the purpose of using this cool custom dimension.
2. In the next screen, base the dimension on Visitor then click on the Advanced button. The screen will refresh with all the Advanced options. What you want to do is extract the cookie value from the Visitor info. So, …
3. Click the Regular Expression choice, and in the regex box enter this:
^([^-_]*)
That’s hat-parenthesis-bracket-hat-hyphen-underscore-bracket-star-parenthesis. It’s a cute succinct regex using parentheses to denote an extraction of everything up to the first hyphen or underscore character.
4. Save.
5. Create a custom report with this dimension and whatever measures you fancy, such as visits and page views.
I always turn on “use interval data” for both visits and pageviews measures because I want to look for spikes in trend graphs in the final report.
Thank you to “SunnyG”on the WT user forum for giving me the idea for this post.
Tags
Posts that WordPress seems to think are related :)
January 21, 2010 6 Comments





