Wednesday, June 20, 2012

Internal campaign

Need for Internal campaign


Internal Campaign Analysis will gauge the effectiveness of promotional areas of the site. The ideas can be applied to any site content region or widget that is “internal” and promoting content on your site.Many companies frequently feature various promotional efforts on their websites .Many of these internal campaigns go unmeasured in terms of site conversion or are mistakenly combined with external campaign tracking .Measuring the performance of these campaigns is a key step to optimizing your site for higher conversion

Deployment steps:


Assign a unique Internal Campaign ID to each internal promotion and pass
the ID in the query string of the URL the promotion points to.
The Internal Campaign ID should represent the lowest level of granularity
desired for reporting. Higher level attributes of each ID can be uploaded
using Omniture SAINT.
For example, the homepage may have three content regions where
promotional banners are rotated seasonally. In order to report on
performance of the content region, the seasonal content, and the
combination of region and content the campaign id would contain a value
that represents the page and region concatenated with a value that
represents the content. The higher level region only and content only
reports will be created using SAINT.
Add the id to a query parameter to url for each piece of promotional content
A naming convention for the Internal Campaign ID can be used to intuitively
know the attributes. Example: use HP to mean campaign page name was the
Homepage, Rectangle was the position, and Sku 1234 was the content.

Resulting URL on Internal Campaign Landing Page:
http://www.omniture.com/article.asp?icid=HPRectnagle1234


Setup the s_code.js file to capture the query parameter

Global JS code to capture the Internal Campaign value from the
URL:
/* Within s_doPlugins() */
if(!s.eVar1)
s.eVar1=s.getQueryParam('icid')


Cross Visit Participation plugin


Why cross visit participation?


Conversion Variables (eVars) have different types of allocation.  For example, if someone comes to your site multiple times from a few different campaign tracking codes, you can choose to give credit for any Success Event to the first tracking code or the last tracking code using allocation
The same is true for every eVar, but there may be times when you want to see all of the values passed to an eVar prior to the Success Event taking place. This can be achieved with help of cross visit participation plugin .
Cross Visit participation  is a JavaScript plug-in that concatenates a series of values into an eVar for attribution purposes.
The most common use of this plug-in is for what we call Campaign Stacking




PLUG-IN INFORMATION

Description

A value is passed in and appended to a list of previous values, and that list of values is returned.
The values are separated by a configurable separator and each value will expire after a configurable duration.
 The list of values will expire when one or more events (as defined by the client) occur.
 Whether values are de-duplicated(meaning the same value is set twice in a row) is configurable.
SYNTAX:
s.crossVisitParticipation(v,'cn',‘ex',‘ct',‘dl',‘ev',dv);
For eg :
s.crossVisitParticipation(s.campaign,'s_ev36','30','5','>','',0);
PARAMETERS:
 v = value to stack
 cn = name of the cookie storing the list of values
ex = expiration (in days) of each value in the list
 ct = number of distinct values to store in the list
 dl = value delimiter
 ev = (optional) Comma seperated list of success events that will clear the list
 dv = (optional) whether consecutive duplicate values will be stored (0=no,1=yes)
 RETURNS:IF "v" was not empty AND an event clearing the list was NOT set the list will be returned ELSE an empty string is returned.
REQUIRES: split, join plugin



TECHNICAL SOLUTION

 

Need to classify Campaign Tracking Codes by Marketing Channel and use Cross-Visit Participation to “stack” Marketing Channels (i.e. Paid Search, Display Ad, E-mail, etc…).  The classification of Campaign Tracking Codes by Marketing Channel should be straightforward with SAINT Classification. 

The second item needed is a concatenated string of “stacked” Marketing Channels so you can see the interplay between them prior to website conversion.  There are many ways to “stack” the channels ranging from creating SAINT classification of stacked campaign tracking codes to capturing the channel by using the Get Query parameter plugin .
      Once you have both of these set-up, you are ready for analysis.

DEPLOYMENT STEPS


  1.Include the plug-in function(s) in the ***Plug-ins*** section of the Omniture JavaScript file for  Report suite .Call the plug-in from within the doPlugins section of the JS file as shown below.Please find attached crossvisitparticipation plugin below.
