Adobe Consulting proporciona este complemento por cortesía para ayudarle a sacar el máximo partido a Adobe Analytics. El Servicio de atención al cliente de Adobe no ofrece asistencia técnica con este complemento, incluida la instalación o solución de problemas. Si necesita ayuda con este complemento, póngase en contacto con el equipo de cuentas de Adobe de su organización. Ellos podrán organizar una reunión con un consultor para ayudarle.
El complemento rfl
le permite eliminar “con seguridad” valores de cadenas delimitadas, como events
, products
, list
y otros. Este complemento es útil si desea eliminar valores específicos de una cadena delimitada sin preocuparse por los delimitadores. Otros complementos dependen de este código para ejecutarse correctamente. Este complemento no es necesario si no necesita ejecutar una función específica en más de una variable de Analytics a la vez o si no utiliza ningún complemento dependiente.
El complemento utiliza la lógica siguiente:
Este complemento aún no se puede usar en el SDK web.
Adobe ofrece una extensión que le permite utilizar los complementos más utilizados con Adobe Analytics.
Si no desea utilizar la extensión de complemento de Analytics comunes, puede utilizar el editor de código personalizado.
Copie y pegue el siguiente código en cualquier parte del archivo AppMeasurement después de crear una instancia del objeto de seguimiento de Analytics (con s_gi
). Conservar los comentarios y los números de versión del código en la implementación ayuda a Adobe a solucionar cualquier posible problema.
/******************************************* BEGIN CODE TO DEPLOY *******************************************/
/* Adobe Consulting Plugin: rfl (removeFromList) v2.1 */
function rfl(lv,vr,d1,d2,df){var b=lv,f=vr,e=d1,h=d2,g=df;if("-v"===b)return{plugin:"rfl",version:"2.1"};a:{if("undefined"!==typeof window.s_c_il){var c=0;for(var a;c<window.s_c_il.length;c++)if(a=window.s_c_il[c],a._c&&"s_c"===a._c){c=a;break a}}c=void 0}"undefined"!==typeof c&&(c.contextData.rfl="2.1");if(!b||!f)return"";c=[];a="";e=e||",";h=h||e;g=g||!1;b=b.split(e);e=b.length;for(var d=0;d<e;d++)-1<b[d].indexOf(":")&&(a=b[d].split(":"),a[1]=a[0]+":"+a[1],b[d]=a[0]),-1<b[d].indexOf("=")&&(a=b[d].split("="),a[1]=a[0]+"="+a[1],b[d]=a[0]),b[d]!==f&&a?c.push(a[1]):b[d]!==f?c.push(b[d]):b[d]===f&&g&&(a?c.push(a[1]):c.push(b[d]),g=!1),a="";return c.join(h)};
/******************************************** END CODE TO DEPLOY ********************************************/
La función rfl
utiliza los argumentos siguientes:
lv
(obligatorio, cadena): Una variable (o cadena) que contiene una lista de valores delimitados.vr
(obligatorio, cadena): El valor que desea eliminar del argumento lv
. Adobe recomienda no eliminar varios valores durante una sola llamada rfl
.d1
(opcional, cadena): El delimitador que utiliza el argumento lv
. El valor predeterminado es una coma (,
).d2
(opcional, cadena): El delimitador que desea que utilice la cadena de retorno. El valor predeterminado es el mismo que el argumento d1
.df
(opcional, booleano): Si true
, fuerza solo las instancias duplicadas del argumento vr
desde el argumento lv
en lugar de todas las instancias. Si no se configura de forma distinta, el valor predeterminado es false
.La llamada a esta función hace que se devuelva una cadena modificada que contiene el argumento lv
, pero sin instancias (o instancias duplicadas) del valor especificado en el argumento vr
.
Si…
s.events = "event22,event24,event25";
… y se ejecuta el siguiente código…
s.events = rfl(s.events,"event24");
… el valor final de s.events será:
s.events = "event22,event25";
Si…
s.events = "event22,event24,event25";
… y se ejecuta el siguiente código…
s.events = rfl(s.events,"event26");
… el valor final de s.events será:
s.events = "event22,event24,event25";
En este ejemplo, la llamada rfl no realizó cambios en s.events porque s.events no contenía “event26”.
Si…
s.events = "event22,event24,event25";
… y se ejecuta el siguiente código…
s.events = rfl(s.events);
… el valor final de s.events será:
s.events = "";
Si los argumentos lv
o vr
están en blanco en una llamada rfl
, el complemento no devolverá nada.
Si…
s.prop4 = "hello|people|today";
… y se ejecuta el siguiente código…
s.eVar5 = rfl(s.prop4,"people","|");
… el valor final de s.prop4 seguirá siendo…
s.prop4 = "hello|people|today";
… pero el valor final de s.eVar5 será:
s.eVar5 = "hello|today";
Tenga en cuenta que el complemento solo devuelve un valor; realmente no restablece la variable pasada a través del argumento lv
.
Si…
s.prop4 = "hello|people|today";
… y se ejecuta el siguiente código…
s.prop4 = rfl(s.prop4,"people");
… el valor final de s.prop4 seguirá siendo…
s.prop4 = "hello|people|today";
Asegúrese de establecer el argumento d1
en casos en los que el valor del argumento lv
contenga un delimitador diferente al valor predeterminado (es decir, una coma).
Si…
s.events = "event22,event23,event25";
… y se ejecuta el siguiente código…
s.events = rfl(s.events,"EVenT23");
… el valor final de s.events será:
s.events = "event22,event23,event25";
Aunque este ejemplo no es práctico, demuestra la necesidad de pasar valores que distinguen entre mayúsculas y minúsculas.
Si…
s.events = "event22,event23:12345,event25";
… y se ejecuta el siguiente código…
s.events = rfl(s.events,"event23");
… el valor final de s.events será:
s.events = "event22,event25";
Si…
s.events = "event22,event23:12345,event25";
… y se ejecuta el siguiente código…
s.events = rfl(s.events,"event23:12345");
… el valor final de s.events será:
s.events = "event22,event23:12345,event25";
Cuando necesite eliminar un evento que utilice una sintaxis de serialización o numérica/monetaria, debe especificar solo el evento en sí (es decir, sin los valores de serialización/numéricos/monetarios) en la llamada rfl
.
Si…
s.events = "event22,event23,event23,event23,event24,event25";
… y se ejecuta el siguiente código…
s.events = rfl(s.events,"event23");
… el valor final de s.events será:
s.events = "event22,event24,event25");
Si…
s.events = "event22,event23,event23,event23,event24,event25";
… y se ejecuta el siguiente código…
s.events = rfl(s.events,"event23", "", "",true);
… el valor final de s.events será:
s.events = "event22,event23,event24,event25");
Si…
s.events = "event22,event23,event23,event23,event24,event25";
… y se ejecuta el siguiente código…
s.events = rfl(s.events,"event23", "", "|",true);
… el valor final de s.events será:
s.events = "event22|event23|event24|event25");
Si…
s.events = "event22,event23,event24,event25";
… y se ejecuta el siguiente código…
s.events = rfl(s.events,"event23,event24");
… el valor final de s.events será:
s.events = "event22,event23,event24,event25";
No se admite la configuración de varios valores en el argumento vr
. La lógica rfl
del ejemplo anterior primero dividiría los valores del argumento lv
(es decir, s.events) y luego trataría de hacer coincidir cada valor del argumento completo es decir vr
argument value (i.e. "event23,event24"
).
Si…
s.events = "event22,event23,event24,event25";
… y se ejecuta el siguiente código…
s.events = rfl(s.events,"event23");
s.events = rfl(s.events,"event24");
… el valor final de s.events será:
s.events = "event22,event25");
Cada valor que se va a eliminar de la lista debe estar contenido en su propia llamada rfl
.
Si…
s.linkTrackVars = "events,eVar1,eVar2,eVar3";
… y se ejecuta el siguiente código…
s.linkTrackVars = rfl(s.linkTrackVars,"eVar2", ",", ",", false);
… el valor final de s.linkTrackVars será:
s.linkTrackVars = "events,eVar1,eVar3";
Los tres últimos argumentos (por ejemplo “,“,“,“,false) al final de esta llamada rfl
no son necesarios, pero tampoco pasa nada porque estén ahí, ya que coinciden con la configuración predeterminada.
Si…
s.events = "event22,event23,event24";
… y se ejecuta el siguiente código…
rfl(s.events,"event23");
… el valor final de s.events seguirá siendo:
s.events = "event22,event23,event24";
De nuevo, tenga en cuenta que el complemento solo devuelve un valor; realmente no “restablece” la variable pasada a través del argumento lv
.
join
.