;(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 #42: Luana Genót, diretora do Instituto Identidades do Brasil

Mais Mídia e Marketing
1 | 25

Renato Pezzotti

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

30/06/2020 04h01

Luana Genót, diretora-executiva do Instituto Identidades do Brasil (ID_BR), é a entrevistada do podcast Mídia e Marketing, publicado hoje (30).

No papo, Luana fala como a publicidade pode ajudar na luta pela promoção da igualdade racial e como as empresas podem conectar a igualdade racial aos seus negócios. Entre outros assuntos, a executiva também comenta sobre o caso recente da Bombril, que foi acusada de racismo por manter, em seu portfólio, um produto chamado "Krespinha".

"Não podemos falar só da Bombril como bode expiatório. Todas as empresas estão com os tetos de vidro expostos, pela falta de investimentos na temática e pela falta de negros em cargos executivos. O produto é só fruto da falta dessa estrutura. Tem existido uma revisitação pública do portfólio de muitos produtos em diversas áreas", declara (no arquivo acima, o trecho está a partir de 11:05). Empresas como Pepsico, Quaker, Mars e L'Oreal já anunciaram mudanças em alguns dos seus produtos.

Para a executiva, as iniciativas de igualdade racial precisam ter mais força dentro das empresas. "A gente até vê uma movimentação nas empresas, um certo crescimento na diversidade racial, mas não nos cargos de liderança. Isso faz toda a diferença. A gente tem poucos negros com o poder da caneta. Precisamos de pessoas que cuidem da temática, dispostos a fazer que isso aconteça num prazo mais enxuto" (a partir de 5:54).

Luana cita uma ação de marketing quando trabalhava na agência norte-americana Burrell Communications, de Chicago, como exemplo do que pode ser feito na publicidade.

"Atendíamos uma grande empresa que possui desde produtos de beleza a fraldas para bebês. Eles fizeram uma grande campanha porque performavam mal entre clientes negros. Um dos frutos dessa ação foi ver que o ticket médio entre mulheres negras aumentou 5 vezes. Mas não foi só simplesmente mudar o layout dos produtos. Mudaram os grupos de pesquisa, a campanha foi chefiada por pessoas negras, o processo afirmativo foi muito intenso. Se eu quero me conectar com a população negra, preciso enegrecer toda a nossa cadeia de trabalho", declara (a partir de 15:15).

"Por transitar em muitas agências e clientes, tenho visto que essa mudança tem sido muito superficial. A representatividade se encontra no filme publicitário, mas não se encontra na agência. Mesmo que o comercial seja protagonizado por pessoas negras, se ele não for criado por negros, talvez tenha uma trama que não seja tão desvinculada de estereótipos", afirma (a partir de 18:25).

Luana também explica como funciona o ID_BR —e como o instituto pode ajudar empresas na promoção da igualdade racial.

"Se eu quero fazer a igualdade racial acontecer, eu preciso separar uma parte do orçamento para fazer isso. Preciso ter metas —e prazos para cumprir essas metas. Com investimentos, metas e prazos, dá para fazer acontecer. Queremos mais do que dizer não ao racismo. Queremos dizer sim à igualdade racial e mostrar boas práticas para inspirar pessoas", afirma (a partir de 2:44).