The ability to add variables before the s.t call depends on whether DTM or the page is managing the analytics object instantiation (defining the 's' object). If both the 's' object is set at the page level and the s.t() is at the page level, then DTM cannot add variables. In this case, the s.t() would need to occur after the pageBottom() reference in order for DTM to be able to insert variables. However, setting the s.t() after the pageBottom() is not recommended.
If the measurement code (s_code or AppMeasurement code) is within DTM, and the 's' object is controlled in the DTM managed code, then DTM can inject variables set before s.t() on the page. This would work if all the following is true: