in Web Analytics

utm_term and MSN AdCenter: Getting Google Analytics to Measure MSN Paid Search

As you may recall, I wrote a while ago about how you have to setup the utm_term parameter in Google Analytics to properly measure your paid search campaigns on Yahoo. I was talking with Justin Cutroni (blogger and of the Google Analytics eBook fame) at eMetrics and apparently Google Analytics used to just grab the search query from referring data, but alas that has changed. This change also means that if you’re running paid search ads through MSN AdCenter, then you need to be vigilant with your destination url tagging or else run the risk of disappearing numbers. Here’s the scoop.

Why do I get a lot of (not set) and lost data in Google Analytics for MSN?

For any marketing tactic besides AdWords, Google Analytics relies on destination URLs (where you send your visitors) to decode the visit. There are a variety of parameters (parts of the destination URL) that I detailed in my first post about utm_term.

In the case of MSN paid search measurement with Google Analytics, you must use the utm_term parameter to define the keyword that brought the visitors to your site. Ah, but here’s the sticky part. If you do this manually, it’s going to take forever. You can concatenate things in Excel, but then you have to tag every single keyword. As with Yahoo paid search, we need a more elegant solution.

Clearly, you can’t use Yahoo’s dynamic variable, so you have to choose among MSN’s. Here’s the list of possibilities (and the original source, thank Craig).

MSN AdCenter Dynamic Variables

Of this list, the one you want is {QueryString}. This will return a value of the actual search query the user entered, not just what you purchased (which is how it will be reported for AdWords and Yahoo search). The challenge here is that data in the keyword report won’t be aggregated under one purchased keyword. The benefit is that you can mine these data to figure out ways to optimize your paid search campaigns.

If you’re playing along at home, you’ll want to define the parameter as utm_term={QueryString} for your MSN AdCenter destination URLs only. A complete URL might look something like this (I put in line breaks between parameters to make it readable on the blog):


The dynamic variable QueryString will automatically populate with the search query.

Now, if you are still see some (not set) pop up in your keywords report, I find the easiest way to zero in on the offending ads is to click on (not set) in your MSN paid keywords report and segment it by Ad Content, like this:

Google analytics segment by ad content

This shows you the titles of the ads that were improperly tagged, which makes identification easier. If that leaves you for a loss, try segmenting by landing page.

On a tangentially related topic, MSN AdCenter actually does not offer full conversion tagging for you to aggregate data into their reporting interface. I say “full” because you can track conversions with AdCenter, but not with a dynamic value. Clearly, this is pointless for an ecommerce site. I put the question to Microsoft’s Charles Thrasher. He basically points to Project Gatineau, MSN’s upcoming competitor to Google Analytics, as the solution to this issue. Shouldn’t this be standard? Come on MSN, pony up the code.

Thanks to Greg and Matt for their help this this.

Write a Comment



  1. That’s a good informative post, people often ‘forget’ to tag their destination URLs, and since you have to tailor them to each network it can get tricky… good thinking!

    MSN are realy working to try and improve the Query String thingy…

  2. Hey Eloi,

    Yes, link tagging is one of the many ways you can pollute your web analytics data. It’s a “garbage in, garbage out” world, so you have to be careful.

    I do hope MSN offers more tagging options, but I doubt it’s coming any time soon.


  3. {QueryString} did not work for me. Google analytics just shows {querystring} as the keyword phrase. I replaced it with {keyword} in MSN adcenter.

  4. Now what do you think about tagging your URLs now Google’s got an “auto2tagging” feature?…
    I found this has messed up a lot of analytics – auto-taggin is autmatically on, but you don’t “see” the things they attach at the end of your destination URL… when I turn it off it seems to stop data from going into analytics, so I tend to leave it on and remove all ?parametres… What do you think ?

  5. Don–did {keyword} work for you?

    Eloi–I’m not sure what you mean by “auto2tagging”. I searched for it, but didn’t get any results.

  6. Does the tagging have to be capitailiased. Eg.{QueryString} of can it be {querystring}

  7. I’m not sure, Bobby. You may want to check out PPC Hero. They have an article on the topic too.

  8. adCenter now recognizes {keyword} as the string to relay the keyword triggered by the users search query – not the actual search phrase. This allows you to tie your traffic back to your campaign more easily for decision making.

    Additionally, Campaignsync performs this type of tagging for adCenter and Google Analytics and it’s free. Save yourself some time & try it out.

  9. What’s up, yes this paragraph is actually good and I have learned lot of things from it concerning blogging. thanks.

  10. Hey! This is kind of off topic but I need some
    advice from an established blog. Is it hard to set
    up your own blog? I’m not very techincal but I can figure things out
    pretty fast. I’m thinking about creating my own but I’m not sure where
    to start. Do you have any points or suggestions? Cheers

  11. whoah this blog is magnificent i like studying your
    posts. Stay up the great work! You know, many people are searching around for this info, you could
    aid them greatly.

  12. Thanks for the detailed write up on this stuff. I’m having the same issue as Don, utm_term={QueryString} just gets reported and aggregated in analytics as “{QueryString}”. Everything else works for me though, if anyone figures that out, I’d love to know how.