If the experiment hydrates after first paint, you're measuring a different experience than the one your visitor actually had. Bounce looks worse. Winners look noisier. You ship the variant that won the flicker, not the product.
Run the split at the edge. Same HTML on first byte, assignment before the page ever renders. That's the only way a Next.js test is real.
If you're still wrapping buttons in client-only experiment providers, this is why your data feels mushy.