Satellite.getVar change | Community
Skip to main content
Level 3
November 5, 2019
Solved

Satellite.getVar change

  • November 5, 2019
  • 8 replies
  • 12188 views

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?

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

try to give the event to the dataElement:

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

8 replies

Urs_Boller
Community Advisor
Community Advisor
November 6, 2019

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

Level 3
November 6, 2019

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.

jantzen_b
Adobe Employee
Adobe Employee
January 5, 2021
Were you able to find a solution to this issue?
Urs_Boller
Community Advisor
Community Advisor
November 6, 2019

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?

Level 3
November 6, 2019

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.

Urs_Boller
Community Advisor
Urs_BollerCommunity AdvisorAccepted solution
Community Advisor
November 6, 2019

try to give the event to the dataElement:

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

November 28, 2019

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`.

jantzen_b
Adobe Employee
Adobe Employee
March 30, 2020
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?
jantzen_b
Adobe Employee
Adobe Employee
September 24, 2020
Were you able to solve this issue? If so, would you mind posting the solution so others that find this thread have the answer?