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

Ricardo Feltrin

REPORTAGEM

Ibope consolidado: Faustão fica em 2º lugar em SP, mas em 4° no país

Anne Lottermann, Fausto Silva e João Guilherme, no "Faustão na Band" - Divulgação
Anne Lottermann, Fausto Silva e João Guilherme, no 'Faustão na Band' Imagem: Divulgação

Colunista do UOL

17/01/2022 22h36Atualizada em 18/01/2022 15h13

Fausto Silva fez sua estreia na noite de ontem (17) na Band e ficou em 4º lugar no ibope, considerando a média consolidada nas capitais brasileiras. A coluna atualizou este texto hoje (18).

Entre 20h30 e 22h40 o resultado (CONSOLIDADO) ficou assim em São Paulo, principal mercado da publicidade: a Band conseguiu 8,3 pontos no ibope ("share" de 12,35), pico de 9,9 pontos.

A Globo, que no mesmo horário ou "Jornal Nacional" e a novela "Um Lugar ao Sol", alcançou 22,7 pontos.

Em seguida ficaram SBT (7,6) e Record (7,1). Cada ponto em São Paulo vale por cerca de 75 mil domicílios, cada um com uma média de três moradores (metodologia da Kantar baseada em dados do IBGE).

Faustão também ficou em segundo lugar em Porto Alegre, capital do Rio Grande do Sul, com 5,8 pontos.

Já no Rio, o apresentador ficou em quarto lugar na programação, com 3,5 pontos no ibope. Mesma posição foi vista em Recife (3,6); Belo Horizonte (3,5); Salvador (3,2); Belém (4,2); Goiânia (1,9); Brasília (3,3) e Manaus (5,6).

Todas as médias são consolidadas e foram atualizadas nesta terça-feira (18).

Independentemente disso, Fausto Silva, 73, escreveu seu nome da história não só da Band, mas da TV brasileira, mais uma vez.

João Guilherme, filho de Faustão - Reprodução/Band - Reprodução/Band
João Guilherme, filho de Faustão
Imagem: Reprodução/Band

João Guilherme como apresentador

Faustão conta com as participações do filho João Guilherme, de 17 anos, e da jornalista Anne Lottermann em seu programa na Band. Em conversa com Splash, o jovem disse que foi preparado aos poucos pelo pai para virar apresentador.

"Não foi uma conversa de repente. Ele veio me preparando, já estava plantando a semente há uns dois, três anos. Eu não imaginava que iria trabalhar com ele. Para mim será uma coisa que vou me lembrar para o resto da minha carreira, que comecei com o meu pai. Qual jogador de futebol começou com o filho?", disse o jovem.

A minha única dúvida foi em relação à comparação, tem gente que vai apoiar e quem vai olhar de um jeito ruim. Estou aqui para aprender e colocar o meu trabalho. É com o tempo. Eu sempre tinha certeza que queria trabalhar com televisão. As pessoas falavam que eu tinha jeito porque sou um cara muito comunicativo. Acho que fiz a decisão certa João Guilherme

* Com Felipe Pinheiro, do UOL.

Ricardo Feltrin no Twitter, Facebook, Instagram e site Ooops