;(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
Logo Pagbenk Seu dinheiro rende mais
Topo

Na pandemia, cliente do iFood fez 983 pedidos de comida em seis meses

O iFood, empresa de delivery de alimentos, registrou aumento de 277% nos pedidos por pães - Crédito: iFood
O iFood, empresa de delivery de alimentos, registrou aumento de 277% nos pedidos por pães Imagem: Crédito: iFood

Colaboração para o UOL

15/10/2020 18h27

Os brasileiros mudaram seus hábitos desde o início da pandemia. O iFood divulgou números de março a agosto deste ano, que ajudam a entender o comportamento do consumidor no período. Entre o aumento no consumo de alimentos como pão, sobremesas e frutos do mar, há quem se destaque na procura pelo serviço de entregas. Um cliente de São Paulo fez 983 pedidos pelo aplicativo de delivery de comidas em seis meses.

A média do cliente recordista foi de 5,3 pedidos por dia. A empresa ressalta mais três consumidores, que não economizaram durante o período quando o assunto foi comida via delivery. Um do Rio de Janeiro somou 879 solicitações. Outro, este também de São Paulo, fez 817 chamados. Por fim, um consumidor do Paraná terminou agosto com 797 pedidos pelo aplicativo.

O principal responsável pelo aumento do número de chamados para delivery de alimentos via iFood foi o café da manhã. De março a agosto, os pedidos neste horário do dia aumentaram 232% no fim de semana e 145% de segunda a sexta.

Com o hábito de ir à padaria deixado de lado por muitos, o aplicativo registrou aumento de 277% nos números de pedidos por pães. Quando se fala em sobremesas, a empresa de delivery registrou 203% de solicitações a mais. Com alta de 148%, em chamados para almoços e jantares, os pratos de peixes e frutos do mar também se destacaram no período.

O alimento mais pedido pelos clientes do aplicativo, no entanto, foi o tradicional hambúrguer. A esfilha ficou na segunda posição.

O iFood registrou 30,6 milhões de pedidos em março. Em agosto, último mês do estudo, este número disparou para 44,6 milhões em todo o país. Sem efeito do coronavírus, a empresa de delivery contabilizou 26,6 milhões de chamados em novembro de 2019.

A demanda dos consumidores durante a pandemia também contribuiu para que novos negócios migrassem para o aplicativo. Em março, o iFood contava com 160 mil restaurantes registrados. Em agosto, a plataforma já somava 236 mil estabelecimentos em sua plataforma.