Oi Filipe, tenho um protótipo pronto, mas que ainda não está disponível pra uso.

Mas funciona de forma muito parecida com o que você pensou, exceto pela porcentagem, que fica à gosto do usuário.

A idéia é o usuário dono do link curto definir uma % para cada variação de destino presente no link. Tendo essas porcentagens, uso uma técnica chamada Weighted Round Robin, normalmente usada no balanceio de carga, pra escolher qual dos destinos redirecionar o usuário, então, vinculo o cookie de sessão do usuário com o destino obtido.

A desvantagem dessa abordagem, é que quando o usuário limpa os cookies do navegador, pode acontecer dele cair em um novo destino.

Espero que eu tenha conseguido me explicar!

Conseguiu explicar perfeitamente e sensacional! Tanto por linkar a metodologia de distribuiçõa que usa, quanto por também grudar o usuário em um dos destinos e com isso ter resultados mais fidedignos. Parabéns pela implementação meu caro! 🤝

A desvantagem dessa solução não é apenas quando limpa os cookies, né... a pessoa pode acessar de outro dispositivo, com outro navegador, com aba anônima, etc...

Será que faria sentido uma melhoria futura no qual poderia ter a opção de receber uma chave na url? Por exemplo, assim: https://curr.to/3azh6?key=123

Nesse caso, a sua aplicação seria responsável por, dada uma determinada key, retornar sempre a mesma URL (uma operação de hash em cima da key poderia ajudar aqui).

Vantagem:

  • se o seu usuário tiver uma key que faça sentido (por exemplo, id do usuário, id da ordem de pagamento, etc), a funcionalidade irá funcionar independente do cookie.
Essa não é uma desvantagem exclusiva da solução que desenvolvi, mas do Teste A/B mesmo. Quando falamos em usuários logados, isso se resolve com uma chave forte, igual você comentou, como um id de usuário. Mas quando falamos em usuários anônimos, que normalmente serão o público alvo do teste (pessoas que não sabem da existência do Curto, que clicaram no link curto). Por não terem nenhum vínculo com a plataforma, fica difícil ter essa chave forte, talvez a melhor opção seja o IP, que pode ser alterado também com o uso de VPNs. É uma feature muito podeorsa, mas tem esse tradeoff que pode, significativamente, alterar os resultados. Obrigado pela sugestão, isso me deu uma ótima idéia haha!
Se não tiver uma key que faça sentido, acho que não tem muito o que se fazer, mesmo! A ideia foi mais ter uma opção futura de quando o cliente tiver essa key. Ótimo que te deu ideia! Se possível, compartilha aqui :D