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

João Branco

O BBB vai começar e eu sei de coisas que você não sabe

Colunista do UOL

20/01/2021 04h00

Não importa se você gosta ou não de BBB, de alguma forma vocês vão se esbarrar nos próximos cem dias. O programa, que há duas décadas invade a nossa TV, expandiu a sua cobertura e agora nos acompanha também o tempo todo nas redes sociais, na home dos portais e nos grupos de zap. Não estou exagerando: em 2020 o programa teve mais de 270 milhões de menções no Twitter, dez vezes mais que a edição anterior.

As novidades no formato do programa e a pandemia ajudaram a emissora a alcançar o recorde histórico nas votações e a expressiva audiência média diária de 37 milhões de pessoas. E isso atrai patrocinadores, fazendo a roda girar novamente.

A lista de participantes desse ano já foi divulgada e todos estão na expectativa do que vai rolar. Eu não faço ideia, mas, se o tema da redação do Enem fosse o BBB, eu escreveria sobre um ponto de vista que vai além do óbvio: o dos marketeiros anunciantes.

Até agora, dez grandes marcas já confirmaram presença como patrocinadores: McDonald's, Avon, Piay, Americanas, C&A, P&G, Amstel, Seara, Above e Organnact.

Os valores desses pacotes já divulgados apontam a R$ 530 milhões em publicidade —algo perto de R$ 50 milhões em média por marca (um valor muito importante para qualquer uma dessas empresas).

O histórico mostra que, além desses, um punhado de outros anunciantes também deve entrar no projeto (como a Coca-Cola, que já confirmou presença na sala de cinema dos brothers). Ou seja, ninguém duvida que o programa pode arrecadar fundos na casa do bilhão.

Mas qualquer comerciante que precisa vender o mesmo projeto todo ano sabe que ele só vai dar certo se os clientes estiverem satisfeitos. Isso significa que o BBB tem que dar muita audiência de novo. E que os patrocinadores precisam estar felizes com a sua exposição lá.

Você quer ter um cheiro do que vai acontecer na casa? Olhe para as marcas que estão anunciando. Tente perceber o seu perfil e as suas situações no mercado. Cada uma delas fez uma aposta pesada. E precisa fazer esse investimento render. Estamos falando de marcas de batom, escova de dentes, xampu, barbeador, cerveja, roupas, Big Mac, refrigerante, sistema de pagamentos, app, e-commerce e comida congelada. O que será que elas estão planejando?

Acredite em mim: neste exato momento, cada uma dessas empresas está fazendo os seus pedidos à emissora para ter o retorno que deseja. Elas definem juntas as provas, festas e dinâmicas da casa. Isso influencia significativamente o programa e pode mudar as interações com o público, os prêmios, desafios, as votações e até os detalhes como o big fone, as roupas, os horários ou o confessionário.

Vou parar por aqui porque não tenho as pretensões de ser um "Mister M" que conta todos os segredos do marketing. Mas tenho certeza de que você vai se lembrar desse texto daqui a algumas semanas, quando reparar em alguma novidade que essas marcas trouxeram.

Na vida real, os reality shows são marketing shows. Tanto para os participantes, quanto para os anunciantes. Ganha o prêmio quem souber usar melhor essa oportunidade.

Olho na fechadura - Felipe Tomazelli - Felipe Tomazelli
Imagem: Felipe Tomazelli