Importante: Este texto complementa a documentação técnica da Flowsense.
Além de informações dos usuários capturadas no mundo físico, seu comportamento dentro do app também pode trazer insights valiosos, seja para análises de métricas ou para alimentar uma régua de comunicação em Jornada do Usuário e Automação de Campanha. Um in-app event é um pequeno registro de alguma ação tomada pelo usuário no app. No entanto, esse registro é altamente customizável, podendo incluir quantas informações forem relevantes, bem como a localização do usuário.
Enviar um in-app event é tão simples quanto fazer uma chamada de função no SDK da Flowsense:
import com.flowsense.flowsensesdk.InAppEvent.InAppEvent;
new InAppEvent().SaveAndSendEvent(getApplicationContext(), "event");
É importante tomar cuidado com o posicionamento das chamadas no código do app. Como o envio do evento deve estar atrelado à alguma ação ocorrida internamente no app, como por exemplo o aparecimento de uma tela, uma compra, ou pressionar um botão, é importante garantir que a chamada esteja sendo feita o número correto de vezes, evitando que a mesma se insira em um loop indesejado. Assim, consegue-se garantir a integridade dos dados e das análises e réguas de comunicação atreladas a eles.
No entanto, é possível incluir ainda mais informações e metadados para enriquecer esse evento. Isso pode ser feito simplesmente adicionando pares de chave-valor à chamada para o SDK, que estarão atrelados ao evento enviado:
HashMap<String, Object> map = new HashMap<>();
map.put("nomeBotaoClicado", "Botao Enviar");
map.put("dataClique", new Date());
new InAppEvent().SaveAndSendEvent(getApplicationContext(), "clique_de_botao", map);
É importante notar que, além dos metadados citados, os in-app events também podem coletar informações de geolocalização. Primeiramente, é importante apontar que para que isso aconteça, o usuário deve ter concedido permissão para que o app colete sua localização. Dessa forma, é interessante desenhar o fluxo de navegação do aplicativo de modo que a requisição de permissão ocorra antes das telas que coletam in-app events importantes, de modo a não perder dados valioso.
De forma automática, todos os eventos coletados enviam, se possível, a localização mais recente coletada pelo celular, que pode ou não estar atualizada em relação ao momento da coleta do in-app event. No entanto, também é possível forçar o aparelho a coletar a localização ativamente no momento do envio do evento, utilizando uma função diferente:
new InAppEvent().SaveAndSendGeolocalizedEvent(getApplicationContext(), "clique_de_botao", map);
É importante notar que a coleta ativa de localização pode gerar avisos ao usuário, se executada em plano de fundo, o que pode causar dúvidas sobre a necessidade da coleta desse dado naquele momento. Além disso, se executada de forma excessiva, pode resultar em um uso maior de bateria. Logo, é importante medir os prós e contras de se coletar ativamente a localização, bem como em quais momentos, de acordo com a sua estratégia.
Texto de: Felipe Caracciolo Gonçalves