Note that this Adobe Analytics Integration is deprecated. Use the newer Adobe Analytics Integration instead. For details, see:

Developer Help Centre > Adobe Analytics Integration

Integrating Maxymiser with Adobe Analytics

Integrating with Adobe Analytics (previously known as Omniture, SiteCatalyst) allows you to send campaign information so you can later filter your analytics by campaign experience.

This article explains how to:

  • Integrate a Maxymiser campaign with Adobe Analytics
  • Validate and QA the integration for a campaign

How we send the data?

This integration uses specific eVar and prop variables, and populates them with the relevant user experience information. Each campaign sends its own data (an image request per campaign) in the following format:

<mode>_<campaignName>=<element1Name>:<variantName>|<element2Name>:<variantName>

Prerequisites

The following information needs to be defined before you apply the integration:
  • Adobe Analytics eVar and/or prop to be populated by the integration
  • Adobe Analytics Tracking Server / 3rd-party Cookie (or use ignoreTrackingServer: true if not applicable)

Integration Implementation

The Maxymiser integration with Adobe Analytics is based on 3 separate scripts. Follow the steps described under "Configure sample integration for a campaign" heading in the Integrations Overview article to set up the integration.

  1. Integration Module (Site Script, take from Step 1);

  2. Adobe Analytics register (Site Script, use for Step 2);
    // Adobe Analytics integration v1.3.0 !function(){var a={version:"1.3.0",oncePerSession:!0,campaignRequired:!0,render:!1,append:!1,timeout:7e3,validate:function(a){return a.eVar&&!b.isNumber(a.eVar)?b.errors.invalidEvar(a.eVar):a.prop&&!b.isNumber(a.prop)?b.errors.invalidProp(a.prop):a.sVariable&&!b.isSVariable(a.sVariable)?b.errors.invalidSVariable(a.sVariable):b.getParams(a).length?a.trackingServer||a.ignoreTrackingServer?a.render&&!b.checkValidRenderFormat(a.campaign.getName())?b.errors.invalidRenderFormat(a.campaign.getName()):!(a.additionalParams&&!b.checkAdditionalParams(a.additionalParams))||b.errors.invalidAdditionalParams(a.additionalParams):b.errors.missingTrackingServer:b.errors.missingParameters},check:function(a){var c=b.getSVariable(a.sVariable);return a.ignoreTrackingServer?c:c&&c.trackingServer===a.trackingServer},exec:function(a){return a.sync?(b.populateSyncData(a),!0):b.send(a)}},b={errors:{missingParameters:"The `eVar` and/or `prop` option are required and missing",invalidEvar:function(a){return"Invalid eVar provided ["+(a||"").toString()+"]"},invalidProp:function(a){return"Invalid prop provided ["+(a||"").toString()+"]"},invalidSVariable:function(a){return"Invalid sVariable provided ["+(a||"").toString()+"] (must be `string` or `s object`)"},missingTrackingServer:function(){return"Missing trackingServer option"},invalidRenderFormat:function(a){return"Campaign name is in an invalid format to utilize the Render flag: "+a},invalidAdditionalParams:function(a){return"additionalParams are not formatted correctly: "+a}},checkAdditionalParams:function(a){return!!Array.isArray(a)},filterAdditionalParams:function(a,b){return a.filter(function(a){if(b[a])return a}).join()},checkValidRenderFormat:function(a){return a.indexOf("_")!==-1},renderFormat:function(a){return a.split("_")[0]},isSVariable:function(a){return"string"==typeof a?/^[A-Za-z0-9_\-\$]+$/.test(a):"object"==typeof a&&b.isSObject(a)},isSObject:function(a){return"object"==typeof a&&"function"==typeof a.t},getSVariable:function(a){return a&&"string"!=typeof a?!!b.isSObject(a)&&a:!!b.isSObject(window[a||"s"])&&window[a||"s"]},isNumber:function(a){return a&&(+a).toFixed(0)>0},send:function(a){var c,d,e=b.getParams(a),f=b.getSVariable(a.sVariable),g=a.campaign.getName(),h="";f.linkTrackVars=e.join(),g=a.render?b.renderFormat(g):g+"="+a.campaignExperience,a.append?"page"===a.append?(h=window.mmsystem.AdobeAppendData||"",d=h?h+"~"+g:g,window.mmsystem.AdobeAppendData=d):"session"===a.append&&(h=visitor.getData("AdobeAppendData")||"",d=h?h+"~"+g:g,visitor.setData("AdobeAppendData",d)):d=g;for(var i=0;i<e.length;i++)f[e[i]]=d;return a.additionalParams&&(c=b.filterAdditionalParams(a.additionalParams,f),f.linkTrackVars=f.linkTrackVars+","+c),f.tl(!0,"o","Maxymiser "+(a.isProduction?"Live":"QA")),!0},getParams:function(a){var b=[];return a.eVar&&b.push("eVar"+a.eVar),a.prop&&b.push("prop"+a.prop),b},populateSyncData:function(a){var c=b.getParams(a);window.mm_adobe_data=window.mm_adobe_data||{};for(var d=c.length;d--;)window.mm_adobe_data[c[d]]=a.campaignExperience}};"object"==typeof modules&&"function"==typeof modules.define&&modules.require("Integrations").register("Adobe Analytics",a)}();

  3. Adobe Analytics initialize (Campaign Script, use for Step 3)
    Integrations.run('Adobe Analytics', { campaign: campaign, // do not change this eVar: NaN, // e.g. 21 prop: NaN, // e.g. 21 sVariable: '$s', // change this property only if the Adobe Analytics variable on the page isn't "s" trackingServer: 'xxxxx.xxx.xxx.net', // replace this with whatever is returned from the trackingServer property of the Adobe Analytics variable redirect: false, // set to true for redirect campaigns, you must also map this script to the alternative pages' URLs ignoreTrackingServer: false, // set to true to ignore tracking server requirement oncePerSession: true, // set to false to send data with every campaign view additionalParams: [], // optional property to have additional eVars and props sent with the Maxymiser call (array of strings) render: true, // optional property indicating this campaign is now only serving one experience, so that only the campaign name is sent to Adobe append: 'page' // optional property to concatentate previously sent data with current campaign data, possible values set the scope in which to store data and are 'session' or 'page' (scope must be the same across campaigns) });

QA the Integration

Install the Adobe DigitalPulse Debugger and navigate to the page where the campaign is running.

After openning the Debugger scroll down and search for the eVar and prop values that you are populating.

Adobe DigitalPulse
Note: For multiple campaigns there will be multiple image requests, so carry on scrolling through the window to find all the values.