How to Track Marketing Campaigns With Coremetrics

Coremetrics lets you track marketing campaigns via a 2 step process:

1) append "cm_mmc” link tags to URLs (similar to the “utm” tags in Google Analytcs).

2) sort these marketing programs into Marketing Channels (the highest level of traffic categorization) via rules


This post will give my thoughts on the best way to track marketing campaigns, in terms of both technical considerations and long term program maintenance.



These tags get appended to the end of links, using the format cm_mmc=A-_-B-_-C-_-D.  As shown, there are four slots available.  Coremetrics names these slots Vendor, Category, Placement, and Item, though you can disregard this and just think of them as slots A through D.

When a user clicks on a marketing link containing these tags, the information will get stored and associated with that user's ID.  This means all the user’s activity gets associated to the values you placed in the tag, and you can therefore attribute visits, revenue, and other metrics to that specific effort.  You can look up the tag and its associated information by navigating to Reports > Marketing > Marketing Programs (see screenshot).


coremetrics marketing programs


How to Create CM_MMC Tags

Notice in the above screenshot that there is a hierarchy in the "By Vendor" reports, so you should think about organizing your tags in a hierarchy that will make sense when you retrieve the data.  This typically means going from largest to smallest.  The "Full List" view is a flat list rather than a hierarchy, but this gets extremely unwieldy once you have more than just a few different marketing programs.

This is a sample link containing Coremetrics email tags:

The more detailed you get in your tags, the more information you can use to differentiate between different campaigns, lists, banners, and so on.  I would recommend something like the following:

syntax: cm_mmc=email-_-$date-emailname$-_-$emailprovidersendID$-_-$bannerlocation$
example: cm_mmc=email-_-20120920-fallsale-_-9876-_-hero-image

Paid Search
syntax: cm_mmc=cpc-_-$search engine$-_-$adgroup$-_-$keyword$
example: cm_mmc=cpc-_-google-_-top-products-_-new%20shoes

syntax: cm_mmc=affiliate-_-$affiliate network$-_-$affiliate URL$-_-$affiliate campaign name$


You can add these parameters manually or download this handy URL builder tool from Coremetrics (make sure macros are enabled): Coremetrics Link Generator Tool


Tagging Tips

  • All parameter strings must be preceded by cm_mmc=
  • The parameter should be appended to the end of the URL, somewhere after a “?” mark.
  • Sometimes there will be multiple parameters, like a cm_mmc= parameter, a sourceid= parameter, etc. In that case, the order of the parameters doesn’t matter as long as the link is well-formed.  The first parameter should follow a “?” mark, and each subsequent parameter should be separated by an “&” mark.
  • All values within the parameter must be separated by -_-
  • All values must be used.  If you don’t want to track 4 levels of information, use “NULL” or “NA”. Do not leave any values blank.
  • Special characters have to be represented by hex codes, so it’s often easiest to just avoid them.  If you must use a space, the correct hex code is “%20” (so if you wanted to write Head and Toes you’d write Head%20and%20Toes)
  • Choose a naming pattern for your links and remain consistent to allow for historic analyses
  • Choose terms and descriptions that are easily understood so you can remember what you tracked
  • These parameters are hierarchical -- how you set up the 4 values will result in how your data appears within the Marketing Reports as you drill down to view performance of marketing campaigns.


By default and without any tagging required, Coremetrics will identify and assign direct traffic, referring site traffic, and natural search traffic into their respective channels.   However, anything that gets tagged with cm_mmc tags needs to be actively assigned a channel.

You do this by navigating to Manage > Marketing Channels:

coremetrics marketing channel manager

Clicking on this brings up the Channel Editor window, which lets you assign vendor values to a Marketing Channel:

channel manager

Once you assign each of your vendors a marketing channel, you can view it in the Marketing Channels report at Reports > Marketing > Marketing Channels.  The Marketing Channels report is a great way to get a birds eye view of all of your marketing channels -- paid, organic, email, direct, etc -- in one place.

