{"id":10,"date":"2011-09-29T03:13:34","date_gmt":"2011-09-29T03:13:34","guid":{"rendered":"http:\/\/digitaldatatactics.com\/?p=10"},"modified":"2015-08-22T16:06:51","modified_gmt":"2015-08-22T16:06:51","slug":"campaigntips","status":"publish","type":"post","link":"https:\/\/www.digitaldatatactics.com\/index.php\/2011\/09\/29\/campaigntips\/","title":{"rendered":"Campaign Tracking Tips and Tricks for Omniture SiteCatalyst"},"content":{"rendered":"<p>The standard Omniture Campaign reporting offering, based solely on a query string\/tracking code pair, is pretty solid: campaign reports and all the possible classifications, paid\/natural search detection and reporting, and marketing channel reporting, managed from right there in the SiteCatalyst admin console. But over time we\u2019ve found some tips and tricks that can maximize the value of your campaign tracking efforts.<\/p>\n<p>All of these tips rely on granular but intuitive tracking codes, which your s_code grabs automatically out of a query string parameter. If you do not have a well-founded system for setting your tracking codes, then that should be your focus before expanding your campaign reports. Assuming you have your marketing efforts well identified, here are some ideas to implement:<\/p>\n<h2>TIP #1: CUSTOM CAMPAIGN CLICK-THROUGHS<\/h2>\n<p>Out of the box, SiteCatalyst has the \u201cclick-throughs\u201d metric in any campaign report, which is essentially the same as \u201cinstances\u201d in any other conversion report. The problem is that you cannot pull your campaign click-throughs as a metric into non-campaign reports- for instance, into a campaign landing pages report, or a breakdown for any other eVar that lasts between sessions or is set on a campaign landing page. A common need is to see Campaign Click-throughs in a conversion funnel:<br \/>\n<a href=\"http:\/\/digitaldatatactics.com\/wp\/wp-content\/uploads\/2015\/08\/campaignClick-throughs.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-11\" src=\"http:\/\/digitaldatatactics.com\/wp\/wp-content\/uploads\/2015\/08\/campaignClick-throughs-300x121.jpg\" alt=\"campaignClick-throughs\" width=\"300\" height=\"121\" srcset=\"https:\/\/www.digitaldatatactics.com\/wp\/wp-content\/uploads\/2015\/08\/campaignClick-throughs-300x121.jpg 300w, https:\/\/www.digitaldatatactics.com\/wp\/wp-content\/uploads\/2015\/08\/campaignClick-throughs.jpg 586w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>For this reason, many of my past clients have implemented a \u201ccustom\u201d campaign clickthrough event, which they then have full control over.<\/p>\n<p>The code for this is simple. I recommend using the Append List plugin (s.apl) to ensure the custom event does not overwrite any other events on the page. In this example, event3 has been set aside and named \u201cCustom Campaign Click-throughs\u201d, and the append list plugin code is included in the plugins section:<\/p>\n<p>s.campaign=s.getQueryParam(&#8216;cid&#8217;);<br \/>\nif(s.campaign){s.events=s.apl(s.events,&#8217;event3&#8242;,&#8217;,&#8217;,1)};<\/p>\n<h2>TIP #2: GRANULAR, CLASSIFIED TRACKING CODES WITH A MARKETING CHANNEL PREFIX<\/h2>\n<p>This isn\u2019t so much a tip as it is a best practice. While generally the recommendation has always been to just have a granular tracking code and all information could be uploaded afterwards using SAINT classifications, you might save yourself a lot of headache by including a marketing channel identifier in each tracking code. SAINT is a wonderful tool, but classifications cannot be used to define the (fantastic) Marketing Channel reports. So instead of relying solely on classifications to specify that tracking code \u201c2364FS\u201d was an email campaign, turn the tracking code into \u201cem-2364FS\u201d. Not only does this make it easy to filter your tracking codes report, but you can also then set up a Marketing Channel processing rule that specifies that any tracking code that beings with \u201cem\u201d should go into the \u201cEmail Campaign\u201d channel:<\/p>\n<p><a href=\"http:\/\/digitaldatatactics.com\/wp\/wp-content\/uploads\/2015\/08\/marketingChannel.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-12\" src=\"http:\/\/digitaldatatactics.com\/wp\/wp-content\/uploads\/2015\/08\/marketingChannel-300x148.jpg\" alt=\"marketingChannel\" width=\"300\" height=\"148\" srcset=\"https:\/\/www.digitaldatatactics.com\/wp\/wp-content\/uploads\/2015\/08\/marketingChannel-300x148.jpg 300w, https:\/\/www.digitaldatatactics.com\/wp\/wp-content\/uploads\/2015\/08\/marketingChannel.jpg 563w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>What? You haven\u2019t set up your Marketing Channel reports? Well, get on it! It doesn\u2019t take long, this blog post will wait.<\/p>\n<h2>TIP #3: CAMPAIGN LANDING PAGE PATHING<\/h2>\n<p>I\u2019ll admit, of all the tips listed here, this is my favorite. The standard pathing reports are wonderful but not a lot of help for marketers. Campaign Landing Page Pathing uses a pathing prop to show how campaigns play into paths that users take through the site. Any time the s.campaign variable is set, it is appended to the pageName and put into a prop that has pathing enabled (\u201cPromo Landing Page: em1435\u201d). For all other pages, just the pageName is set:<\/p>\n<pre>if(s.campaign){s.prop11=s.pageName+\": \"+s.campaign}\r\n else{s.prop11=s.pageName};<\/pre>\n<p>As a freestanding page views report, I\u2019ll admit the data is nearly useless- a jumble of campaigns and pageNames. BUT, once viewed in a pathing report, you can now see for each campaign and landing page, what next steps a user took. You might see paths that look like this:<\/p>\n<p><em>Landing Page A: em12543 &gt; Page B &gt; Page C &gt; Exit<\/em><\/p>\n<p>You can now create Fall-Out reports based on particular campaigns. You could also see a next page flow report like this, showing the full range of possible paths users are taking from a campaign landing page:<\/p>\n<p><a href=\"http:\/\/digitaldatatactics.com\/wp\/wp-content\/uploads\/2015\/08\/campaignNextFlow.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-13\" src=\"http:\/\/digitaldatatactics.com\/wp\/wp-content\/uploads\/2015\/08\/campaignNextFlow-300x189.jpg\" alt=\"campaignNextFlow\" width=\"300\" height=\"189\" srcset=\"https:\/\/www.digitaldatatactics.com\/wp\/wp-content\/uploads\/2015\/08\/campaignNextFlow-300x189.jpg 300w, https:\/\/www.digitaldatatactics.com\/wp\/wp-content\/uploads\/2015\/08\/campaignNextFlow.jpg 563w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Is your campaign taking your users somewhere you didn\u2019t expect? Is that something you can capitalize on?<\/p>\n<p>You can hit two birds with one stone and use the same logic to also set a \u201cCampaign Landing Page\u201d eVar, if you want to see how individual landing pages contribute to conversion (see the final code of this post for an example).<\/p>\n<p>Please note, this kind of trick becomes less necessary in SiteCatalyst 15 because you can now segment your pathing reports based on campaigns, but it would still be useful if you wanted to compare campaigns to each other quickly without setting up a segment for each.<\/p>\n<h2>TIP #4: CAMPAIGN CROSS-VISIT PARTICIPATION<\/h2>\n<p>Campaign Cross-visit Participation, also known as \u201ccampaign stacking\u201d, has been well covered elsewhere on the web, so I won\u2019t go into too much detail, but no campaign \u201ctips\u201d post would be complete without it. The Marketing Channel reports can show you First and Last Touch, but not much in between. Using the crossVisitParticipation plugin, you can see all of the different campaigns a certain user touched before accomplishing a certain event. Using this plugin for my tracking codes, I could do a report filter for one specific tracking code and see how other tracking codes contributed to it leading to a conversion:<\/p>\n<p><a href=\"http:\/\/digitaldatatactics.com\/wp\/wp-content\/uploads\/2015\/08\/CVPcampaign.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-14\" src=\"http:\/\/digitaldatatactics.com\/wp\/wp-content\/uploads\/2015\/08\/CVPcampaign-300x77.jpg\" alt=\"CVPcampaign\" width=\"366\" height=\"94\" srcset=\"https:\/\/www.digitaldatatactics.com\/wp\/wp-content\/uploads\/2015\/08\/CVPcampaign-300x77.jpg 300w, https:\/\/www.digitaldatatactics.com\/wp\/wp-content\/uploads\/2015\/08\/CVPcampaign.jpg 607w\" sizes=\"(max-width: 366px) 100vw, 366px\" \/><\/a><\/p>\n<p>The code looks like this:<\/p>\n<pre>s.eVar26=s.crossVisitParticipation(s.campaign,'s_cpmcvp','90','5','&gt;','')<\/pre>\n<p>While this plugin is wonderful for campaigns, the possible uses of it are limitless- any time you want to see the \u201cpath\u201d a user takes through the values of any of your variables, and how that path affects conversion.<\/p>\n<p>ALTOGETHER NOW<\/p>\n<p>If I were to use all of the above tips and standard best practices, my final code might look something like this:<\/p>\n<pre>\/* Campaign tracking *\/\r\n if (s.getQueryParam('cid'))\r\n {s.campaign=s.getQueryParam('cid'); \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/capture campaign ID\r\n s.events=s.apl(s.events,'event7',',',1) \u00a0\u00a0; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/custom Campaign Clickthroughs\r\n s.eVar26=s.crossVisitParticipation(s.campaign,'s_cpmcvp','90','5','&gt;','');  \/\/campaign \"stacking\"\r\n s.eVar24=s.prop11=s.pageName+\" : \"+s.campaign ; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/campaign landing page eVar and pathing prop\r\n s.eVar25=s.campaign=s.getValOnce(s.campaign, 'cid_cookie', 0); \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/campaign eVar with original allocation\r\n }else{s.prop11=s.pageName} \u00a0; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/campaign landing page pathing<\/pre>\n<p>The final result is a set of marketing reports that paint a fuller picture of campaign behavior on your site.<\/p>\n<p>Code for the Append List and GetValOnceplugin can be found in the Help section of SiteCatalyst, under Product Documentation &gt; Implementation &gt; Plugins. Contact your friendly implementation consultant if you need information about implementing Cross-Visit Participation.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The standard Omniture Campaign reporting offering, based solely on a query string\/tracking code pair, is pretty solid: campaign reports and all the possible classifications, paid\/natural search detection and reporting, and marketing channel reporting, managed from right there in the SiteCatalyst admin console. But over time we\u2019ve found some tips and tricks that can maximize the &#8230; <a title=\"Campaign Tracking Tips and Tricks for Omniture SiteCatalyst\" class=\"read-more\" href=\"https:\/\/www.digitaldatatactics.com\/index.php\/2011\/09\/29\/campaigntips\/\" aria-label=\"Read more about Campaign Tracking Tips and Tricks for Omniture SiteCatalyst\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,17],"tags":[3,5],"_links":{"self":[{"href":"https:\/\/www.digitaldatatactics.com\/index.php\/wp-json\/wp\/v2\/posts\/10"}],"collection":[{"href":"https:\/\/www.digitaldatatactics.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.digitaldatatactics.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.digitaldatatactics.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.digitaldatatactics.com\/index.php\/wp-json\/wp\/v2\/comments?post=10"}],"version-history":[{"count":1,"href":"https:\/\/www.digitaldatatactics.com\/index.php\/wp-json\/wp\/v2\/posts\/10\/revisions"}],"predecessor-version":[{"id":15,"href":"https:\/\/www.digitaldatatactics.com\/index.php\/wp-json\/wp\/v2\/posts\/10\/revisions\/15"}],"wp:attachment":[{"href":"https:\/\/www.digitaldatatactics.com\/index.php\/wp-json\/wp\/v2\/media?parent=10"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.digitaldatatactics.com\/index.php\/wp-json\/wp\/v2\/categories?post=10"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.digitaldatatactics.com\/index.php\/wp-json\/wp\/v2\/tags?post=10"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}