Este projeto piloto usando rastreadores de localização para analisar o comportamento dos visitantes foi implementado em dois supermercados com grande fluxo de clientes. O Chefe do Departamento de TI representou o supermercado e forneceu todas as permissões para instalar e manter o projeto piloto.
Portanto, tínhamos permissão para conexão externa do nosso sistema ao FTP do supermercado e aos seus sistemas de servidor, onde todos os recibos do supermercado eram registrados, permitindo-nos usar esses registros.
A Ideia
A ideia principal era enviar ofertas promocionais direcionadas aos visitantes do supermercado. Essas poderiam ser ofertas de longo ou curto prazo, enviadas sempre que o supermercado precisasse vender alguns produtos selecionados urgentemente.
Inicialmente, a principal tarefa era obter informações de cada recibo do comprador. Mais tarde, essas informações formaram um banco de dados comum de preferências de produtos para milhares de clientes da loja.
Em outras palavras, o comprador escolheria uma variedade de produtos, pagaria por eles no caixa e 30-40 minutos depois teríamos as informações sobre suas compras em nosso serviço.
A ideia técnica era instalar equipamentos diretamente na entrada do espaço varejista. A intenção aqui era rastrear as entradas de clientes regulares.

Fluxo de implementação do projeto

- O visitante entra na loja. Seu cartão foi escaneado pelo leitor na entrada, mas, como se mostra, não sabemos nada sobre ele – não há informação alguma. Mas justamente o ponto é que depois desse visitante 'limpo' fazer uma compra, nosso sistema em nuvem é atualizado em até meia hora com os dados deste visitante – e temos a sensação de suas preferências de compra.
- Processamos essas informações e as salvamos em um banco de dados comum. Estamos criando um grande grupo de perfis de usuários, permitindo trabalhar com grandes volumes de dados.
- Por exemplo, se o cliente X compra leite de uma marca específica e depois compra iogurte produzido pela mesma fabricante, então isso é reconhecido como parte do grupo de produtos lácteos. Em seguida, esse grupo de produtos lácteos pode ser compatível com outros grupos de produtos por várias razões (a informação é analisada por nós). Isso significa que podemos enviar uma oferta de carne defumada ao comprador X, e podemos ter confiança, baseada em nossa análise extensa, de que o cliente comprará essa carne com probabilidade de 70%.
- As probabilidades são calculadas após examinar milhões de recibos. Dessa forma identificamos certas interconexões entre compras, o que era importante para maximizar as vendas.
- A etapa final desse processo todo é a própria oferta, a promoção. Quando o cliente X visita a loja alguns dias depois, já sabemos qual oferta enviar (se tal proposta tiver sido preparada pelo departamento de marketing, é claro).
O Servidor de Notificações recebe dados continuamente do Servidor de Promoção de Marketing, então todas as novas ofertas do supermercado que precisam ser mostradas a um grupo específico de visitantes com cartões são implantadas no momento certo.

Marketing Por Trás Do Serviço
O departamento de marketing nos envia os dados de cerca de 2000 itens. Tipicamente, o departamento de marketing coloca um determinado período de tempo para quando anunciar um grupo específico de produtos.
Por exemplo, o comprador Y entra na loja e, levando em conta nossa análise do seu comportamento de compra passado, podemos concluir que ele gosta de vinho e batatas fritas. Transferimos essa informação para o Servidor de Promoção de Marketing. Então os especialistas do centro de marketing olham se há alguma oferta disponível para esse produto que possa ser anunciada ao visitante Y. O centro forma o texto da mensagem publicitária, dá um sinal ao Servidor de Notificações e finalmente envia uma mensagem a Y com uma oferta publicitária. O ponto é que o serviço de marketing sabe qual oferta enviar. Simplificando, uma oferta pode ser projetada para amantes do leite, enquanto outra pode ser enviada aos fãs de peixe.
O Servidor de Promoção de Marketing funcionou com base em Node.js em conjunto com MongoDB. Também mantinha todas as informações que o supermercado compartilhou sobre empresas publicitárias.
Em seguida, o algoritmo de frequência entra em ação – a quem mostramos mensagens com mais frequência, a quem menos frequentemente? Para não incomodar os compradores aos quais enviamos mensagens com muita frequência, diminuímos um pouco e enviamos apenas para aqueles que receberam nossas mensagens raramente.

