In normal A/B tests with Google Optimize, the Activation Event controls when the experiment applies to the users' experience. However, with server-side tests, the application itself determines when the experiment applies and then reports back to Optimize.
So what exactly does the "Activation Event" mean to server-side tests? Does it even matter?
For a more detailed explanation of what I'm looking for, consider the following web application:
<html>
...
<head>
<script>window.dataLayer = window.dataLayer || [];</script>
<script>This script loads in Google Optimize asynchronously</script>
<script>This script loads in GTM asynchronously</script>
</head>
<body>
...
...
...
<script>This script is loaded asynchronously for some users and pushes `experiment_id.variant_id` to the datalayer</script>
</body>
</html>
It's undesirable to have to fiddle around with the exact order that things are loaded in the <head> element, but we're seeing that unless the experiment is pushed to the datalayer before loading in GTM / Optimize, tracking isn't working. I'm assuming that this is because the optimize experiment is set to activate on the PageView tag. PageView is in a race condition with the web application.
Could we perhaps simply change the activation event to something that the web application controls to avoid this race condition?