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

Guilherme Ravache

OPINIÃO

Texto em que o autor apresenta e defende suas ideias e opiniões, a partir da interpretação de fatos e dados.

Globo acerta ao tirar Faustão do ar antes do fim do contrato

Faustão, que está indo da Globo para a Band - Reprodução / Internet
Faustão, que está indo da Globo para a Band Imagem: Reprodução / Internet

Colunista do UOL

17/06/2021 16h32

Deixar Faustão no ar por mais seis meses com todo o mercado já sabendo que seu contrato não seria renovado oferecia mais riscos do que oportunidades para a TV Globo. Adiantar a saída de Faustão e colocar Tiago Leifert na sua vaga foi o melhor caminho para a Globo. É mais ou menos como tirar o esparadrapo rapidamente para não sentir a dor por mais tempo.

Os contratos comerciais do Domingão já estão fechados e não serão encerrados bruscamente pelos anunciantes mesmo com a saída de Faustão. Já os anunciantes mais próximos de Faustão devem acompanhar o apresentador para a Band independentemente do que aconteça.

Porém, ao trocar Faustão por Tiago Leifert a Globo dá aos anunciantes a chance de descobrir que o domingo pode seguir com a mesma audiência, ou até mesmo com uma audiência melhor.

Se as decisões de renovação dos contratos de publicidade fossem deixadas para quando Faustão saísse no final do ano, sem ter um histórico do domingo sem o apresentador, muitos anunciantes poderiam estar indecisos ou receosos de investir em algo totalmente novo. Poderiam pedir descontos ou mesmo não renovar.

A volta dos que não foram

Além das questões comerciais, seis meses de Faustão no ar em clima de despedida e saudosismo ainda daria mais brilho a Fausto Silva pouco antes de estrear na Band. Agora, Faustão entra na geladeira ao ficar alguns meses sem seu palco na Globo. Quanto menor a exposição de Faustão antes de sua estreia, melhor para a Globo.

Colocar Tiago Leifert no ar ainda oferece vantagens adicionais. A Globo ganha uma plataforma para realizar testes por seis meses, com audiência de verdade. Se o programa for um sucesso com o comando de Leifert, a Globo já tem uma solução caso o programa de Huck não decole. Se Leifert não decolar, basta dizer que ele estava apenas "tapando um buraco".

Luciano Huck também a a ter concorrência interna, o que é sempre bom para estimular a equipe. Principalmente quando o capitão da equipe pode deixar o time a qualquer momento para se dedicar à carreira política.

Não me entenda mal. Sou fã do Faustão e acredito que ele seja o maior apresentador do país, figura histórica da envergadura de Chacrinha. Mas deixe a emoção de lado e observe a decisão da perspectiva da TV Globo. Ninguém discute que as décadas de trabalho de Faustão na emissora e sua contribuição têm um valor inestimável. Mas uma empresa como a Globo é voltada aos resultados e precisa olhar adiante e navegar por um ambiente cada vez mais competitivo.

No momento em que Faustão assinou o contrato com a Band, ele se tornou um concorrente. A decisão da Globo não é uma represália ao Faustão, é uma prova da relevância do apresentador e do tamanho do risco que ele pode representar na concorrência.

Siga a coluna no Twitter, Facebook e Instagram.