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 administrador de cuentas de su organización. Ellos podrán organizar una reunión con un consultor para ayudarle.
El complemento apl
le permite agregar de forma segura nuevos valores a variables delimitadas por listas, como events
, linkTrackVars
, list
y otras.
Adobe recomienda utilizar este complemento si desea añadir valores nuevos a variables existentes que contengan una cadena de valores delimitados. Este complemento no es necesario si prefiere concatenar cadenas para variables que contengan valores delimitados.
Adobe ofrece una extensión que le permite disfrutar de los complementos más utilizados.
Si no desea utilizar la extensión del complemento, 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: apl (appendToList) v3.2 (Requires inList v2.0 or higher) */
s.apl=function(lv,vta,d1,d2,cc){if(!lv||"string"===typeof lv){if("undefined"===typeof this.inList||"string"!==typeof vta||""===vta)return lv;d1=d1||",";d2=d2||d1;1==d2&&(d2=d1,cc||(cc=1));2==d2&&1!=cc&&(d2=d1);vta=vta.split(",");for(var g=vta.length,e=0;e<g;e++)this.inList(lv,vta[e],d1,cc)||(lv=lv?lv+d2+vta[e]:vta[e])}return lv};
/* Adobe Consulting Plugin: inList v2.1 */
s.inList=function(lv,vtc,d,cc){if("string"!==typeof vtc)return!1;if("string"===typeof lv)lv=lv.split(d||",");else if("object"!== typeof lv)return!1;d=0;for(var e=lv.length;d<e;d++)if(1==cc&&vtc===lv[d]||vtc.toLowerCase()===lv[d].toLowerCase())return!0;return!1};
/******************************************** END CODE TO DEPLOY ********************************************/
El método apl
utiliza los siguientes argumentos:
lv
(obligatorio, cadena): La variable que contiene una lista delimitada de elementos para agregar un nuevo valor avta
(obligatorio, cadena): Una lista delimitada por comas de los nuevos valores que se agregan al valor del argumento lv
.d1
(opcional, cadena): El delimitador utilizado para separar los valores individuales ya contenidos en el argumento lv
. Si no se configura de forma distinta, el valor predeterminado es una coma (,
).d2
(opcional, cadena): El delimitador de salida. Si no se especifica lo contrario, el valor predeterminado es el mismo que d1
.cc
(opcional, booleano): Indica si se utiliza una comprobación que distingue entre mayúsculas y minúsculas. Con true
, la comprobación de duplicaciones distingue entre mayúsculas y minúsculas. Si se selecciona false
o no, la comprobación de duplicaciones no distingue entre mayúsculas y minúsculas. El valor predeterminado es false
.El método apl
devuelve el valor del argumento lv
más cualquier valor no duplicado del argumento vta
.
Si…
s.events = "event22,event24";
… y se ejecuta el siguiente código…
s.events = s.apl(s.events, "event23");
… el valor final de s.events es:
s.events = "event22,event24,event23";
Si…
s.events = "event22,event23";
… y se ejecuta el siguiente código…
s.events = s.apl(s.events, "event23");
… el valor final de s.events sigue siendo:
s.events = "event22,event23";
En este ejemplo, la llamada de apl no realiza cambios en s.events porque s.events ya contiene “event23”.
Si…
s.events = ""; //blank value
… y se ejecuta el siguiente código…
s.events = s.apl(s.events, "event23");
… el valor final de s.events es…
s.events = "event23";
Si…
s.prop4 = "hello|people";
… y se ejecuta el siguiente código…
s.eVar5 = s.apl(s.prop4, "today", "|");
… el valor final de s.prop4 sigue siendo…
s.prop4 = "hello|people";
… pero el valor final de s.eVar5 es
s.eVar5 = "hello|people|today";
Tenga en cuenta que el complemento solo devuelve un valor; no necesariamente “restablece” la variable pasada a través del argumento lv.
Si…
s.prop4 = "hello|people";
… y se ejecuta el siguiente código…
s.prop4 = s.apl(s.prop4, "today");
… el valor final de s.prop4 es…
s.prop4 = "hello|people,today";
Asegúrese de mantener el mismo delimitador entre lo que hay en el valor del argumento lv y lo que hay en los argumentos d1/d2.
Si…
s.events = "event22,event23";
… y se ejecuta el siguiente código…
s.events = s.apl(s.events,"EVenT23", ",", ",", true);
… el valor final de s.events es:
s.events = "event22,event23,EVentT23";
Aunque este ejemplo no es práctico, demuestra la necesidad de tener cuidado al utilizar el indicador que distingue entre mayúsculas y minúsculas.
Si…
s.events = "event22,event23";
… y se ejecuta el siguiente código…
s.events = s.apl(s.events, "event23,event24,event25");
… el valor final de s.events es:
s.events = "event22,event23,event24,event25");
El complemento no añade “event23” a s.events porque ya existe en s.events. Sin embargo, sí añade event24 y event25 a s.events porque no se incluyeron en s.events anteriormente.
Si…
s.linkTrackVars = "events,eVar1";
… y se ejecuta el siguiente código…
s.linkTrackVars = s.apl(s.linkTrackVars, "campaign", ",", ",", false);
… el valor final de s.linkTrackVars es:
s.linkTrackVars = "events,eVar1,campaign";
Los tres últimos argumentos (p. ej. “,”, “,”, false) al final de esta llamada de API no son necesarios pero tampoco “dañan nada” al configurarse, ya que coinciden con los valores de argumento predeterminados.
Si…
s.events = "event22,event24";
… y se ejecuta el siguiente código…
s.apl(s.events, "event23");
… el valor final de s.events sigue siendo:
s.events = "event22,event24";
La ejecución del complemento por sí sola (sin asignar el valor devuelto a una variable) no “restablece” realmente la variable pasada a través del argumento lv.
Si…
s.list2 = "casesensitivevalue|casesensitiveValue"
… y se ejecuta el siguiente código…
s.list2 = s.apl(s.list2, "CasESensiTiveValuE", "|", "-", true);
… el valor final de s.list2 es:
s.list2 = "casesensitivevalue-casesensitiveValue-CasESensiTiveValuE"
Dado que los dos argumentos delimitadores son diferentes, el valor pasado se delimita por el primer argumento delimitador (“|”) y luego se une por el segundo argumento delimitador (“-”).
apl
que usaban versiones anteriores del complemento.inList 2.1
.d2
ahora se establece de forma predeterminada en el valor del argumento d1
cuando, si no se especifica lo contrario.vta
ahora acepta varios valores al mismo tiempo.d2
para dar formato al valor devuelto.cc
, ahora es booleano.inList
para el procesamiento de comparación.d
(delimitador) ahora es opcional (el valor predeterminado es una coma).u
(indicador de distinción entre mayúsculas y minúsculas) ahora es opcional (de forma predeterminada distingue entre mayúsculas y minúsculas).u
(indicador de distinción entre mayúsculas y minúsculas), el complemento ya no añade un valor a una lista si este ya existe en dicha lista.