Skip to main content
Level 3
November 28, 2023
Question

s.events is giving undefined

s.events  value is giving undefined when I declare like this below 

Here is the code follows:

 

s.linkTrackVars = "events";
s.linkTrackEvents = "event140" ;

s.usePlugins=true;

s.doPlugins = function() {

s.events = s.events + ",event140= xyz";

}

Here , in output I am getting in the calls is 

event = undefined ,,event140= xyz

But then when , I have other rules having event firing , I am getting 

event = event50 ,event140= xyz

 

Can anyone tell me , do I need to remove the s.events in --s.events = s.events + ",event140= xyz" but then , how will my other rules events will reflect?

Thanks!

 

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.

2 replies

Jennifer_Dungan
Adobe Champion and Community Advisor
Adobe Champion and Community Advisor
November 28, 2023

Or you can check if there is any value in s.events like so:

 

s.events = s.events ? s.events + ",event140=xyz" : "event140=xyz";

 

Basically this is a shorthand if statement:

 

If s.events has a value

THEN

use s.events + ",event140=xyz" (notice the comma)

ELSE
use "event140=xyz" (no comma)

 

 

If there is no s.events then you should just get: "event140=xyz" 

If s.events is say "event12", then you should get "event12,event140=xyz"

If s.events is "event13,", then you should get "event13,,event140=xyz"

 

 

Not sure how worried you are about having 2 commas (that would drive me crazy, lol).. but you could fix that by replacing ",," with "," if it bothers you.

Translate
abhinavbalooni
Community Advisor
Community Advisor
November 28, 2023

Hey @sa30 

 

There is a common analytics plugin available for this which is appendToList. It is used to append a value to existing set of values as the name suggests.

 

I have put a few examples from the official documentation link (https://experienceleague.adobe.com/docs/analytics/implementation/vars/plugins/apl.html?lang=en) below and highlighted your use case.

 

// Set the events variable to "event22,event24,event23".


s.events = "event22,event24";
s.events = apl(s.events,"event23");

 

// The events variable remains unchanged because the apl function does not add duplicate values


s.events = "event22,event23";
s.events = apl(s.events,"event23");

 

// Set the events variable to "event23" if the events variable is blank


s.events = "";
s.events = apl(s.events,"event23");

 

// Append a value to eVar5. The value of prop4 remains unchanged.
// The value of eVar5 is "hello|people|today".


s.prop4 = "hello|people";
s.eVar5 = apl(s.prop4, "today", "|");

 

// Sets prop4 to "hello|people,today". Be mindful of correct delimiters!


s.prop4 = "hello|people";
s.prop4 = apl(s.prop4, "today");

 

// Sets the events variable to "event22,event23,EVentT23". Be mindful of capitalization when using the cc argument!


s.events = "event22,event23";
s.events = apl(s.events,"EVenT23", ",", ",", true);

 

// Sets the events variable to "event22,event23,event24,event25".


s.events = "event22,event23";
s.events = apl(s.events, "event23,event24,event25");

 

// Sets linkTrackVars to "events,eVar1,campaign".
// The last three arguments at the end of this apl call are not necessary because they match the default argument values.


s.linkTrackVars = "events,eVar1";
s.linkTrackVars = apl(s.linkTrackVars, "campaign", ",", ",", false);

 

// This apl call does not do anything because the code does not assign the returned value to a variable.


s.events = "event22,event24";
apl(s.events, "event23");

 

// Sets the list2 variable to "apple-APPLE-Apple".
// Since the two delimiter arguments are different, the value passed in is delimited by "|", then joined together by "-".


s.list2 = "apple|APPLE";
s.list2 = apl(s.list2, "Apple", "|", "-", true);

 

// Sets the list3 variable to "value1,value1,value1" (unchanged).
// Only new values are deduplicated. Existing duplicate values remain.


s.list3 = "value1,value1,value1";
s.list3 = apl(s.list3,"value1");

 

 

Hope the above helps. This plugin is used quite extensively.

 

Regards,

Abhinav

 

 

 

Translate