Ce plug-in est fourni par le service Adobe Consulting afin de vous aider à tirer le meilleur parti d’Adobe Analytics. Le service à la clientèle d’Adobe ne fournit pas d’assistance pour ce plug-in, pas même pour l’installation ou le dépannage. Si vous avez besoin d’aide sur ce plug-in, contactez l’équipe de compte Adobe de votre organisation. Elle peut organiser une réunion avec un consultant ou une consultante pour obtenir de l’aide.
Le plug-in rfl
vous permet de supprimer « en toute sécurité » des valeurs de chaînes délimitées, comme events
, products
, list
et d’autres. Ce plug-in est utile si vous souhaitez supprimer des valeurs spécifiques d’une chaîne délimitée sans vous soucier des délimiteurs. Plusieurs autres plug-ins dépendent de ce code pour s’exécuter correctement. Ce plug-in n’est pas nécessaire si vous n’avez pas besoin d’exécuter une fonction spécifique sur plusieurs variables Analytics à la fois, ou si vous n’utilisez aucun plug-in dépendant.
Le plug-in utilise la logique suivante :
Ce module externe n’est pas encore pris en charge pour une utilisation dans le SDK Web.
Adobe propose une extension qui vous permet d’utiliser les plug-ins les plus couramment utilisés avec Adobe Analytics.
Si vous ne souhaitez pas utiliser l’extension de plug-in Plugins Analytics communs, vous pouvez utiliser l’éditeur de code personnalisé.
Copiez et collez le code suivant n’importe où dans le fichier AppMeasurement après l’instanciation de l’objet de suivi Analytics (à l’aide de s_gi
). La conservation des commentaires et des numéros de version du code dans votre mise en œuvre permet à Adobe de résoudre les éventuels problèmes.
/******************************************* 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 fonction rfl
utilise les arguments suivants :
lv
(obligatoire, chaîne) : variable (ou chaîne) qui contient une liste de valeurs délimitées.vr
(obligatoire, chaîne) : valeur à supprimer de l’argument lv
. Adobe conseille de ne pas supprimer plusieurs valeurs au cours d’un même appel rfl
.d1
(facultatif, chaîne) : délimiteur utilisé par l’argument lv
. Par défaut, il s’agit d’une virgule (,
).d2
(facultatif, chaîne) : délimiteur que vous souhaitez voir utilisé par la chaîne renvoyée. La valeur par défaut est la même que celle de l’argument d1
.df
(facultatif, booléen) : s’il est défini sur true
, il force uniquement les instances en double de l’argument vr
à partir de l’argument lv
au lieu de toutes les instances. La valeur par défaut est false
lorsqu’elle n’est pas définie.Lʼappel de cette fonction renvoie une chaîne modifiée contenant lʼargument lv
, mais sans aucune instance (ou instance en double) de la valeur spécifiée dans lʼargument vr
.
Si…
s.events = "event22,event24,event25";
…et que le code suivant s’exécute…
s.events = rfl(s.events,"event24");
…alors la valeur finale de s.events est :
s.events = "event22,event25";
Si…
s.events = "event22,event24,event25";
…et que le code suivant s’exécute…
s.events = rfl(s.events,"event26");
…alors la valeur finale de s.events est :
s.events = "event22,event24,event25";
Dans cet exemple, l’appel rfl n’a apporté aucune modification à s.events, car cette variable ne contenait pas event26.
Si…
s.events = "event22,event24,event25";
…et que le code suivant s’exécute…
s.events = rfl(s.events);
…alors la valeur finale de s.events est :
s.events = "";
Si lʼargument lv
ou vr
est vide lors dʼun appel rfl
, alors le plug-in ne renvoie rien.
Si…
s.prop4 = "hello|people|today";
…et que le code suivant s’exécute…
s.eVar5 = rfl(s.prop4,"people","|");
…alors la valeur finale de s.prop4 reste…
s.prop4 = "hello|people|today";
…mais la valeur finale de s.eVar5 est :
s.eVar5 = "hello|today";
Pour rappel, le plug-in renvoie uniquement une valeur. Il ne « réinitialise » pas réellement la variable transmise par le biais de lʼargument lv
.
Si…
s.prop4 = "hello|people|today";
…et que le code suivant s’exécute…
s.prop4 = rfl(s.prop4,"people");
…alors la valeur finale de s.prop4 reste…
s.prop4 = "hello|people|today";
Veillez à définir lʼargument d1
lorsque la valeur de lʼargument lv
contient un délimiteur différent de celui par défaut (cʼest-à-dire une virgule).
Si…
s.events = "event22,event23,event25";
…et que le code suivant s’exécute…
s.events = rfl(s.events,"EVenT23");
…alors la valeur finale de s.events est :
s.events = "event22,event23,event25";
Bien que cet exemple ne soit pas concret, il démontre la nécessité de transmettre des valeurs sensibles à la casse.
Si…
s.events = "event22,event23:12345,event25";
…et que le code suivant s’exécute…
s.events = rfl(s.events,"event23");
…alors la valeur finale de s.events est :
s.events = "event22,event25";
Si…
s.events = "event22,event23:12345,event25";
…et que le code suivant s’exécute…
s.events = rfl(s.events,"event23:12345");
…alors la valeur finale de s.events est :
s.events = "event22,event23:12345,event25";
Lorsque vous devez supprimer un événement qui utilise la sérialisation et/ou la syntaxe numérique/monétaire, vous devez spécifier uniquement lʼévénement en lui-même (soit sans les valeurs de sérialisation/numérique/monétaire) dans lʼappel rfl
.
Si…
s.events = "event22,event23,event23,event23,event24,event25";
…et que le code suivant s’exécute…
s.events = rfl(s.events,"event23");
…alors la valeur finale de s.events est :
s.events = "event22,event24,event25");
Si…
s.events = "event22,event23,event23,event23,event24,event25";
…et que le code suivant s’exécute…
s.events = rfl(s.events,"event23", "", "",true);
…alors la valeur finale de s.events est :
s.events = "event22,event23,event24,event25");
Si…
s.events = "event22,event23,event23,event23,event24,event25";
…et que le code suivant s’exécute…
s.events = rfl(s.events,"event23", "", "|",true);
…alors la valeur finale de s.events est :
s.events = "event22|event23|event24|event25");
Si…
s.events = "event22,event23,event24,event25";
…et que le code suivant s’exécute…
s.events = rfl(s.events,"event23,event24");
…alors la valeur finale de s.events est :
s.events = "event22,event23,event24,event25";
La définition de valeurs multiples dans lʼargument vr
nʼest pas prise en charge. La logique rfl
de lʼexemple ci-dessus sépare dʼabord les valeurs de lʼargument lv
(soit s.events), puis tente de faire correspondre chaque valeur délimitée à la valeur complète de lʼargument vr
(soit "event23,event24"
).
Si…
s.events = "event22,event23,event24,event25";
…et que le code suivant s’exécute…
s.events = rfl(s.events,"event23");
s.events = rfl(s.events,"event24");
…alors la valeur finale de s.events est :
s.events = "event22,event25");
Chaque valeur à supprimer de la liste doit être contenue dans son propre appel rfl
.
Si…
s.linkTrackVars = "events,eVar1,eVar2,eVar3";
…et que le code suivant s’exécute…
s.linkTrackVars = rfl(s.linkTrackVars,"eVar2", ",", ",", false);
…alors la valeur finale de s.linkTrackVars est :
s.linkTrackVars = "events,eVar1,eVar3";
Les trois derniers arguments (cʼest-à-dire ",",",",false) à la fin de cet appel rfl
ne sont pas nécessaires, mais leur présence ne constitue pas un frein puisquʼils correspondent aux paramètres par défaut.
Si…
s.events = "event22,event23,event24";
…et que le code suivant s’exécute…
rfl(s.events,"event23");
…alors la valeur finale de s.events reste :
s.events = "event22,event23,event24";
Pour rappel, le plug-in renvoie uniquement une valeur. Il ne « réinitialise » pas réellement la variable transmise par le biais de lʼargument lv
.
join
.