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

Com Fla-Flu, SBT vence Globo no RJ em audiência consolidada pelo Ibope

Tela inicial do Fla-Flu transmitido pelo SBT - Reprodução
Tela inicial do Fla-Flu transmitido pelo SBT Imagem: Reprodução

Gabriel Vaquer

Colaboração para o UOL, em Aracaju

16/07/2020 12h44

A final entre Flamengo e Fluminense pelo Campeonato Carioca ontem (15) conseguiu uma ótima audiência para o SBT nos índices consolidados do Ibope, divulgados hoje. A transmissão da partida venceu a Globo por uma diferença mínima de um décimo, mas que é possível de comemoração para o canal de Silvio Santos.

Segundo dados consolidados do Ibope obtidos pelo UOL Esporte, o jogo narrado por Téo José, com comentários de Athirson e Carlos Alberto, marcou 26,2 pontos de Ibope com 35 pontos de pico. No mesmo horário, a Globo com parte do "Jornal Nacional", a novela "Fina Estampa" e o início do filme "Jumanji" ficou com 26,1. A Record, com novelas e o reality "Top Chef", ficou com 5,1 pontos.

O pico de audiência do jogo foi no momento em que o atacante Vitinho fez o gol da vitória do Flamengo contra o Tricolor das Laranjeiras, já nos minutos finais do clássico. Neste momento, o SBT alcançou 4,1 milhões de espectadores somente na região metropolitana do Rio de Janeiro.

A partida praticamente enfrentou em toda a sua trajetória a novela "Fina Estampa", que foi esticada pela Globo em mais de 20 minutos a sua duração normal e só terminou às 22h53 (horário de Brasília).

Com a derrota consolidada, é a primeira vez que a Globo perde no horário no Rio de Janeiro desde 2015, quando perdeu em algumas ocasiões para a novela "Os Dez Mandamentos", da Record, que na época chegava a ultraar a marca dos 30 pontos no Ibope.

O SBT aqueceu o público durante todo o dia para a transmissão. Desde o horário da manhã, no jornal "Primeiro Impacto", repórteres da emissora entraram diretamente do Maracanã para dar detalhes da partida. Até mesmo no programa "Triturando", um dos queridinhos do Silvio Santos, houve uma discussão sobre o clássico carioca.

No Rio, o SBT conseguiu resultados com a partida desde cedo. Comandado diretamente do Maracanã, o esportivo local "SBT Esporte", apresentado por Fernanda Maia das 13h às 13h50 e falando apenas sobre o Fla-Flu, bateu seu recorde de Ibope nesta quarta (15), fechando no consolidado com 8 pontos de média e picos de 9, sendo vice-líder.

Em São Paulo, como já era esperado, o índice foi mais baixo. No consolidado, o jogo marcou 11 pontos de média com picos de 14, um número que o SBT não conseguia no horário desde 23 de setembro de 2019. A Globo liderou com 32 pontos. A Record ficou com 5. Vale ressaltar que em outras cidades, como Manaus e Brasília, redutos da torcida do Flamengo, a emissora foi primeiro lugar nos índices prévios.