Unfortunately, the code snippet in your example will always result in
this manner, with the race condition if it's done outside of Launch's
rule order controls (for example, if you are doing this within custom
code action blocks). In your example, "
window._satellite.track('commonsPageLoad'); " gets fully executed, but
it is only a direct call that then 'triggers' another, completely
separate process. The separate process does not have any relationship or
callback to this. The direct call gets a...
To answer your question directly: You make a rule, then within the
'actions' of that rule you add an Adobe Analytics 'Set Variables'
action. As you customize your 'set Variables' action, you get a nice UI
in which you can set an evar or sprop directly to a data-element. You'll
need to have rules that set variables, execute the proper beacon send,
and then clear out the variables too.One straightforward example is a
typical pageload rule. When the page is done loading (let's say 'DOM
Ready' in th...
Both our ideas are the same thing, just in a slightly different way. For
your example, I would set event2 equal to a new data-element, then I can
use that data element to evaluate eVar5 and return a value (even if that
value returned is an empty string, which would sobsequently NOT set the
event on the record).This event2 = %DataElement% approach allows you to
do a true/false type thing (which your use case describes), as well as
set the event to a value if needed. It even handles the simple use...
The direct call is made in a synchronous manner - but you can think of
all the subsequent activity of the rule running afterwards. The
execution of another Rule Trigger is completely external to the initial
direct call line, so there's no control on timing there.If you need to
control the timing, you do have a few options...Option 1 (do it
yourself): create your own callback, promise, or other control alongside
your DCR to ensure it does no continue until the timing you
desire.Option 2 (let Laun...
To add on to this; I really wish that every update had some sort of
release notes. There have been AA and ECID extension updates with
absolutely no release notes. We don't know if there was a fix to an
issue, or a change in the way the extension behaves.Even if you hunt for
release notes; the Adobe Launch Release Notes pages and the Experience
Cloud Release Notes pages do not always give info.
We can add the votes from here also: Ability to Turn Off/On ActivityMap
Module in Adobe Analytics ExtensionThis is a crucial item for protecting
against unintended/accidental PII collection on poorly designed sites.
It is very unfortunate that we have to edit appmeasurement just to turn
Can you share some of the details about how your Rule is setup?For
instance:Are you using a single rule with a trigger of the click event
-> and then a single action block for AA(Set Variables) ? Do you have
additional actions like Send Beacon, Clear Variables, or custom code
within that Rule?
I've seen some cases where a Dev environment all of the sudden
'disappears' , resulting in any attempts resulting in 404-errors. If
you're using launch command, it's no big deal since you just switch it
off - or to a different environment, but if you are using the DTM/Launch
Switch you will not be able to switch environments since you cannot get
to the menu (i.e. you only get the default chrome extension menu).If you
go into Launch and simply rebuild the library, you should be ok. If for
How are your different rules and their corresponding action blocks set
up?I think the issue your seeing is stemming from something you hinted
at in this quote, but I'm not sure without more info:Where are you doing
the logic to set s.products and s.events? Are you using other
extensions, , setvars custom code section, or custom code blocks?
Thanks Stewart,To wrap this up; I tried a few scenarios to see the
results on "counter-type custom events". Below is the outline and
results.Quick result summary:Yes, if your data element returns '0'; or
you place a 0 in the GUI, then the counter event will not be set for the
record in the report suite after processing. However, the event and
value are still included in the beacon call.Side note: Any other values
returned, that I've tried, still result in the custom event being
collected as usua...
stewarts16448458 , thanks for pointing it out - I tried a few
possibilities today. Seems to always set the event, no matter what the
returned value is.I've tried using data elements that return 0, a blank
string, and false, but they all unfortunately still result in the event
I agree with this, seeing it a little late. It would also be possible to
accomplish this and allow data element logic at the same time.Link to
the other thread, could be grouped in with this depending on how they
decide to implement it: Set Variables Actions - Events should have
Whoa, I didn't know this was an option in DTM. This is such a
streamlined way to interact with data layers without having to utilize a
new data element or making sure you are being really defensive in your
coding.Thanks for bringing this up Stewart - a great feature/idea that I
wish I knew back with DTM
Again, this isn't the most flexible optimal solution (meaning it doesn't
allow for any combinations of nested AND / OR operators), but could
allow most of the functionality within the way Launch operates today.
It'd be better than nothing, with less room for error...Using a new
feature: "Add condition layer" , you create an alternative condition set
that can be evaluated (essentially the OR operator, allowing combined
AND operators)Here is a visual on these "condition layers" , showing
I agree, this and the ability to have nested conditions would be a huge
enhancement for the current system.Allow for nested conditions in Launch
rules Condition1 AND Condition2OR Condition3 AND Condition4From a purely
functional perspective (if adobe takes the easy way), it may be possible
to have additional layers of condition groups. Then it would already be
possible in launch, and function correctly.I'll post a mock-up later
If your rule consists of 2 action blocks:Go into the custom code block,
copy that code.Then open the Set Variables action block, scroll to the
bottom and paste it in the custom code section at the end.Now your
custom code will be executed at the end of the Set Variables action,
without needing to be written into the DOM first.
^this, exactly!From my standpoint of usage, there are only two big
roadblocks remaining. These are the last obstacles that stop eVars from
completely taking over the world:1. Workspace pathing a. It still uses a
querying shortcut, so it doesn't compute correctly when hit based
segments are used in workspaces. (this should be known to the product
team already, I walked through it with someone back in Q4. But I'd
gladly demo it again to help achieve an accurate pathing tool in future
You may not be getting any data collected to your variables because of
the timing that data elements are evaluated for SetVars.Based on what
you said here:Adobe launch handles Data Elements in a very specific
manner when they are referenced in the GUI (like a setVars action block
or within the analytics extension 'Global Varables' section). So let's
imagine the following scenario: MyPage Rule- Trigger: PageTop- Actions:-
- Custom Code Action Block (gets a timestamp value and puts it in the
Hi Anitha,The delay that you're experiencing is not due to the "Rule
Order" (rule order is only effects a process within a single trigger -
you are using two different triggers: DOM Ready, and Direct
Call('value') ). Instead, the strange delay is actually due to the
cascading effect of using a Custom Code Action Block via postscribe to
initiate the Direct Call. (in order for the code to execute, it may be
further delayed by other things happening in the window (since you doing
all this prior to ...
The new library doesn't need any of the previously approved assets. Try
not using the 'add all changed resources' button, I've found that it
confuses most people and gets in the way of a more linear workflow.There
might be a specific workflow that will work for you... Try this idea and
let me know if it makes logical sense as something reproducible... I've
found this workflow the best way to get people started on Launch's
complex library mgmt and build-to-environment workflow.5 Step Process to
If you go to the "Publishing" section, you can click on a library - and
then select "Add a Resource". It's not as fast as the method you
described (which is a good idea to implement!), but it is an organized
one-stop shop for library management.
I'm surprised that you haven't gotten an answer on this one yet.
Unfortunately, it probably due to the fact that there isn't much you can
do in the current scenario. The catch of using information in a data
layer, is that the data layer must exist before your code trying to use
it. In this scenario, it means your aaData object must be fully defined
before the Adobe Launch include.But where there's a will, there's a
way:You may be able to take a different approach to this, by thinking
about what ...
Hi chuneek49107156,Because this custom code is not embedded in the
library itself (i.e. the rule isn't triggered by 'Page Top' or 'Page
Bottom'), you are seeing the results of using postscribe to execute the
custom code. It's also important to know that this code is executed
outside of the timing control of Launch (meaning other Rules and Actions
may happen before this postscribed code fully completes, yikes!
).There's no way I could explain it better than Aaronius9er9er9er: So
I'd recommend rea...
dataLayers don't have to be confined to the specific purpose of "what
the application can expose for you". They can also be created and
managed by you as well.For instance, let's say that your organization
uses ' window.digitalData ' as a dataLayer that the application will
populate for you.You can create your own dataLayer , perhaps '
window.digitalDataLaunch ' , then create your own schema to use within
that object. This will enable you to have your own area to store and
recall data, without w...
^ I believe this is correct. Haven't actually validated that myself, but
makes sense in your scenario here.I would recommend using a few
different methods to store and retrieve this data that would work with
the window (I prefer the approach of a single dataLayer for this type of
info)Local Storage or Session StorageCookies
This kind of error can occur from an incompatibility with prototype.js
and the Analytics Extension & Deployment within Launch. If someone can
chime in and say why there incompatibility exists, that'd be great - I
have not been able to identify where the issue is other than the fact
that some prototype.js versions cause problems on some sites. (I have
not confirmed that using the latest prototype.js fixes all issues or
not, so that's an open question as well)It looks like you've got