I have a Data Element set on every hit to generate Page Name. However, there are thousands of hits where it comes through as unspecified, and I don't understand why. Are data elements asynchronous, or is there something else going on?
This is what I have set up:
Processing rule that copies Page Name to eVar61
12% of hits are coming through as unspecified, with no pattern
All hits set Page Name using a Data Element
Data Element pageName is set as: return _satellite.getVar('pageDomain') + ',' + _satellite.getVar('siteCountry') + ',' + _satellite.getVar('siteSection');
Data Element siteSection is a very long function, that I believe is at the root of the problem. Is it not getting enough time to complete?
This thread makes me think a solution could be setting Page Name as a condition to the pageview hit.
If I understand your case correctly, the unspecified value appears not in the Page dimension, but in the eVar61 dimension. If that's accurate, I guess this is because not all the server calls are processed with the original pageName value — s.tl() calls may be processed the way that despite you can see the pageName value sent from the page, it may not exist when the processing rules start working.
To verify this hypothesis consider creating a report in analysis workspace where the freeform table contains eVar61 as a dimension, and the following metrics in the columns:
Download links instances
Exit links instances
Other links instances
If you see that "unspecified" equals 0 Page Views and N instances, then it would prove the hypothesis.
I think this behaviour of Processing Rules could be driven by the architecture of how s.t and s.tl calls are being processed. The latter should not take into account the page at all and that's why the pageName value gets ignored immediately (or deleted from the beacon/ payload by design) in the data workflow of s.tl calls.
Just in case, do not try to populate the pageName with the dynamic variable syntax as the result will be the same as with the processing rules. The eVar61 should be set with the actual value.
That makes sense, thanks again. I made this change, and it appears to be working. eVar61 is now always set with the value of pageName.
However, I do still have instances where there are more Visits than Page Views which makes me concerned that the pageName isn't being set on every s.t() call, but I don't know how that is possible. This is what I have configured:
Have you had instances where data elements are not populated before the beacon is fired?