Os desafios ao interpretar sessões em tempo real
Sessão. Um termo tão simples, mas que pode ter múltiplas definições. Para um terapeuta pode significar 40 minutos com seu paciente. Para um cinéfilo, algumas horas numa poltrona assistindo um filme. Para desenvolvedores e profissionais de produto e growth, no entanto, ganha ainda mais significados: uma partida de um jogo, o uso ininterrupto de serviço, um dia de uso de um app, e por aí vai.
Session e sessionization, o ato de agrupar atividades em sessões, são termos que ganharam grande espaço no vocabulário de quem quer analisar e entender a jornada do consumidor online. Nesse post, explicamos como a nossa tecnologia permite criar jornadas que se adaptam em tempo real às necessidades de cada cliente.
Mas afinal, o que é sessionization?
Sessão é uma forma de agrupar uma sequência de atividades correlacionadas. É como um novo capítulo de um livro que você escreve toda vez que entra em um site ou usa um app. E o título desse livro é A Jornada do Usuário.
Quando você encerra uma sessão, está colocando um ponto final no capítulo que narra uma interação específica com um site ou aplicativo.
Se fosse no mundo offline, seria como a visita a uma loja. Você entrou e saiu com algum produto? Só olhou e pulou fora? Saiu prometendo que compraria na volta? No mundo online, no entanto, a relação entre as interações podem não ser tão claras como visitas a lojas físicas.
É por isso que precisamos de uma heurística ou lógica para definir quando uma sessão começa e termina. Para ficar mais claro o desafio, imagine o seguinte cenário:
- 10:00 – Um usuário acessa um e-commerce e busca por um determinado tênis
- 10:02 – Passa 5 minutos lendo sobre o tênis
- 10:07 – Fecha a aba sem comprar nada
- 10:30 – Retorna ao site e adiciona o produto ao carrinho
- 10:35 – Fecha a compra
Olhando para essa narrativa, podemos afirmar que todas as atividades fazem parte de uma mesma sessão? A resposta é: depende.
Para alguns sites, o fim de uma sessão é marcado pelo tempo que se passou entre uma atividade e outra.
No exemplo anterior, se esse intervalo fosse de 35 minutos, então todas as atividades fariam parte da mesma sessão. Mas e se fosse de 15 minutos? Nesse caso, teríamos duas sessões. A primeira sessão incluiria tudo que aconteceu antes de adicionar o produto ao carrinho e a segunda sessão seria a compra em si.
A verdade é que não existe uma forma única que funcione bem para todos os casos. No mundo dos games, onde o cenário é muito mais dinâmico, 30 minutos entre uma partida e outra podem ser uma eternidade.
É por isso que na Croct o modelo de sessionization é flexível o bastante para comportar os mais diversos cenários. Na configuração da sua conta, você pode escolher a lógica que melhor atende à necessidade do seu negócio.
E qual é a dificuldade em definir sessões?
Agrupar atividades em sessões pode parecer trivial quando você está olhando para coisas que aconteceram no passado. Se você é versado em SQL, Python, Hive ou Pig e a lógica de agrupamento não for tão sofisticada, você até consegue fazer uma análise agrupando eventos por sessão em poucos passos.
Porém a dificuldade vem quando você precisa tomar uma decisão em tempo real: cada interação do usuário pode ser a última ou apenas mais uma de muitas que ainda estão por vir.
O desafio é ainda maior se sua aplicação funciona em modo offline: imagine que um usuário embarca em um voo usando seu aplicativo. Logo antes de decolar, entra em modo avião, e passa a viagem toda usando seu app. Quando desembarca, volta a ficar online. Como esses eventos devem ser agrupados? Isso é o que chamamos de late-arriving events (ou eventos atrasados), e nossa plataforma sabe exatamente o que fazer em casos assim.
E como a Croct ajuda nisso?
Nossa plataforma permite que você escolha uma expiration policy (ou política de expiração) que melhor atenda às necessidades do seu negócio. Em resumo, uma política de expiração é uma regra que define quando e por quê uma sessão deve ser considerada expirada.
Política de expiração à meia noite
A chamada midnight policy (ou política de expiração à meia noite) bate o ponto e encerra a sessão toda vez que o dia acaba. Um novo dia, uma nova sessão, simples assim. É útil para quem quer ter uma visão do site lado a lado com o calendário.
Política de expiração por inatividade
Já a timeout policy (ou política de expiração por inatividade) segue uma linha diferente. Uma sessão é dada como encerrada quando o tempo entre uma interação e outra é maior que o intervalo configurado na conta. Essa é a lógica adotada como padrão pelas principais plataformas de web analytics.
Tempo de carência
Junto a tudo isso, você ainda pode especificar um grace period (tempo de carência). Essa opção define por quanto tempo o sistema vai esperar por eventos atrasados.
No exemplo do uso de aplicativo durante voos, se o período de carência fosse de 4h, todos os eventos ocorridos nas primeiras quatro horas de viagem seriam corretamente atribuídos à sessão que começou antes de entrar no avião. Esse tempo também pode ser configurado de acordo com a necessidade do seu negócio.
Conheça táticas que nossos clientes usam para aumentar suas conversões em +20%.
Qual a importância de sessionization para um negócio?
Uma vez que as atividades são agrupadas em sessões, a tomada de decisão fica muito mais fácil. Sem sessões, você precisaria pensar em todos os possíveis casos e rapidamente perderia o foco no que é realmente importante: a experiência do usuário. Perguntas como "essa é a primeira visita do usuário?", "a visita aconteceu recentemente?" ou "o que ele fez logo antes de comprar um produto?" são importantes para determinar o conteúdo a ser mostrado ao usuário.
Além disso, sessões permitem criar "sumários" da experiência do seu usuário com estatísticas como número de visitas, tempo de sessão, número de pedidos, entre outras.
Para ficar ainda mais tangível, imagine que você queira fazer uma personalização no seu site para usuários que já o visitaram antes. Para implementar algo simples assim, você precisaria ao menos:
- Identificar o usuário entre visitas
- Determinar uma lógica para definir o começo e o fim de uma visita
- Incrementar o número de visitas a cada nova sessão
- Criar um serviço para retornar o número da visita atual.
Isso facilmente exigiria alguns sprints do seu time de tecnologia, mas com a Croct esse processo é tão simples quanto escrever user is returning. Com base nas sessões, nossa plataforma é capaz de responder essa e muitas outras perguntas de forma simples, ágil e eficiente.
Quer saber mais sobre como é simples usar dados sobre sessões de usuários para personalizar conteúdo com a Croct? Crie sua conta gratuitamente e explore nossa plataforma.