Implementação técnica
Leitores de alta penetração foram instalados sobre as faixas nos supermercados; inicialmente usamos leitores RFID RQ3. Os visitantes do supermercado tinham cartões de fidelidade com tags RFID únicas. O próprio cartão era aplicado no caixa ao fazer compras por um determinado valor, ou conforme qualquer outro programa comercial.
Como resultado, quando um comprador potencial entrava no supermercado, já tínhamos suas informações à mão.
A ideia era transferir imediatamente todas as ofertas comerciais da loja para celulares e aplicativos. No entanto, isso reduziria significativamente o número de visitantes que poderiam usá-lo. Essa situação elevou o padrão: precisávamos implementar a melhor solução para que até os idosos também pudessem usar o serviço comercial. Então o desafio do supermercado para nós foi cobrir pelo menos 60% de todos os clientes que estavam na loja.
Consequentemente, o canal de comunicação em massa deveria se basear em notificações SMS ou USSD.
Um visitante entraria na loja e seu cartão seria escaneado com um leitor especial. Nosso servidor então receberia um sinal (via aplicação baseada em Node.js, que foi substituída por Python), levantando a questão de se uma promoção seria útil neste caso. Havia um padrão para o cliente ou não? … Se houvesse uma oferta para o comprador, ele receberia um SMS.
Onde todos os dados eram armazenados?
Usamos CouchDB para armazenamento de dados. Mais tarde mudamos o sistema para Couchbase para mais conveniência.
Como foi organizado o trabalho dos microserviços? O processamento de dados, assim chamados perfis, modelos e padrões pertencentes aos usuários – este módulo trabalhava diretamente com o banco de dados e também analisava seus dados. Aqui usamos uma combinação de lógica + Python + Couchbase. Ou seja, o protocolo MTP foi instalado – serviços externos estavam se comunicando com ele, e um API Restfull regular baseado em Node.js foi instalado. Ele recebia todas as solicitações das tags vindas dos nossos servidores Arduino, que passavam por canais 3G. A tarefa da API RestFull era apenas obter dados e nada mais. Aqui ela transferia as informações via Protocolo MTP para o armazenamento.
Em outras palavras, havia um certo número de tarefas, e o serviço que trabalhava com o banco de dados recebia-as como uma fila para processamento (que), onde todas as tarefas eram processadas de forma síncrona.
O servidor de notificação estava conectado ao Twilio, bem como ao servidor de notificações push. Sua tarefa era obter o número do telefone ou UID do dispositivo móvel e enviar o texto designado.
Tínhamos uma conexão com o serviço Python em segundo plano, que se conectava periodicamente aos servidores FTP Node.js, e carregava centenas de milhares de registros e hashes extras. Cerca de um milhão de registros foram carregados e armazenados no Couchbase. Uma vez por hora processava uma certa quantidade de dados para criar um certo grupo de usuários com as preferências claras dos clientes.

A Próxima Etapa Da Integração E Teste
Na segunda fase de desenvolvimento, tínhamos que instalar mais leitores em diferentes zonas para enviar o conjunto de ofertas. O objetivo principal, conforme estabelecido pelo supermercado, era fornecer aos promotores canais de comunicação adicionais sem sobrecarregar o espaço comercial com anúncios.
A gestão do supermercado queria ver quão eficaz seria essa campanha publicitária em comparação com métodos de marketing alternativos (por exemplo, banners, folhetos, etc.).
Precisávamos rastrear como a mensagem publicitária afeta o resultado da compra. Por exemplo, mensagens publicitárias com o texto hipotético “compre linguiça” foram enviadas para cerca de 10 mil clientes potenciais em um determinado período. Era necessário calcular quanto de linguiça foi vendido durante esse período, comparado aos resultados anteriores. Dependendo dos resultados obtidos, poderíamos tirar certas conclusões. Uma analogia ao modelo Cost-Per-Action online na internet poderia ser aplicada aqui onde o cliente só paga quando ações específicas são realizadas pelos usuários/visitantes.
Para testar essa fase, 20 visitantes do supermercado receberam tags RFID, e sua tarefa era simular o comportamento de visitantes comuns ao supermercado.
Resumo
Embora isso possa soar futurístico, recomendações/promoções orientadas ao visitante aparecerão em todos os grandes supermercados varejistas no próximo ano. A Amazon já provou que muitos processos no varejo podem ser automatizados com suas lojas Amazon Go . A atenção e fidelidade dos visitantes é o 'tesouro de ouro' pelo qual as empresas modernas agora competem.
