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

Podcast

Mídia e Marketing

Entrevistas com grandes nomes do marketing, propaganda e criatividade no país


Mídia e Marketing #50: Washington Olivetto

Renato Pezzotti

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

25/08/2020 04h01

O publicitário Washington Olivetto é o entrevistado do 50º episódio do podcast Mídia e Marketing, publicado hoje (25).

No papo, Olivetto fala sobre o novo momento da comunicação, analisa a 'crise de criatividade' que a propaganda tem enfrentado e escolheu suas melhores campanhas. O publicitário, um dos maiores nomes da propaganda brasileira, também dá sua opinião sobre como as marcas devem gerir sua comunicação em tempos de crise.

"Neste momento, as marcas têm que ser mais informativas e menos persuasivas. Aquelas marcas que se preocuparem em ser mais generosas com o consumidor vão fazer um papel mais bonito. É o momento da informação. Não é o momento da persuasão, apesar de eu ser um apaixonado por ela", declara (no arquivo acima, este trecho está a partir de 1:12).

Morando em Londres desde 2017, o publicitário comenta como tem mantido sua proximidade com o Brasil. "Neste momento, talvez, esteja trabalhando mais do que nunca, mesmo seguindo a quarentena. Uma coisa não deixei de ter: minha proximidade afetiva com o Brasil. Fiz algumas lives com amigos e elas foram se multiplicando. É um prazer. Hoje, nada mais importante do que o jornalismo brasileiro. É muito prazeroso conviver com esse universo da comunicação, mas agora, mais do que nunca, temos que estar ligados no bom jornalismo. É isso que faz a nossa cultura" (a partir de 4:41).

Criador de campanhas de sucesso como o "Primeiro Sutiã", de Valisere, o "Garoto Bombril" e o cachorrinho da Cofap, foi um dos principais empreendedores da propaganda nacional, ao fundar, em 1986, a W/GGK —que, mais tarde, se transformaria na icônica W/Brasil.

Perguntado qual a sua melhor campanha, Olivetto despista. "A vida profissional foi muito generosa comigo. Sob o ponto de vista mais analítico, o melhor trabalho de campanha que fiz foi com Bombril. As duas peças individuais mais brilhantes foram os [comerciais] "Primeiro Sutiã", de Valisere e "Hitler", para Folha de S. Paulo. Agora, me diverti mais vendo a repercussão do cachorro da Cofap", diz (a partir de 15:47).

Sobre um possível "novo capitalismo", que alguns comentam, Washington é enfático. "A gente vai ter algumas mudanças, mas não tanto quanto as que estamos comentando. Tomara que tenhamos a capacidade de perceber que a natureza ficou chateada com a gente. Se isso significa um novo capitalismo? Talvez. Se isso significa uma nova publicidade, um novo jornalismo? Talvez. Melhor do que isso, seria legal que isso significasse um novo comportamento", afirma (a partir de 24:50).