Appendix A - Sample Intercept Survey Code

This code pulls in the Adobe beacon that is then captured and passed on to the Allegiance platform to be used to track the user session during the survey process. The answers to the survey will be added to the query string of the beacon request that is fired when the user clicks on the Submit button of the survey.

Example 1

//This code can be seen at the following demo site: http://allegiancepm.info/demos/Caprese/order.html

<script src="https://allegiancedemo.allegiancetech.com/surveys/W4MU2R/Scripts/clientExtensibility.js"></script>

<script>

            var aaURL;

            $(function(){

              

              aaURL = getAABeacon();

              

              function getAABeacon() {

              var whitelist = ['AQB', 'mid', 'aid', 'vid', 'fid', 'AQE'];

              var foundSrc = '';

              for (var p in window) {

              if ((p.substring(0, 4) == 's_i_') && (window[p].src)) {

              var src = window[p].src;

              if (src.indexOf('/b/ss/') >= 0) {

              foundSrc = src;

              break;

              }

              }

              }

              //Loop through document.images just in case

              if (!foundSrc && window.document.images) {

              for (var image_num = 0; image_num < window.document.images.length; image_num++) {

              var src = window.document.images[image_num].src;

              if (src.indexOf('/b/ss/') >= 0) {

              foundSrc = src;

              break;

              }

              }

              }

              

              if (!foundSrc)

              return '';

              

              var mainURL = foundSrc.substring(0, foundSrc.indexOf('?'));

              var query = foundSrc.substring(foundSrc.indexOf('?') + 1);

              

              var filteredQuery = '';

              

              for (var i = 0; i < whitelist.length; i++) {

              var v = getQueryValue(whitelist[i], query);

              if (v) filteredQuery += (filteredQuery ? '&' : '') + whitelist[i] + '=' + v;

              }

              

              return mainURL + '?' + filteredQuery;

              }

              

              function getQueryValue(variable, query) {

              var vars = query.split('&');

              for (var i = 0; i < vars.length; i++) {

              var pair = vars[i].split('=');

              if (decodeURIComponent(pair[0]) == variable) {

              return decodeURIComponent(pair[1]);

              }

              }

              }

              });

            </script>

<!-- Allegiance Intercept survey. Copyright 2013 Allegiance, Inc. All Rights Reserved

More info available at http://www.allegiance.com -->

<script src="http://allegiancepm.info/demos/Caprese/allegiance/allegianceIntercept.js"></script>

<script language="Javascript">

//Initialize the survey invitation

$().ready(function(){

    $$survey.init();

});

</script>

<!--/ scripts -->

 

        <!-- Adobe site intercept code  -->

Example 2

//The following is source from http://allegiancepm.info/demos/CommercialServices/

<script language="JavaScript" type="text/javascript" src="https://allegiancedemo.allegiancetech.com/surveys/2J9G9D/Scripts/clientExtensibility.js"></script>

<script language="JavaScript" type="text/javascript" src="js/allegianceSiteIntercept.js"></script>

<script>

 

function pageLoaded() {

clientCallback();

siteInterceptGet();

};

addOnLoadEvent(pageLoaded); //ensures that other events are retained

 

navigator.sayswho= (function(){

    var ua= navigator.userAgent, tem,

    M= ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || [];

    if(/trident/i.test(M[1])){

        tem=  /\brv[ :]+(\d+)/g.exec(ua) || [];

        return 'IE '+(tem[1] || '');

    }

    if(M[1]=== 'Chrome'){

        tem= ua.match(/\bOPR\/(\d+)/)

        if(tem!= null) return 'Opera '+tem[1];

    }

    M= M[2]? [M[1], M[2]]: [navigator.appName, navigator.appVersion, '-?'];

    if((tem= ua.match(/version\/(\d+)/i))!= null) M.splice(1, 1, tem[1]);

    return M.join(' ');

})();

function siteInterceptGet() {

/*

url

* ip location navigator.geolocation.getCurrentPosition(function(data){data.coords.latitude, data.coords.longitude},function(){})

* browser language navigator.language

region / state API required

browser navigator.saysWho

* os platform navigator.platform

* screen res (window.screen.availWidth + "x" + window.screen.availHeight)

* mobile device if(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) {isMobile = true;}

* cookies enabled navigator.cookiesEnabled

session id n/a

*/

var os = navigator.platform

var cookiesEnabled = navigator.cookieEnabled;

var language =  navigator.language || navigator.userLanguage;

var isMobile = false;

if(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) {isMobile = true;}

var screenRes = (window.screen.availWidth + "x" + window.screen.availHeight);

var latitude = 0, longitude = 0;

/*var coords = navigator.geolocation.getCurrentPosition(function(data){

latitude = data.coords.latitude;

longitude = data.coords.longitude;

AllegianceSiteInterceptOnExit.addUrlParameter("latitude", latitude);

AllegianceSiteInterceptOnExit.addUrlParameter("longitude", longitude);

},function(){});*/

 

AllegianceSiteInterceptOnExit.addUrlParameter("os", os);

AllegianceSiteInterceptOnExit.addUrlParameter("cookies", cookiesEnabled);

AllegianceSiteInterceptOnExit.addUrlParameter("browserLanguage", language);

AllegianceSiteInterceptOnExit.addUrlParameter("resolution", screenRes);

AllegianceSiteInterceptOnExit.addUrlParameter("browser", navigator.sayswho);

AllegianceSiteInterceptOnExit.addUrlParameter("mobile", isMobile);

};

//window.addEventListener("message", receiveMessage, false);

function receiveMessage(event)

{

  if(event.data === "allegCloseSurveyModal") {

AllegianceSiteInterceptOnExit.closeSurveyModal();

  }

}

function clientCallback() {

                          if(false && takesurvey) {

                          $('body').append(

                                           '<div class="allegianceSurveyDialog" style="display:none;">'

                                           + '<img id="asdClose"src="https://static.allegiancetech.com/Shared/Images/close.png"/>'

                                           + '<iframe src="https://allegiancedemo.allegiancetech.com/cgi-bin/qwebcorporate.dll?idx=2J9G9D&hiddenquestion='+s.products+'">'

                                           + '</iframe>'

                                           + '</div>'

                                           + '<div id="aspOverlay" style="display:none;"></div>');

                          

                          $('.allegianceSurveyDialog').css({

                                                           zIndex:'9000',

                                                           position: 'absolute',

                                                           width: '410px',

                                                           height: '550px',

                                                           background: '#fff',

                                                           top: '5%',

                                                           left: '35%',

                                                           padding: '20px',

                                                           borderRadius: '5px'

                                                           }).fadeIn(250);

                          

                          $('#aspOverlay').css({

                                               width:'100%',

                                               height:'100%',

                                               background:'#000',

                                               top:'0px',

                                               left:'0px',

                                               opacity:'0.5'

                                               }).fadeIn(250);

                          

                          $('.allegianceSurveyDialog #asdClose').css({

                                                                     position: 'absolute',

                                                                     top:'5px',

                                                                     right:'5px',

                                                                     zIndex:'8999',

                                                                     cursor:'pointer'

                                                                     });

                          

                          $('.allegianceSurveyDialog #asdClose').bind('click', function() {

                                                                    $('.allegianceSurveyDialog, #aspOverlay').fadeOut(250);

                                                                    });

                          

                          $('.allegianceSurveyDialog iframe').css({

                                                                  width: '410px',

                                                                  height: '550px',

                                                                  border:'none'

                                                                  });

                          }

                          }

        </script>