Expand my Community achievements bar.

SOLVED

Is it possible to clear 1 var and not all vars?

Avatar

Level 3

So let's say we go to a site and click through items, is it possible to capture a var for the first time and then clear it out so it does not persist on the page?

 

Example:

 

1.Go to website - Page view analytics

2. Click More Details - s.tl click analytics -- we want to capture a custom eVar/prop here

3. Click close details - s.tl click analytics but we don't want the custom eVar/prop in this call or anything afterwards, we don't want to clear all variables because we want to maintain all variables in here except the custom eVar/prop from the initial click.

1 Accepted Solution

Avatar

Correct answer by
Level 8

@edbudev -
Question for you: Can't you just set the eVar's allocation to first/original, specify the desired expiration, and be done with it? Or, does that for some reason not work for what you're trying to accomplish?


Assuming expiration/allocation aren't feasible solutions here, I'd say it's definitely possible, but you'll have to build a custom solution that fits your requirements. Based on the little i know from your initial post, I'd probably go with a simple Boolean JS flag that gets set and evaluated in doPlugins(). Something like this...

var hasVarAlreadyBeenTracked = false;

// only populate the eVar the first time through
if (!hasVarAlreadyBeenTracked) {
  s.eVar1 = _satellite.getVar("data-element-for-this-evar");
  hasVarAlreadyBeenTracked = true;
} else {
  s.eVar1 = "";
}

If you want this behavior to persist across multiple pages, you'll have to store the flag in a cookie or other browser storage. 

View solution in original post

1 Reply

Avatar

Correct answer by
Level 8

@edbudev -
Question for you: Can't you just set the eVar's allocation to first/original, specify the desired expiration, and be done with it? Or, does that for some reason not work for what you're trying to accomplish?


Assuming expiration/allocation aren't feasible solutions here, I'd say it's definitely possible, but you'll have to build a custom solution that fits your requirements. Based on the little i know from your initial post, I'd probably go with a simple Boolean JS flag that gets set and evaluated in doPlugins(). Something like this...

var hasVarAlreadyBeenTracked = false;

// only populate the eVar the first time through
if (!hasVarAlreadyBeenTracked) {
  s.eVar1 = _satellite.getVar("data-element-for-this-evar");
  hasVarAlreadyBeenTracked = true;
} else {
  s.eVar1 = "";
}

If you want this behavior to persist across multiple pages, you'll have to store the flag in a cookie or other browser storage.