;(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

Com Anitta, Rappi amplia ações no cenário musical

Clipe já conta com mais de 18 milhões de visualizações no YouTube - Divulgação
Clipe já conta com mais de 18 milhões de visualizações no YouTube Imagem: Divulgação

Renato Pezzotti

Colaboração para o UOL, em São Paulo

27/02/2019 11h38

A Rappi, empresa de entregas presente no Brasil desde 2017, amplia seu número de ações de marketing no cenário musical. A marca participa do novo videoclipe de Tropkillaz, "Bola Rebola", com participação especial de Anitta. O vídeo já tem mais de 18 milhões de visualizações no YouTube.

É a terceira vez que a marca realiza uma ação desse tipo: a startup participou dos videoclipes "Nunca Foi Sorte", de Luísa Sonza, e "Café da Manhã", de Enzo Paixão. Nas três ocasiões, a Rappi é representada por um de seus entregadores.

"Como marca, buscamos iniciativas que tenham conexão com nosso público. Por ser um delivery que vai muito além de restaurantes, conseguimos nos encaixar nas mais diversas oportunidades e estamos sempre procurando as melhores delas", afirmou Fernando Vilela, diretor de marketing da Rappi no Brasil.

Segundo o executivo, ações como essa e promoções recentes da empresa têm nascido de ideias em conjunto com outras marcas. "Nos reunimos com o parceiro e criamos os projetos em conjunto.".

A Rappi atua em 15 cidades brasileiras --além de grandes capitais, está em municípios como Campinas, Ribeirão Preto, São José dos Campos e São José do Rio Preto. Com mais de 13 milhões de s no mundo todo, a empresa ultraa 700 mil usuários no Brasil.

Bola do jogo

A startup também tem feito ações no mundo do futebol. Na final da Copa São Paulo Jr, disputada no estádio do Pacaembu no mês ado, um entregador foi ao gramado para levar a bola do jogo ao juiz, com os times já prontos para iniciar a partida.

Os vendedores do estádio e os gandulas da partida utilizaram bonés da marca, que também foram distribuídos para 4.000 torcedores. A startup ainda ofereceu o prêmio de melhor "entregador" do torneio (o jogador que mais deu es para gol no campeonato) a Antony, meia do São Paulo Futebol Clube.

Desde outubro de 2018, a Rappi patrocina o Fluminense Football Club, do Rio de Janeiro. O acordo vale até o final do Campeonato Carioca deste ano.

Na paradinha de Anitta

O videoclipe de maior sucesso de Anitta é "Paradinha", com mais de 300 milhões de visualizações no YouTube. Lançado em maio de 2017, o single contou com uma ação especial da marca de snack Cheetos, da PepsiCo.

Segundo Daniela Cachich, vice-presidente de marketing da multinacional, a relação com a cantora começou pela observação das preferências da artista. "Anitta declarou que era fã de Cheetos e sempre fazia alguma menção à marca comendo o snack", declarou, à época.

Assim, a companhia procurou a cantora para entender como ela enxergava a marca e quais oportunidades de negócios poderiam surgir.

No mesmo clipe, a cantora recebeu o apoio de Samsung --que patrocinou o vídeo com os bastidores da gravação, realizada em Nova York.