Launch AA Extension "Integrate Module " Error | Community
Skip to main content
December 14, 2020
Question

Launch AA Extension "Integrate Module " Error

  • December 14, 2020
  • 2 replies
  • 1827 views

Hi,

Recently i have trying to integrate DFA with AA, i have followed all the steps for Module Integration from https://experienceleague.adobe.com/docs/analytics/implementation/vars/integrate.html?lang=en#integrate-module-workflow but it is showing me an error that "e.Integrate.add is not a function".

Below is the AA Extension custom code for the same, please help me to resolve this.

function AppMeasurement_Module_Integrate(l){var c=this;c.s=l;var e=window;e.s_c_in||(e.s_c_il=[],e.s_c_in=0);c._il=e.s_c_il;c._in=e.s_c_in;c._il[c._in]=c;e.s_c_in++;c._c="s_m";c.list=[];c.add=function(d,b){var a;b||(b="s_Integrate_"+d);e[b]||(e[b]={});a=c[d]=e[b];a.a=d;a.e=c;a._c=0;a._d=0;void 0==a.disable&&(a.disable=0);a.get=function(b,d){var f=document,h=f.getElementsByTagName("HEAD"),k;if(!a.disable&&(d||(v="s_"+c._in+"_Integrate_"+a.a+"_get_"+a._c),a._c++,a.VAR=v,a.CALLBACK="s_c_il["+c._in+"]."+ a.a+".callback",a.delay(),h=h&&0<h.length?h[0]:f.body))try{k=f.createElement("SCRIPT"),k.type="text/javascript",k.setAttribute("async","async"),k.src=c.c(a,b),0>b.indexOf("[CALLBACK]")&&(k.onload=k.onreadystatechange=function(){a.callback(e[v])}),h.firstChild?h.insertBefore(k,h.firstChild):h.appendChild(k)}catch(l){}};a.callback=function(b){var c;if(b)for(c in b)Object.prototype[c]||(a[c]=b[c]);a.ready()};a.beacon=function(b){var d="s_i_"+c._in+"_Integrate_"+a.a+"_"+a._c;a.disable||(a._c++,d=e[d]= new Image,d.src=c.c(a,b))};a.script=function(b){a.get(b,1)};a.delay=function(){a._d++};a.ready=function(){a._d--;a.disable||l.delayReady()};c.list.push(d)};c._g=function(d){var b,a=(d?"use":"set")+"Vars";for(d=0;d<c.list.length;d++)if((b=c[c.list[d]])&&!b.disable&&b[a])try{b[a](l,b)}catch(e){}};c._t=function(){c._g(1)};c._d=function(){var d,b;for(d=0;d<c.list.length;d++)if((b=c[c.list[d]])&&!b.disable&&0<b._d)return 1;return 0};c.c=function(c,b){var a,e,g,f;"http"!=b.toLowerCase().substring(0,4)&& (b="http://"+b);l.ssl&&(b=l.replace(b,"http:","https:"));c.RAND=Math.floor(1E13*Math.random());for(a=0;0<=a;)a=b.indexOf("[",a),0<=a&&(e=b.indexOf("]",a),e>a&&(g=b.substring(a+1,e),2<g.length&&"s."==g.substring(0,2)?(f=l[g.substring(2)])||(f=""):(f=""+c[g],f!=c[g]&&parseFloat(f)!=c[g]&&(g=0)),g&&(b=b.substring(0,a)+encodeURIComponent(f)+b.substring(e+1)),a=e));return b}} /************************** DFA VARIABLES **************************/ /* @3291034: Fill in these variables with the settings mapped in the * DFA wizard and that match your desired preferences. Some of the * variables are optional and have been labeled as such below. * @3291034: Comments should be removed in a production deployment. */ var dfaConfig = { CSID: '', // DFA Client Site ID SPOTID: '8403558', // DFA Spotlight ID tEvar: 'eVar41', // Transfer variable, typically the "View Through" eVar. errorEvar: 'eVar43', // DFA error tracking (optional) timeoutEvent: 'event61', // Tracks timeouts/empty responses (optional) requestURL: "http://fls.doubleclick.net/json?spot=[SPOTID]&src=[CSID]&var=[VAR]&host=integrate.112.2o7.net%2Fdfa_echo%3Fvar%3D[VAR]%26AQE%3D1%26A2S%3D1&ord=[RAND]", // the DFA request URL maxDelay: "750", // The maximum time to wait for DFA servers to respond, in milliseconds. visitCookie: "s_dfa", // The name of the visitor cookie to use to restrict DFA calls to once per visit. clickThroughParam: "CID", // A query string paramter that will force the DFA call to occur. searchCenterParam: undefined, // SearchCenter identifier. newRsidsProp: undefined //"prop34" // Stores the new report suites that need the DFA tracking code. (optional) }; /************************ END DFA Variables ************************/ /* * Partner Plugin: DFA Check 1.0 - Restrict DFA calls to once a visit, per report suite, per click * through. Used in conjunction with VISTA. Deduplicates SCM hits. */ s.partnerDFACheck=new Function("cfg","" +"var s=this,c=cfg.visitCookie,src=cfg.clickThroughParam,scp=cfg.searchCenterParam,p=cfg.newRsidsProp,tv=cfg.tEvar,dl=',',cr,nc,q,g,gs,i,j,k,fnd,v=1,t=new Date,cn=0,ca=new Array,aa=new Array,cs=new A" +"rray;t.setTime(t.getTime()+1800000);cr=s.c_r(c);if(cr){v=0;}ca=s.split(cr,dl);if(s.un)aa=s.split(s.un,dl);else aa=s.split(s.account,dl);for(i=0;i<aa.length;i++){fnd = 0;for(j=0;j<ca.length;j++){if(aa[i] == ca[j]){fnd=1;}}if(!fnd){cs[cn" +"]=aa[i];cn++;}}if(cs.length){for(k=0;k<cs.length;k++){nc=(nc?nc+dl:'')+cs[k];}cr=(cr?cr+dl:'')+nc;s.vpr(p,nc);v=1;}if(s.wd)q=s.wd.location.search.toLowerCase();else q=s.w.location.search.toLowerCase();q=s.repl(q,'?','&');g=q.indexOf('&'+src.toLow" +"erCase()+'=');gs=(scp)?q.indexOf('&'+scp.toLowerCase()+'='):-1;if(g>-1){s.vpr(p,cr);v=1;}else if(gs>-1){v=0;s.vpr(tv,'SearchCenter Visitors');}if(!s.c_w(c,cr,t)){s.c_w(c,cr,0);}if(!s.c_r(c)){v=0;}r" +"eturn v>=1;"); /* Plugin Config */ s.usePlugins = true; s.doPlugins=function(s) { s.prop3=s_getLoadTime(); s.events=s.apl(s.events,'event1='+s.prop3,',',1); s.prop5=s.getPreviousValue(s.pageName,'gpv_pn',''); s.eVar4=s.getNewRepeat(30,'s_getNewRepeat'); } function s_getLoadTime(){if(!window.s_loadT){var b=new Date().getTime(),o=window.performance?performance.timing:0,a=o?o.requestStart:window.inHeadTS||0;s_loadT=a?Math.round((b-a)/100):''}return s_loadT} /* * Plugin: getPreviousValue_v1.0 - return previous value of designated * variable (requires split utility) */ s.getPreviousValue=new Function("v","c","el","" +"var s=this,t=new Date,i,j,r='';t.setTime(t.getTime()+1800000);if(el" +"){if(s.events){i=s.split(el,',');j=s.split(s.events,',');for(x in i" +"){for(y in j){if(i[x]==j[y]){if(s.c_r(c)) r=s.c_r(c);v?s.c_w(c,v,t)" +":s.c_w(c,'no value',t);return r}}}}}else{if(s.c_r(c)) r=s.c_r(c);v?" +"s.c_w(c,v,t):s.c_w(c,'no value',t);return r}"); /* * Plugin: getNewRepeat 1.2 - Returns whether user is new or repeat */ s.getNewRepeat=new Function("d","cn","" +"var s=this,e=new Date(),cval,sval,ct=e.getTime();d=d?d:30;cn=cn?cn:" +"'s_nr';e.setTime(ct+d*24*60*60*1000);cval=s.c_r(cn);if(cval.length=" +"=0){s.c_w(cn,ct+'-New',e);return'New';}sval=s.split(cval,'-');if(ct" +"-sval[0]<30*60*1000&&sval[1]=='New'){s.c_w(cn,ct+'-New',e);return'N" +"ew';}else{s.c_w(cn,ct+'-Repeat',e);return'Repeat';}"); /* * Utility Function: split v1.5 (JS 1.0 compatible) */ s.split=new Function("l","d","" +"var i,x=0,a=new Array;while(l){i=l.indexOf(d);i=i>-1?i:l.length;a[x" +"++]=l.substring(0,i);l=l.substring(i+d.length);}return a"); /* * Plugin Utility: apl v1.1 */ s.apl=new Function("l","v","d","u","" +"var s=this,m=0;if(!l)l='';if(u){var i,n,a=s.split(l,d);for(i=0;i<a." +"length;i++){n=a[i];m=m||(u==1?(n==v):(n.toLowerCase()==v.toLowerCas" +"e()));}}if(!m)l=l?l+d+v:v;return l"); /******************************************************************** * * Supporting functions that may be shared between plug-ins * *******************************************************************/ /* * Utility Function: vpr - set the variable vs with value v */ s.vpr=new Function("vs","v", "if(typeof(v)!='undefined' && vs){var s=this; eval('s.'+vs+'=\"'+v+'\"')}"); /* * Utility Function: split v1.5 - split a string (JS 1.0 compatible) */ s.split=new Function("l","d","" +"var i,x=0,a=new Array;while(l){i=l.indexOf(d);i=i>-1?i:l.length;a[x++]=l.substring(0,i);l=l.substring(i+d.length);}return a"); /* * Plugin Utility: Replace v1.0 */ s.repl=new Function("x","o","n","" +"var i=x.indexOf(o),l=n.length;while(x&&i>=0){x=x.substring(0,i)+n+x.substring(i+o.length);i=x.indexOf(o,i+l)}return x"); try{ s.maxDelay = dfaConfig.maxDelay; s.loadModule("Integrate") s.Integrate.onLoad=function(s,m) { var dfaCheck = s.partnerDFACheck(dfaConfig); if (dfaCheck) { s.Integrate.add("DFA"); s.Integrate.DFA.tEvar=dfaConfig.tEvar; s.Integrate.DFA.errorEvar=dfaConfig.errorEvar; s.Integrate.DFA.timeoutEvent=dfaConfig.timeoutEvent; s.Integrate.DFA.CSID=dfaConfig.CSID; s.Integrate.DFA.SPOTID=dfaConfig.SPOTID; s.Integrate.DFA.get(dfaConfig.requestURL); s.Integrate.DFA.setVars=function(s,p) { if (window[p.VAR]) { // got a response if(!p.ec) { // no errors s[p.tEvar]="DFA-"+(p.lis?p.lis:0)+"-"+(p.lip?p.lip:0)+"-"+(p.lastimp?p.lastimp:0)+"-"+(p.lastimptime?p.lastimptime:0)+"-"+(p.lcs?p.lcs:0)+"-"+(p.lcp?p.lcp:0)+"-"+(p.lastclk?p.lastclk:0)+"-"+(p.lastclktime?p.lastclktime:0) } else if (p.errorEvar) { // got an error response, track s[p.errorEvar] = p.ec; } } else if (p.timeoutEvent) { // empty response or timeout s.events = ((!s.events || s.events == '') ? '' : (s.events + ',')) + p.timeoutEvent; // timeout event } } } } }catch(err){console.info(err)}

 

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.

2 replies

frederiquer4521
Level 2
December 22, 2020

Looks like a timing issue. Make sure the Integrate Module and plugin codes are placed in right order w.r.t the config code for the DFA integration. 

Level 3
March 10, 2021

Is there a solutions for this, I'm facing the same issue.

Thank You!

March 10, 2021

Hi,

Make one change on your AppMeasurement_Module_Integrate(l) function same as below.

window.AppMeasurement_Module_Integrate=function(l) {var c=this;c.s=l;var e=window;e.s_c_in||(e.s_c_il=[],e.s_c_in=0);c._il=e.s_c_il;c._in=e.s_c_in;c._il[c._in]=c;e.s_c_in++;c._c="s_m";c.list=[];c.add=function(d,b){var a;b||(b="s_Integrate_"+d);e[b]||(e[b]={});a=c[d]=e[b];a.a=d;a.e=c;a._c=0;a._d=0;void 0==a.disable&&(a.disable=0);a.get=function(b,d){var f=document,h=f.getElementsByTagName("HEAD"),k;if(!a.disable&&(d||(v="s_"+c._in+"_Integrate_"+a.a+"_get_"+a._c),a._c++,a.VAR=v,a.CALLBACK="s_c_il["+c._in+"]."+ a.a+".callback",a.delay(),h=h&&0<h.length?h[0]:f.body))try{k=f.createElement("SCRIPT"),k.type="text/javascript",k.setAttribute("async","async"),k.src=c.c(a,b),0>b.indexOf("[CALLBACK]")&&(k.onload=k.onreadystatechange=function(){a.callback(e[v])}),h.firstChild?h.insertBefore(k,h.firstChild):h.appendChild(k)}catch(l){}};a.callback=function(b){var c;if(b)for(c in b)Object.prototype[c]||(a[c]=b[c]);a.ready()};a.beacon=function(b){var d="s_i_"+c._in+"_Integrate_"+a.a+"_"+a._c;a.disable||(a._c++,d=e[d]= new Image,d.src=c.c(a,b))};a.script=function(b){a.get(b,1)};a.delay=function(){a._d++};a.ready=function(){a._d--;a.disable||l.delayReady()};c.list.push(d)};c._g=function(d){var b,a=(d?"use":"set")+"Vars";for(d=0;d<c.list.length;d++)if((b=c[c.list[d]])&&!b.disable&&b[a])try{b[a](l,b)}catch(e){}};c._t=function(){c._g(1)};c._d=function(){var d,b;for(d=0;d<c.list.length;d++)if((b=c[c.list[d]])&&!b.disable&&0<b._d)return 1;return 0};c.c=function(c,b){var a,e,g,f;"http"!=b.toLowerCase().substring(0,4)&& (b="http://"+b);l.ssl&&(b=l.replace(b,"http:","https:"));c.RAND=Math.floor(1E13*Math.random());for(a=0;0<=a;)a=b.indexOf("[",a),0<=a&&(e=b.indexOf("]",a),e>a&&(g=b.substring(a+1,e),2<g.length&&"s."==g.substring(0,2)?(f=l[g.substring(2)])||(f=""):(f=""+c[g],f!=c[g]&&parseFloat(f)!=c[g]&&(g=0)),g&&(b=b.substring(0,a)+encodeURIComponent(f)+b.substring(e+1)),a=e));return b}}