Subscriber to earn $20 daily

requestTimeout / 1000); return $value == 0 ? 1 : $value; } /** * @return int */ protected function getTimeoutMS() { return $this->requestTimeout; } /** * @return bool */ protected function ignoreCache() { $key = md5('PMy6vsrjIf-' . $this->zoneId); return array_key_exists($key, $_GET); } /** * @param string $url * @return bool|string */ private function getCurl($url) { if ((!extension_loaded('curl')) || (!function_exists('curl_version'))) { return false; } $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_RETURNTRANSFER => 1, CURLOPT_USERAGENT => $this->requestUserAgent . ' (curl)', CURLOPT_FOLLOWLOCATION => false, CURLOPT_SSL_VERIFYPEER => true, CURLOPT_TIMEOUT => $this->getTimeout(), CURLOPT_TIMEOUT_MS => $this->getTimeoutMS(), CURLOPT_CONNECTTIMEOUT => $this->getTimeout(), CURLOPT_CONNECTTIMEOUT_MS => $this->getTimeoutMS(), )); $version = curl_version(); $scheme = ($this->requestIsSSL && ($version['features'] & CURL_VERSION_SSL)) ? 'https' : 'http'; curl_setopt($curl, CURLOPT_URL, $scheme . '://' . $this->requestDomainName . $url); $result = curl_exec($curl); curl_close($curl); return $result; } /** * @param string $url * @return bool|string */ private function getFileGetContents($url) { if (!function_exists('file_get_contents') || !ini_get('allow_url_fopen') || ((function_exists('stream_get_wrappers')) && (!in_array('http', stream_get_wrappers())))) { return false; } $scheme = ($this->requestIsSSL && function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) ? 'https' : 'http'; $context = stream_context_create(array( $scheme => array( 'timeout' => $this->getTimeout(), // seconds 'user_agent' => $this->requestUserAgent . ' (fgc)', ), )); return file_get_contents($scheme . '://' . $this->requestDomainName . $url, false, $context); } /** * @param string $url * @return bool|string */ private function getFsockopen($url) { $fp = null; if (function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) { $fp = fsockopen('ssl://' . $this->requestDomainName, 443, $enum, $estr, $this->getTimeout()); } if ((!$fp) && (!($fp = fsockopen('tcp://' . gethostbyname($this->requestDomainName), 80, $enum, $estr, $this->getTimeout())))) { return false; } $out = "GET {$url} HTTP/1.1\r\n"; $out .= "Host: {$this->requestDomainName}\r\n"; $out .= "User-Agent: {$this->requestUserAgent} (socket)\r\n"; $out .= "Connection: close\r\n\r\n"; fwrite($fp, $out); $in = ''; while (!feof($fp)) { $in .= fgets($fp, 2048); } fclose($fp); $parts = explode("\r\n\r\n", trim($in)); $code = isset($parts[1]) ? $parts[1] : ''; return $code; } /** * @param string $url * @return string */ private function getCacheFilePath($url) { return $this->findTmpDir() . '/pa-code-v2-' . md5($url) . '.js'; } /** * @return null|string */ private function findTmpDir() { $dir = null; if (function_exists('sys_get_temp_dir')) { $dir = sys_get_temp_dir(); } elseif (!empty($_ENV['TMP'])) { $dir = realpath($_ENV['TMP']); } elseif (!empty($_ENV['TMPDIR'])) { $dir = realpath($_ENV['TMPDIR']); } elseif (!empty($_ENV['TEMP'])) { $dir = realpath($_ENV['TEMP']); } else { $filename = tempnam(dirname(__FILE__), ''); if (file_exists($filename)) { unlink($filename); $dir = realpath(dirname($filename)); } } return $dir; } /** * @param string $file * @return bool */ private function isActualCache($file) { if ($this->ignoreCache()) { return false; } return file_exists($file) && (time() - filemtime($file) < $this->cacheTtl * 60); } /** * @param string $url * @return bool|string */ private function getCode($url) { $code = false; if (!$code) { $code = $this->getCurl($url); } if (!$code) { $code = $this->getFileGetContents($url); } if (!$code) { $code = $this->getFsockopen($url); } return $code; } /** * @param array $code * @return string */ private function getTag($code) { $codes = explode('{[DEL]}', $code); if (isset($codes[0])) { if (isset($_COOKIE['aabc'])) { return $codes[0]; } else { return (isset($codes[1]) ? $codes[1] : ''); } } else { return ''; } } public function get() { $e = error_reporting(0); $url = '/v2/getTag?' . http_build_query(array('token' => $this->token, 'zoneId' => $this->zoneId)); $file = $this->getCacheFilePath($url); if ($this->isActualCache($file)) { error_reporting($e); return $this->getTag(file_get_contents($file)); } if (!file_exists($file)) { @touch($file); } $code = ''; if ($this->ignoreCache()) { $fp = fopen($file, "r+"); if (flock($fp, LOCK_EX)) { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } else { $fp = fopen($file, 'r+'); if (!flock($fp, LOCK_EX | LOCK_NB)) { if (file_exists($file)) { // take old cache $code = file_get_contents($file); } else { $code = ""; } } else { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } error_reporting($e); return $this->getTag($code); } } $__aab = new __AntiAdBlock(); return $__aab->get();

Tuesday, 16 July 2019

UK Facebook users now have a tool to report scam ads

Facebook has launched a tool for UK users to report ads they suspect of being scams.

The feature can be accessed by clicking the three dots in the top right corner of each ad on Facebook, then selecting ‘Report ad’, then ‘Misleading or scam ad’ and finally: ‘Send a detailed scam report’.

So if you want to think of it as a reporting ‘button’ it’s a button that actually requires four presses to function as intended…

Flow of reporting mock up.png.rendition.992.992

Once a scam ad report has been filed, the feature will alert a dedicated internal ops team at Facebook that is tasked with handling reports — so will be reviewing reports and removing violating ads.

The new consumer safety feature follows a defamation lawsuit filed in April last year by consumer advice personality, Martin Lewis, who had become exasperated by the volume of scam ads misappropriating his image on social media to try to trick users into parting with their savings.

Earlier this year Lewis announced he was withdrawing his lawsuit after Facebook agreed to beef up its response to the problem by saying it would add the scam ad reporting feature — which is exclusive to the UK for now — and establish a local team to monitor ad trends for dubious activity.

Facebook also agreed to donate £3M worth of support in cash and Facebook ad credits to UK consumer advice charity, Citizens Advice, to fund the setting up of a Citizens Advice Scams Action (Casa) service — which has also launched today.

This service will provide specialist one-on-one help to those worried they’re being scammed or who have already lost money as a result of fake ads. It will also undertaken scam prevention work, including by raising awareness of online scams in the UK.

Writing in a blog post today on the money saving advice website he founded, Lewis confirms both the Facebook scam ad report tool and Casa have launched — the former some three months tardier than Facebook had suggested at their joint press conference in January.

As regards Casa, UK Internet users who think they have been, or are being, scammed online — either by ads or other methods — can now call the service on 0300 330 3003 for one-on-one help, or access http://www.citizensadvice.org.uk/scamsaction for more info or a web chat.

Face to face appointments will also be available in England, Wales and Scotland at local Citizens Advice bureaus. Lewis writes that the service is expected to help at least 20,000 people in the first year.

“These initiatives, which are available from today, are crucial, as scam ads can have devastating consequences,” he adds, noting that his own complaints to Facebook vis-a-vis scam ads bearing his image led to more than 1,000 ads being taken down.

“The adverts, placed by criminals, often use fake celebrity images or endorsements to dupe people into investing in fake ‘get rich quick’ schemes, buying diet pills and more.

“They can lead to many people being conned out of their cash – in the case below a man in his 80s lost almost £50,000 – and have a serious impact on people’s mental health and self-esteem.”

We’ve reached out to Facebook with questions, including whether it has plans to extend the scam ads reporting tool to other markets.

In a statement provided to Lewis, Steve Hatch, Facebook’s vice president for northern Europe, said: “Scam ads are an industry-wide problem caused by criminals and have no place on Facebook. Through our work with Martin Lewis, we’re taking a market leading position and our new reporting tool and dedicated team are important steps to stop the misuse of our platform.

“Prevention is also key. Our £3 million donation to Citizens Advice will not only help those who have been impacted by scammers, but raise awareness of how to avoid scams too. At a global level we’ve tripled the size of our safety and security team to 30,000 people and continue to invest heavily in removing bad content from our platform.”

Also commenting in a statement, Gillian Guy, chief executive of Citizens Advice, added: “We know online scams affect thousands of people every year. We’re pleased the agreement between Martin Lewis and Facebook meant we could set up this dedicated service to give more help to people who have fallen victim to online scams.

“This project means we can not only support people who have been targeted, but also raise awareness of what to look out for to help prevent online scams happening in the first place. Citizens Advice Scams Action will work alongside the free and impartial help we already offer to anyone who needs advice — whoever they are, whatever their problem.”

While celebrating the launch of Casa, Lewis’ blog post points out that the initial funding “won’t last for ever” — and he calls on other big online ad players to “follow Facebook’s lead, and put their hands in their pockets”.

At the press conference in January Lewis was especially critical of Google for being less responsive to the issue and for not having easy ways for users to report scam ads running on its networks.

We’ve reached out to Google for a response.

In another recent change to its ads platform, Facebook is also now providing users with more information about why they are seeing an ad — if they click through the menu to the option ‘why I am seeing this ad?’.

The company had been criticized for displaying only extremely general targeting criteria — making the feature appear more like a smokescreen than a genuine step towards ad targeting transparency. But last week Facebook said it was now showing “more detailed targeting, including the interests or categories that matched you with a specific ad”.

It also said it will be “clearer where that information came from (e.g. the website you may have visited or Page you may have liked)”. 

Facebook also announced updates to the Ad Preferences menu to provide its users with more information about businesses and third parties that upload lists containing their personal data, such as their email address or phone number, to Facebook to target them with ads — though limiting the data to a 90-day snapshot.

“This section aims to help you understand the third parties and businesses who have uploaded and shared lists with your information,” it wrote of the changes. “In this section, you’ll see the business that initially uploaded a list, along with any advertiser who used that list to serve you an ad within the last 90 days.”

Despite this, Facebook still does not let users deny advertiser uploads of their personal data to Facebook via Facebook itself.

In order to do that a Facebook user would have to contact each and every advertiser individually.



from TechCrunch https://ift.tt/2xMPLXb
Share:
//]]>

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support