I am struggling to understand the logic behind order of operations. According to documentation when Vendor Tags are tiggered the following steps are executed:
In my case, the extension contains doPlugins function and plugins for the AppMeasurementJS. I use several plugins to setup values (e.g. get previous page name values). So at the extension execution I assign to the UDO variable (e.g. previousPageName) a value, utilizing the getPreviousValue plugin.
While the UDO variable (previousPageName) is mapped to the prop5 in the AppMeasurement tag, the value is never populated in the page view server call. Based on the above order of operations, I would expect that UDO variable gets the value in the extension, then the mappings are applied and finally the server call is fired.
I know that there are workarounds (e.g. use doPlugins to directly assign the value to prop5, or map the cookie value to data mappings) but I am really interested to understand the logic and also be able to re-use the UDO object for other tags.
I too use an extension for some doPlugIns code but it works fine.
For clarity, how are you doing the mappings? From your post, am I correct in assuming the code for your doPlugIns is in an extension and the mappings in the Tag?
If so, move the mappings to the doPlugIns extension and it should work.
Here's a screenshot in case it's helpful ...