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

UOL vence prêmio Veículos de Comunicação 2018 da revista "Propaganda"

UOL
Imagem: UOL

Do UOL, em São Paulo

12/11/2018 18h05

O UOL, maior empresa de conteúdo, tecnologia, serviços e meios de pagamentos digitais do Brasil, foi o vencedor da categoria "Portal" na edição 2018 do prêmio "Veículos de Comunicação", organizado pela revista "Propaganda", da Editora Referência.

Os finalistas foram escolhidos após consulta com mais de 1.500 profissionais de mídia das principais agências de publicidade do país. Depois, um júri formado pela Academia Brasileira de Marketing elegeu os premiados em 28 categorias.

O prêmio, que chega à sua 32ª edição, reconhece os veículos que mais se destacaram durante o ano, avaliando as ações comerciais, de marketing, circulação/audiência.

A cerimônia de premiação acontece em março de 2019.

Confira a lista completa dos vencedores de 2018

  • Destaque do Ano: Google
  • Lançamento do Ano: Money Report
  • Multimeios: Rede Globo
  • Portal: UOL
  • Blog: Hypeness
  • Rede Social: Instagram
  • Mobile: WhatsApp
  • Áudio e Vídeo: YouTube
  • TV Aberta Nacional: TV Globo
  • TV Aberta Regional: TV Vitória ES
  • TV por Entretenimento: HBO
  • TV por Esportes: SporTV
  • TV por Notícias: GloboNews
  • TV por Documentários: History Channel
  • TV por Infantil: Cartoon Network
  • Rádio Nacional: Jovem Pan
  • Rádio Regional: FM O Dia RJ
  • Jornal Nacional: O Estado de S. Paulo
  • Jornal Regional: Diário Gaúcho
  • Jornal Especializado: Valor Econômico
  • Revista de Assuntos Gerais: Época
  • Revista de Negócios: Exame
  • Revista Masculina: GQ Brasil
  • Revista Feminina: Claudia
  • Revista Especializada: Dinheiro Rural
  • Revista Customizada: Revista GOL
  • Revista Mercado de Luxo: Vogue
  • Mídia Out Of Home: Eletromidia
  • Profissional de Mídia do Ano: Andrea Hirata, VP de Mídia da Leo Burnett Tailor Made
  • Profissional de Veículo do Ano: Marcelo Duarte, diretor geral de Negócios da TV Globo
  • Empresário de Comunicação do Ano: Fabio Coelho, presidente do Google Brasil
  • Homenagem Especial: Grupo de Mídia de São Paulo 50 Anos