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

Facebook derruba rede de desinformação de vacinas que tem Brasil como alvo

A rede internacional de desinformação sobre vacinas vinha atuando de forma organizada na Rússia desde novembro de 2020 - RFI
A rede internacional de desinformação sobre vacinas vinha atuando de forma organizada na Rússia desde novembro de 2020 Imagem: RFI

Agência Estado

10/08/2021 17h06

O Facebook derrubou de suas plataformas uma rede internacional de desinformação sobre vacinas que vinha atuando de forma organizada na Rússia desde novembro de 2020, com intuito de espalhar notícias falsas sobre os imunizantes da AstraZeneca e da Pfizer em regiões específicas do mundo, entre elas o Brasil. As informações foram reveladas nesta terça-feira (10) no CIB (Relatório de Comportamento Inautêntico Coordenado, ou CIB, na sigla em inglês), documento publicado mensalmente pela empresa.

Ao todo, foram removidas 65 contas do Facebook e 243 contas do Instagram, todas ligadas à empresa de marketing Fazze, com registro no Reino Unido, mas com operações na Rússia. Segundo o relatório da empresa de tecnologia, o público-alvo da campanha de desinformação orquestrada pela Fazze eram usuários da Índia, do Brasil, de outros países da América Latina e, em menor grau, dos Estados Unidos.

A Fazze foi banida das redes sociais do grupo por violar a política contra interferência estrangeira da plataforma (quando um país tenta manipular o debate público de outra região, por exemplo), algo que, diz o Facebook, se enquadra como "comportamento inautêntico coordenado", que são "esforços coordenados para manipular o debate público para um fim estratégico, onde contas falsas são centrais para a operação".

A campanha de desinformação começou em fóruns populares da internet, como Reddit e Medium, ando para a criação de contas falsas no Facebook e Instagram, onde o conteúdo enganoso seria repercutido nas redes sociais para usuários desavisados. Em seguida, "influenciadores digitais" eram utilizados para amplificar as mentiras, ajudados pela Fazze, que oferecia o a essas personalidades com muitos seguidores.

"As operações cada vez mais buscam usar vozes influentes autênticas para transmitir suas mensagens. Por meio delas, as campanhas enganosas ganham o ao público-alvo do influenciador, mas isso vem com um risco significativo de exposição", escreve o Facebook no relatório.

De novembro de 2020 a dezembro daquele mesmo ano, as vacinas da AstraZeneca eram alvo dos propagadores de notícias falsas, que diziam que o imunizante transformaria as pessoas em chimpanzés, trazendo imagens do filme Planeta dos Macacos (1968) para supostamente exemplificar o efeito nocivo das doses. Depois de cinco meses de inatividade, explica o Facebook, foi a vez da Pfizer, que supostamente teria maior taxa de mortalidade do que outras vacinas. As hashtags publicadas nas plataformas estavam em hindi, inglês, espanhol e português.

Cerca de 24 mil contas seguiram um ou mais desses perfis de desinformação no Instagram. Para o Facebook, tratou-se de uma operação de notícias falsas de baixo alcance, ou seja, não obteve sucesso, já que gerou pouco engajamento.

Não há informações sobre quem contratou a Fazze para iniciar a campanha de desinformação.