We sometimes inject custom code (ie: offer or banner) into our website that have backend calls to display dynamic data (not Adobe related). The issue we currently have is that because the webpage and the Target injection happen async, sometimes (especially on first load in all browsers, and in IE11) Target code is injected before the page finishes loading all the JS, causing the dynamic data not to show. The only way we are able to get around this issue is to set a timeout in the Target custom code of 3+ seconds so that Target holds on injecting the code until most or all of the page JS is loaded. This is not great for performance.
Is there a way through Target to wait until page load is complete before Target code is injected? or can you suggest a way to get around this issue?
I dont think target have any inbuilt functionality like this. Also setTimeout can fail in some cases like page not loaded within 3 secs. You can try using setInterval or page load event to fire your code.