;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Marina Santa Helena

Venda bom humor para vender melhor, mesmo que seja por Whatsapp

Getty Images
Imagem: Getty Images

Colunista do UOL

26/09/2020 04h00

Esta semana tive contato com um artigo muito interessante relacionando o efeito do bom humor sobre os processos de raciocínio. O artigo toma por base dois estudos cujos resultados indicam que pessoas expostas a situações mais livres e relaxadas, que induzem bom humor, geralmente são mais positivas do que aquelas expostas a ambientes controlados.

Além disso, ele traz provas de que a exposição a tais situações resulta na melhora de lembrança de materiais positivos. Esta descoberta, apesar de parecer até meio óbvia, propõe que o estado de humor serve como um artifício de marketing pelo qual materiais positivos são ados e que este material tem um papel importante e influencia o processo de tomada de decisão, e, dessa forma, o comportamento.

É fato que a indústria da moda, e do consumo em geral, já trabalha com essa lógica há bastante tempo - mas, agora, pensa comigo: será que o que décadas e décadas de estudos acadêmicos e de mercado fizeram para estruturar uma lógica de experiência ao consumidor na loja, uma pandemia em 2020 vai obrigar todo mundo a repensar?

Com as pessoas indo fisicamente menos às lojas, como as marcas vão comunicar suas mensagens e tentar contagiar sua clientela de bom humor?

O que vai substituir o sorriso do vendedor, a música ambiente, a aromaterapia, aqueles mimos todos do mercado de luxo? Novas ações em redes sociais e atendimento ao consumidor nos dão algumas pistas. A mais perceptível delas é, sem dúvida, o Whatsapp.

Enquanto algumas estreantes ainda patinam no formato, há quem já tenha hackeado o perfil do consumidor, inclusive contratando ferramentas especializadas especificamente neste app para cruzar dados e atender ao cliente da forma mais personalizada possível.

Instalado em nada menos que 99% dos celulares do Brasil, o WhatsApp ganhou protagonismo como ferramenta de contato na pandemia. Vendedores deixam a ividade para serem agentes de relacionamento, trazem mais confiança e pessoalidade ao varejo digital. Empresas criam programas de afiliados, integram os produtos ao app, cadastram vendedores e gerenciam tudo por meio de BI (business intelligence).

De acordo com o artigo, são claras as evidências de que pessoas de bom humor tendem a ver o lado mais brilhante das coisas e assim, respondem a estímulos de modo mais positivo. Porém, o inverso também é verdadeiro. Empresas inflexíveis, que não conseguirem se adaptar e entender esse processo rapidamente, podem gerar um efeito ruim e bater a porta na cara de um potencial cliente.

No primeiro texto que escrevi aqui, citei o relatório do site The Business Of Fashion, publicado no início do ano, que traz um panorama da indústria da moda frente às consequências deixadas pela pandemia. De acordo com ele, cerca de 80% das marcas de moda vão precisar lutar para se manter no mercado depois desse ano.

Então, para conseguir lidar com as restrições impostas pela crise e se adaptar às mudanças na economia e nos hábitos de consumo, as empresas precisam dessa flexibilidade de mudar junto e, só assim, se manter de pé quando a poeira baixar.