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.01 */
s.rfl=function(lv,vr,d1,d2,df){if(!lv||!vr)return"";var d=[],b="";d2=d2?d2:d1;df=df?!0:!1;lv=lv.split(d1?d1:",");d1=lv.length;for(var c=0;c<d1;c++)-1<lv[c].indexOf(":")&&(b=lv[c].split(":"),b[1]=b[0]+":"+b[1],lv[c]=b[0]),-1<lv[c].indexOf("=")&&(b=lv[c].split("="), b[1]=b[0]+"="+b[1],lv[c]=b[0]),lv[c]!==vr&&b?d.push(b[1]):lv[c]!==vr?d.push(lv[c]):lv[c]===vr&&df&&(b?d.push(b[1]):d.push(lv[c]),df=!1),b="";return d.join(d2)};
/******************************************** END CODE TO DEPLOY ********************************************/
La méthode 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 méthode 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 = s.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 = s.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 = s.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 s.rfl, alors le plug-in ne renvoie rien.
Si…
s.prop4 = "hello|people|today";
…et que le code suivant s’exécute…
s.eVar5 = s.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 = s.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 = s.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 = s.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 = s.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 s.rfl.
Si…
s.events = "event22,event23,event23,event23,event24,event25";
…et que le code suivant s’exécute…
s.events = s.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 = s.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 = s.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 = s.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 = s.rfl(s.events,"event23");
s.events = s.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 s.rfl.
Si…
s.linkTrackVars = "events,eVar1,eVar2,eVar3";
…et que le code suivant s’exécute…
s.linkTrackVars = s.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 s.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…
s.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
.