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 le gestionnaire de compte de votre organisation. Il peut organiser une réunion avec un consultant 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 :
Adobe propose une extension qui vous permet d’utiliser les plug-ins les plus couramment utilisés.
Si vous ne souhaitez pas utiliser l’extension du plug-in, 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
.