Engage EMEA 2010 - Data Collection PerformancePresentation Transcript
Data Collection Performance Bruce Kenny, Webtrends Eric Butler, Webtrends
Data Collection Philosophy Always on High Performance View slide
Webtrends Data Collection Webtrends On Demand global data collection footprint Globally distributed DNS to ensure the fastest response for first requests Regional data centers to provide optimal response times Data collection traffic is load balanced across data centers to ensure the fastest response for each individual visitor View slide
New Asynchronous Functionality Webtrends innovationIntroducing a new callback method for the cross-domain "wtid.js" callback, allowing for that call to be non-blocking to the rest of the page load Webtrends performance Decoupling of the cross-domain "wtid.js" callback, allowing Webtrends to host that functionality closer to visitors
The async tag allows the “code” to be executed asynchronously for browsers that support HTML5. But because we are also attaching the script-file to the DOM on older browsers we don’t stop the parser/render. But the DOMContentLoaded (aka onload) event will be held up for pre-HTML5 browsers. This is still a performance increase since the downloading of the tag happens in parallel to the page rendering.
Technical FAQs If the tag is being loaded Async and I have hard-coded dcsCollect and dcsMultitrack calls doesn’t this introduce a race-condition?
Technical FAQs Do we still place the tag at the bottom of the Body tag? No, you should place the tag in the Head tag. Since you want the process to begin as early as possible. For low bandwidth devices (like smart phones) this gives you a better chance of registering the hit if the user clicks a link before the pages has finished loading. We are still doing performance testing to find the optimal place in the head to place the tag (if it should be one of the first scripts or one of the last scripts).
Technical FAQs Will the async tag be usable from Flash? Yes, but any existing Flash(External Interface) calls will need to be modified to push items onto the queue instead of calling our existing dcsXXX methods.
What happens if the call to wtid.js is unreachable for some reason? Nothing… No error, no hits, no wasted CPU cycles, just nothing…