You may have noticed that I put the Marketing Channel name in the first slot (the "vendor" slot) in my examples above. Strictly, this isn't necessary as you could be more granular here and roll up your 1st slot values together into a marketing channel.   For example, instead of using up the first slot to identify email, you could instead put your list name into that slot, and then categorize the lists into Marketing Channels from within the tool.  This method obviously gives you an extra slot to play around with, but comes at a cost in terms of overhead and maintenance.  Every time you change your vendor name, you also need to assign the new value in the tool.  If instead you keep it simple and use a fixed value for the 1st slot name, you can set up your marketing channel rules once and then leave it alone.  You will have to decide what makes sense for your organization.

One other thing to keep in mind is that each "vendor" can only have one marketing channel.  So, you may run into problems if your social team uses the term "Facebook" in the first slot to track their posts, and then your paid search team uses "Facebook" in the first slot as they're running paid ads in Facebook's right rail.  In that scenario, you'll be unable to properly classify your marketing program since you can only choose one channel for "Facebook".   Again this is a reason I generally prefer using the first slot to identify the marketing medium rather than a particular vendor name.


How do you tag your marketing efforts?  Is it hard or easy to keep your Marketing Channels rules up to date? 

34 thoughts on “How to Track Marketing Campaigns With Coremetrics”

  1. OK Ana question here (kind of 3 questions in one): Once you have the final marketing campaign report output, What metric should I be looking at to track clicks over those mmc links I created?, I am asking this because when you see the report options,in the list of metrics, you can see one specific metric called "clicks (MMC loads), is this the right metric to see amount of clicks for a MMC links? or what is this metric used for? and what metric should i use to find out amount of click over mmc links?.


  2. Hey Oscar, thanks for the question. I actually never used the Clicks metric before and had to look it up! I found this definition in the glossary: "Coremetrics defines Clicks (MMC Loads) as number of clicks at any point in any session on this MMC item. "

    What this means is that if a user clicks on your tagged email and lands on your site, and then within 30 mins clicks on the email and returns again, it will be 2 Clicks credited to that mmc link (and 1 Session).

    In my opinion you should just disregard the Clicks metric and use Sessions instead, since it's a more straightforward measure of traffic. Also, other metrics like Sales/Session and Conversion Rate are based on a Session and not Click basis. You can compare the Clicks metric to the Session metric if you want to better understand whether users keep returning from the same link, but I wouldn't use it as a primary metric. Hope that helps!

    • Hey Chris, Coremetrics doesn't actually store the cm_mmc marketing tag values in a cookie. The value just gets sent to Coremetrics servers on the page view where it appears, and it's stored and then associated with the user ID (which is tracked in a cookie).

  3. Hi Ana. Hoping you can help me with an implementation question. We have a site with many specific, targeted promotions running on the home page. We were instructed by IBM to use Site Promotions for these. The issue we are experiencing is that all sales are tracking to the first promotion clicked on. For example, click on a banner on the home page and all of the sales during that users session get attributed to that banner. Let’s say a user clicks on a banner for pens. Pens are then carted ($30). Then the user maybe does a keyword search for a product not even offered by the same vendor such as printers. If a printer is carted ($1,000), the dollars of that get added to the site promotion for pens so now that promo shows $1,030. In addition, if a second site promotion link is clicked and additional items carted, the counts and sales get added to both promotions.

    Did we go about this tagging wrong? There has got to be a way to track sales of items directly to a specific promotion and not have all session sales tracked to a single promotion. I am wondering if we should have used cm_mmc.

    • Hi Steve, you tagged this right, and the outcome would have been the same if you used real estate tagging. All content tagging has this type of "content attribution" issue. The problem is that when a user clicks on a banner (or does a search, or uses navigation, or anything else you're tracking on your site), the purchase at the end gets attributed to all of those actions equally. Obviously this can lead to strange or unwelcome data as in the example you gave, but there is no way for the tracking to know what clicks affected the purchase.

      What I would recommend doing in this case is passing in the product SKU into your site promotions tracking. So the click might fire something like cm_sp=homepage-_-banner-_-SKU12345. When the purchase gets made, you are already passing the SKU into the order receipt tag, so you could then do some matching on user ID and SKU to tie the actual item to the banner. Most likely this needs to be done in a data warehouse where you have all the data available to make this kind of custom query. Does that make sense?

      • Thanks you so much for the advice. It does make sense, if our promos had only a single item. We may have a section called "Clearance Items" which could have 100 products. My other thought was to maintain state and pass in the zone/campaign/promo as attributes but that could lead to crazy explore report needs. We have over 40,000 products. cm_mmc doesn't help us at all?

        Just to help you understand how problematic this is for us, in my given example above, let's say the maker of those pens (Pentel) had paid us $50K for placement of that banner. We can't possibly go back to them and report sales of $1,030 when in reality it is only $30.

      • Not sure if you meant cm_mmc or cm_re, but either way neither of these will help you here -- cm_mmc is for tracking off-site marketing programs like email, and cm_re (real estate) tagging ties revenue to banner clicks just like cm_sp (site promotions) tagging.

        To do what you're describing there's no way of getting around needing some way to tie the promo banner contents to the product purchase at the end. You may need to be creative here if you're grouping together products into categories like "clearance items" -- perhaps instead of a SKU for each banner you can track a sale ID, then also match each SKU to a sale ID at checkout (either in the code or later on via the CDF or an external database), and then match on sale IDs.

        Another idea is to create a segment for everyone who purchased the product you're interested in (e.g. a Pentel pen). Then, for that segment, identify how many of them clicked on the banner during the time period you're interested in, and say that those purchases can be attributed to the banner click. This would be a rougher estimate but could be useful if you want to do a quick one off without going to an external data warehouse.

  4. I'm trying to validate that Coremetrics assigned an order to the proper marketing channel. How do I look an order up in Coremetrics to see which marketing channel it's assigned to?

    • The only way to do this is in Explore. You can do this with a Segment or Flat List report. For this example let's do a Flat List report. Do the following steps:
      1) For your Display Columns choose 1) Merchandising/Products > Order ID and 2) Marketing > Marketing Channel.
      2) Choose at least one metric, say, Orders
      3) Click the Dates and Data Set tab and choose your datse (this will be a One-Time report since it's in the past). You can choose sampled or full data set here - since you're just looking for a single Order ID you'll probably need to choose the full data set to ensure it gets picked up.
      4) Click the Filter tab, add a New filter and choose Order ID = XYZ

      From there you should be able to run the report. Good luck - let me know how it goes!

  5. Hey Ana
    Is there an alternate way to track a campaign without putting the mmc parameters in the click through URL? I.e. there are links to our site that are posted on external sites, we are not able to get those sites to add/update the cm_mmc parameter accurately. I am wondering is there a custom event that we can send to Coremetrics when the user lands on our page to indicate that this traffic is from a specific campaign
    Exact Scenario: I am working on siteA which is linked to a number of other external sites such as SiteB, siteC, siteD etc. I wanna know form which site a purchase is being made. My problem starts when appending MMC parameters is not possible for the siteB,C,D. Please suggest a way around such a scenario.

    • Hey John,
      You can see which site traffic comes from by looking for Referring URLs in the Coremetrics reports. Is that not sufficient, or is there a reason it needs to be recorded as a campaign? If so you could put in some custom javascript that looks for the referring URL in the HTTP request header, and then converts that into the cm_mmc= form and appends it to the end of the link.
      If I'm not totally understanding the question, please shoot me an email.

  6. My company includes CM tagging in our emails to measure sales conversions. My predecessor created the naming convention for the tagging. SET @UnsubscribePID = "TPC1003"

    SET @TagCampaign = "Books Spotlight on Books"
    SET @TagEmailCategory = "EM-SALES"
    SET @TagEmailDescr = "email"
    SET @TagDept = "BOOKS"
    SET @TagCampaign = Concat(@TagCampaign, ' ', xtmonth, ' ', xtyear)

    SET @CoreMetricsTag = Replace(Concat('cm_mmc=', @TagCampaign,'-_-', @TagEmailCategory,'-_-', @TagEmailDescr,'-_-', @TagDept),' ', '%20')
    When I ran a marketing report 1) some of the campaigns didn't show up and 2)there were very few sales conversions. But the product marketing team reported sales for the month. Do you have any suggestions for this issue?

    • Hi Carolyn,
      This basically looks correct but I'm not familiar with the system you're using to create your cm_mmc tags. Do you know why it's setting @TagCampaign twice?

      In any case, there's one of two possibilities:

      1) Technical issue with the tags resulting in understated clicks. Coremetrics doesn't provide a good way to test this -- you basically just need to click on the links and then check the reports (either the test reports or the actual reports) and make sure that your clicks are being picked up.

      2) You aren't actually getting clicks on these campaigns. That would also account for campaigns not showing up and few sales conversions. To check for this you need to try comparing to a known baseline. You mentioned the product marketing team reported sales, but were all these sales necessarily from the email campaigns?

  7. Hi Ana,

    What's the process for adding tracking to an email link so that it tracks in both GA and Coremetrics? We're in a transition phase at the moment so currently using both and i'm just wondering if it's a case of appending both the UTM parameters and the cm_mmc= parameters to the link?


  8. Hello, if you mistyped a value for one of the 4 slots, but the data is showing up in Coremetrics just not as you'd like, can you correct the typo in Coremetrics? Thanks, Kevin

      • Hi Ana, Similar question if you mistyped a value for one of the 4 slots and its not showing up in coremetrics, Is there any way to see it? or is there any way to get them back into coremetrics?

  9. Hi

    Great article. Do you know if there is a way to track if cm_mmc tags are being fired correctly and registering under correct marketing bucket. We are currently seeing issues where our paid search url tagged with cm_mmc parameter are getting registered under direct load or natural search. Any help on how can I debug this would be great.

    Madhvee jain

    • Thanks for the question and sorry for the delay in response. Unfortunately Coremetrics doesn't provide a good way to debug marketing tags -- you can only click on a link and see what it registers as in the reports. With that said, the most common reasons for this kind of issue are because either the cm_mmc parameter uses some special characters that break the URL or because there's a redirect on the URL you're sending them to. One thing that may help is by using Explore to make a segment on this mis-registered traffic and seeing what their "destination URL" is. This will include the full URL and all cm_mmc tags on the landing page so you can confirm that there's no redirect. Please let me know if this helps. If you want to respond with the URL and cm_mmc tag I'd also be happy to take a look and let you know if I see anything odd.

  10. Hi,
    What are the alternatives to using a site promotion tag?
    From an SEO perspective, the additional tracking is not ideal. By adding such long parameters onto URLs can make Google think they are paid links - Google is likely to ignore or give these links less quality, in turn harming the visibility of the brand sites in search results. So ideally, we would like the parameters removed.
    Please let me know

    • Hi Tabish, this article is about marketing tags not site promotion tags. However to answer your question, if you don't want to add a site promotion tag at the end of the URL, you can use a "manual" site promotions tag in the source code instead. It will produce the same result as a site promotion tag and the link syntax would be something like this:

      a href="" manual_cm_sp="Homepage-_-Hero-_-/product1234/"

    • Sorry, I'm actually not sure if this will work or not. It's probably best to either test a fake URL to see what happens or ask Coremetrics customer support directly.

  11. Hi Ana, nice post.
    Currently we have GA tracking codes in referring sites. Do you if there is a way to use GA codes in Coremetrics instead of adding CM codes in those links?
    Thank you!

    • As far as I know you have to use the Coremetrics "cm_mmc" tags and there's no way to make it recognize GA tags instead. However, I haven't used Coremetrics in a couple years now so it's possible there's been some change since then. Sorry I can't give more up to date guidance -- reaching out to their tech support is probably your best bet.

Comments are closed.