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

Money Looks é fraude? Conheça o app que promete pagar por curtidas na Shein

Tela do site Money Looks promovido nos anúncios do Google. App possui inúmeras acusações de fraude - Gabriel Daros/UOL
Tela do site Money Looks promovido nos anúncios do Google. App possui inúmeras acusações de fraude Imagem: Gabriel Daros/UOL

De Tilt, em São Paulo

21/04/2023 13h13

Aplicativos associados a Money Looks e Money Look não possuem autorização da empresa Shein para remunerar pessoas para curtir anúncios de roupas pouco vendidas na plataforma de comércio online. A promessa é o pagamento de R$ 1 por curtida.

O Money Looks ganhou maior visibilidade depois da divulgação dos serviços pela ex-BBB e influencer Kerline e modelo Emily Garcia.

Segundo fontes consultadas por Tilt, a fraude aparece quando, para ar a plataforma, induz o usuário a fornecer informações pessoais e bancárias para hora de concluir o cadastro, além de exigir pagamento antecipado de até R$ 97. O valor deveria ser estornado depois, o que não ocorre.

"Tive que pagar 67,00 reais para baixar o app, onde não tive o. Quero meu reembolso, isso é propaganda enganosa e usam influenciadores para propagar essa mentira", comenta uma das reclamações no ReclameAqui.

Em matéria anterior de Tilt, a Shein havia confirmado que o Money Looks não está vinculado aos seus serviços e que não faz pagamentos.

O app era facilmente encontrado na loja online Google Play. Em resposta, a empresa informou que o aplicativo consultado nessa matéria foi derrubado por violar as políticas de privacidade da Play Store.

"Contamos com uma combinação de inteligência de máquina, revisores humanos e denúncias de usuários para identificar conteúdo impróprio. Levamos muito a sério as denúncias de segurança contra aplicativos e, se descobrirmos que um app violou nossas políticas, agimos imediatamente", explicou o Google, em nota.

A empresa recomenda que quaisquer apps similares sejam denunciados na própria Play Store. Para isso:

  • Na página do app, toque no botão de três pontos;
  • Em seguida, clique em 'Sinalizar como impróprio';
  • Pronto, o app estará denunciado.

O app é criminoso, mas... e a divulgação?

Para especialistas consultados pela reportagem, aplicativos do tipo podem ser enquadrados na categoria de estelionato por induzir ao erro para obter vantagem ilícita.

"Uma fraude digital é caracterizada por qualquer situação em que dados pessoais ou bancários são usados de forma indevida — e é exatamente o que acontece com uma pessoa que usa esse tipo e aplicativo", explica a advogada Patrícia Peck, especialista em direito digital.

Márcio Chaves, advogado especialista em Direito Digital, explica que o estelionato também pode se estender a pessoas pagas para promover apps falsos, já que estão induzindo ao erro para dar vantagem a outros.

"Para usuários — famosos ou não — isso também pode configurar um crime. Se você sabe que se trata de um golpe, e ainda assim divulga, pode sim responder criminalmente por essa divulgação", explica.

Mesmo em casos que a pessoa não saiba que está promovendo um serviço fraudulento, ainda podem haver consequências judiciais.

"Ainda que ele consiga se esquivar de uma responsabilização criminal, ele também pode ter que responder na vara cível, a pagar indenização para aqueles que confiaram, que deram voto de confiança em uma figura pública", pontua Chaves.

"Independente de crime, mesmo a situação de negligência, de associar seu nome e reputação para endossar algo que gere dano ou lesão a terceiros pode sim gerar responsabilidade civil para o influencer, por negligência e omissão", complementa Peck. "Por isso, é importante estar atento antes de endossar/impulsionar algo na Internet."

Fui vítima de um app fraudulento. O que faço?

  • Verifique se a adesão ao programa não está relacionada com (mensal, anual) para proceder o cancelamento;
  • Denuncie principalmente na Store de aquisição a sua experiência negativa;
  • Procure informações detalhadas da contratação para verificar qual a origem da empresa. Se conseguir informações, tente contato e solicite a restituição;
  • Se o sentimento e as informações levam a uma fraude escancarada, procure uma delegacia e realize um boletim de ocorrência;
  • Procure o meio de pagamento e verifique se é possível bloquear a transação.