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

Clubes e Ferj discutem hoje proposta da Globo por PPV do Carioca

Globo faz proposta pelo PPV do Carioca até a temporada de 2024 - Fernando Moreno/AGIF
Globo faz proposta pelo PPV do Carioca até a temporada de 2024 Imagem: Fernando Moreno/AGIF

Igor Siqueira

Do UOL, no Rio

20/09/2021 09h39

O Grupo Globo fez uma proposta pelo Campeonato Carioca. A proposta envolve os direitos de transmissão no pay-per-view até 2024. Hoje (20), os clubes da Série A do estadual e a Ferj (Federação de Futebol do Estado do Rio de Janeiro) têm uma reunião na qual discutirão o assunto.

A tentativa da Globo de voltar a transmitir o Carioca não envolve a TV aberta, já que há um contrato para 2022 com a Record. Pelo que foi colocado à mesa, a Globo terá exclusividade no PPV, caso haja acordo. Sendo assim, não haveria mais a modalidade de venda pelas TVs dos próprios clubes, como aconteceu em 2021.

O Flamengo foi quem mais faturou com isso: algo na casa dos R$ 14 milhões. Os demais clubes, no entanto, não gostaram do desempenho comercial da competição, como um todo.

O valor da primeira proposta da Globo aos clubes do Rio não agradou os dirigentes. A visão é que a oferta precisa melhorar, para atingir algo mais parecido com o que a emissora tem conversado com os clubes de São Paulo. A questão é que no Paulista a Globo também quer manter os direitos para TV aberta.

Os clubes do Rio olham para o bolo completo do que a Globo tem no pay-per-view atualmente e argumentam que representam uma parcela em proporção similar à dos clubes paulistas. Por isso, a tentativa vai ser sentar à mesa para tentar aumentar o preço pelo estadual, em que pese a crise financeira e técnica pela qual am Vasco e Botafogo — ambos na Série B do Brasileirão.

A Globo fez as ofertas até 2024 porque é quando também expiram os contratos atuais da Série A do Brasileirão. Para a emissora, a estratégia é tentar manter produtos para compor um pacote robusto de futebol. Se não tiver o Brasileiro, cujos contratos não começaram a ser negociados ainda e serão regidos pela nova Lei do Mandante, não faria sentido ar os estaduais.

A sanção da Lei do Mandante pelo presidente da República, Jair Bolsonaro, foi publicada hoje (20) no Diário Oficial. Como os clubes do estadual negociam em bloco — até o momento —, o projeto não traria efeito prático. A questão é se algum clube quiser um "voo solo" na transmissão: agora, a lei permite que o mandante negocie seu direito, independente do contrato que o visitante tiver.

Inclusive, foi esse movimento feito pelo Flamengo, quando os termos principais da Lei do Mandante entraram em vigor por meio de uma Medida Provisória assinada em 2020 por Bolsonaro. A Globo, então, rescindiu unilateralmente os contratos, já que entendia ter exclusividade e que o Fla não poderia transmitir seus próprios jogos em outras plataformas, afetando contratos em vigor.

Na pauta da Ferj para a reunião de hoje, aparecem ainda itens que tratam da distribuição de recursos dos contratos de direitos internacionais de 2021 e 2022. A divisão do bolo do contrato de TV aberta, com a Record, também está na lista.

A Sportsview, empresa que tem Marcelo Campos Pinto como um dos sócios e faz a intermediação das negociações, ainda apresentará propostas existentes de interessados em propriedades comerciais do estadual para 2022. Campos Pinto é ex-executivo da Globo.