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

Posts pagos e : as ideias de Elon Musk para lucrar com o Twitter

  - Regis Duvignau/Reuters
Imagem: Regis Duvignau/Reuters

Adriano Ferreira

Colaboração para Tilt, em São Paulo

29/04/2022 13h20

Para comprar o Twitter pelo valor de US$ 44 bilhões (quase R$ 214 bilhões), o empresário sul-africano Elon Musk teve que contrair uma dívida de até US$ 1 bilhão (em torno de R$ 4,8 bilhões) por ano com bancos, tendo como garantia as ações da Tesla.

Para bancar esses empréstimos, o bilionário vai ter que dar um jeito de lucrar com a rede social. Recentemente, o dono da Tesla (empresa de carros elétricos) e da Space X (de naves espaciais) teve diversas reuniões com os banqueiros credores e apresentou diferentes propostas para o aumento das receitas do Twitter.

Estas são algumas delas:

Redução de anúncios

Antes de oficializar a compra do Twitter, o empresário jogou algumas ideias no ar através de tuítes que já foram apagados. Entre elas, ele sugeriu uma versão por da rede social, que em contrapartida ofereceria uma experiência sem anúncios para os usuários pagantes.

Mas reduzir o volume de anúncios na rede social pode ser um problema: o Twitter tem uma receita financeira de US$ 1,2 bilhão por trimestre, dos quais US$ 1,1 bilhão vem de publicidade.

A liberdade de expressão defendida pelo empresário também causa preocupação entre anunciantes, que temem como isso pode afetar a imagem de suas marca.

Musk vai ter que se desdobrar a fim de provar para os profissionais de marketing que não existe nenhum problema com a sua nova istração. Ou então diminuir a expressiva dependência da empresa de lucro por anúncios.

Demissões

A demissão de funcionários também está nos planos de Musk, segundo uma reportagem do jornal norte-americano Washington Post. Porém, depois da aquisição, Parag Agrawal, atual diretor-executivo do Twitter, declarou que não há planos para cortes de funcionários até o momento.

Apesar da afirmação, até mesmo a posição de Agrawal, assumida no fim de novembro do ano ado, não é garantida na empresa, porque Musk pode querer mudar a direção da companhia.

Influenciadores e tuítes pagos

Pagar influenciadores para gerar conteúdo também já foi considerado por Musk, assim como fazem o TikTok e o Instagram. No entanto, o Twitter já fez testes com isso e teve problemas como pagamentos irregulares e regras pouco claras, como na definição dos criadores qualificados para esse trabalho.

O que existe hoje no Twitter é o programa "Super Follow", em que os influenciadores podem proporcionar conteúdo exclusivo para os seguidores pagantes.

Há também a hipótese de cobrar por aqueles tuítes incorporados e citados em sites de terceiros. Ou seja, contextualizar uma história com tweets em uma publicação em sites de notícias, por exemplo, pode ficar caro para as empresas de mídia, o que poderá iniciar uma discussão sobre a propriedade das postagens na rede social e uma possível compensação financeira para os autores.

Mas até essa restrição poderia ser facilmente driblada pelos veículos: bastaria tirar uma foto ou uma captura de tela do tuíte que se quer incorporar.