Expand my Community achievements bar.

SOLVED

Satellite.getVar change

Avatar

Level 3

Since the most recent update to the Core and Adobe Analytics extensions has anybody noticed some differences in behaviour in the satellite.getVar function?

We were using it in a couple of data elements and it doesn't seem to be working correctly...but if I replace that line in our custom code with the relevant javascript string then it seems to work ok.

Wondered if anybody else had encountered such an issue?

1 Accepted Solution

Avatar

Correct answer by
Community Advisor

try to give the event to the dataElement:

_satellite.getVar("de-name",event);

View solution in original post

9 Replies

Avatar

Community Advisor

you mean that the getVar doesn't return the correct data? and it is not a timing issue?

Avatar

Level 3

It's not returning a value...and I don't think it's a timing issue. I've been trying to debug using console logs. Maybe I can explain...

Into a data element we pass event.target to define what has been clicked. We then in another element call what has been clicked..e.g. _satellite.getVar("Clicked")

To check what is being returned, in that second data element I've added console.log(_satellite.getVar("Clicked") and it returns a null value.

But then directly after I add console.log(event.target) and this value comes through fine.

That's what leading me to believe it is something wrong with the _satellite.getVar function.

Avatar

Level 10
Were you able to find a solution to this issue?

Avatar

Community Advisor

maybe there's something wrong how you pass the event to the dataElement? what code do you use to pass the event to the dataElement?

Avatar

Level 3

It's as simple as:

-------------------------------------------------

    var closest = event.target.closest("[data-track]");

    if (closest !== null) {

      return closest.dataset.track;

    }

    if (closest.parentElement.dataset.track !== null) {

      return closest.parentElement.dataset.track;

    }

  }

-------------------------------------------------

But this effectively drives our rules. So I know the data element is working...otherwise our rules wouldn't fire. We also pass this value into a Prop for debugging (which also works). And when I try the code itself instead of using the satellite then that also works.

So I know the code works OK. Seemingly the only flaw is the satellite.

Avatar

Correct answer by
Community Advisor

try to give the event to the dataElement:

_satellite.getVar("de-name",event);

Avatar

Level 1

If the rule that is firing is an Event Type of Direct Call, then the Data Element doesn't have access to `getVar`. You can access the values inside the Data Element through `event.detail.name`, and `event.detail.value`.

Avatar

Level 10
Do any of the answers below answer your initial question? If so, can you select one of them as the correct answer? If none of the answers already provided answer your question, can you provide additional information to better help the community solve your question?

Avatar

Level 10
Were you able to solve this issue? If so, would you mind posting the solution so others that find this thread have the answer?