s.usePlugins=true
function s_doPlugins(s) {
/* Add calls to plugins here */
[Insert Calls to Plug-ins Here]
}
s.doPlugins=s_doPlugins
/************************** PLUGINS SECTION *************************/
/* You may insert any plugins you wish to use here. */
[Insert Plug-in Code Here]
…..Rest of the JS File


2. Next in the s_doPlugins section of the s_code file you need a couple lines of setup
/* Campaign Stacking (CVP): 30 day exp, 5 value max, no dupes */
     s.eVar36=s.crossVisitParticipation(s.campaign,'s_ev36','30','5','>','',0);

/*Plug-in: crossVisitParticipation v1.7 - stacks values from
specified variable in cookie and returns value
 */
s.crossVisitParticipation=new Function("v","cn","ex","ct","dl","ev","dv",""
+"var s=this,ce;if(typeof(dv)==='undefined')dv=0;if(s.events&&ev){var"
+" ay=s.split(ev,',');var ea=s.split(s.events,',');for(var u=0;u<ay.l"
+"ength;u++){for(var x=0;x<ea.length;x++){if(ay[u]==ea[x]){ce=1;}}}}i"
+"f(!v||v==''){if(ce){s.c_w(cn,'');return'';}else return'';}v=escape("
+"v);var arry=new Array(),a=new Array(),c=s.c_r(cn),g=0,h=new Array()"
+";if(c&&c!=''){arry=s.split(c,'],[');for(q=0;q<arry.length;q++){z=ar"
+"ry[q];z=s.repl(z,'[','');z=s.repl(z,']','');z=s.repl(z,\"'\",'');arry"
+"[q]=s.split(z,',')}}var e=new Date();e.setFullYear(e.getFullYear()+"
+"5);if(dv==0&&arry.length>0&&arry[arry.length-1][0]==v)arry[arry.len"
+"gth-1]=[v,new Date().getTime()];else arry[arry.length]=[v,new Date("
+").getTime()];var start=arry.length-ct<0?0:arry.length-ct;var td=new"
+" Date();for(var x=start;x<arry.length;x++){var diff=Math.round((td."
+"getTime()-arry[x][1])/86400000);if(diff<ex){h[g]=unescape(arry[x][0"
+"]);a[g]=[arry[x][0],arry[x][1]];g++;}}var data=s.join(a,{delim:',',"
+"front:'[',back:']',wrap:\"'\"});s.c_w(cn,data,e);var r=s.join(h,{deli"
+"m:dl});if(ce)s.c_w(cn,'');return r;");






 

Tuesday, June 19, 2012

WebAnalytics Tools -Process Flow

1Just thought of sharing my experience in working with analytics tools .Before code and implementation there are lot of  efforts involved in the analytical process in Project.

What are analytic solutions???
I would like to list some of common solution used for sitectalayst.
I will disucss  in detail about all these solution in upcoming post.
Content Hierarchy
External Channel Measurement
Site Search
Advanced Download Tracking
Geo-Segmentation
Time Parting
Lead Capture
Self Service Support
Page Valuation
Internal Campaign Optimization
Product Category Optimization
Partner Referrals
When a new client comes in,there is requirement template which needs to be filled in by the client based on different analytics solution matching their requirements.
Once that is done then generate solution design document matching the requirements with the custom variables and efforts involved for each solutions.Then techncial solution document has to be generated with syntax and javascript code for each solution.
Once that is done ,send the technical specification document tot he developers for code implementation.After code is implemented,test the code using reporting test case with screenshots.
After testing ,generate sample reports /dashboards matching requirement and send it to the  client.


Process flow for analytical projects

Requirement Gathering: Initial discussion and gathering requirement from the client
Design: A Solution design document  and technical solution document will then be created to be able to measure marketing tactics, website behavior and end-action conversions on each website
Implement: Implementation of the technical specification document will be executed including code, tags, JavaScript
Testing :Implementation will be tested and validated  as per technical specification document
Report: Reporting, Benchmarking and Analysis can then be performed to provide insight to the client
Analyze: Analysis on sites will be performed to identify quick wins
Optimize: Optimization of sites and business can then commence through various testing methodologies including A/B, MVT and Behavioral Targeting