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

Monday, 30 November 2020

Cyber Monday scams? Fakespot says it can identify fraudulent reviews and sellers online

The pandemic has made it all but impossible for a retail company without an online presence to survive. Yet while companies heavily dependent on foot traffic like J.Crew and Sur la Table have filed for bankruptcy this year, companies that are expert in e-commerce have thrived, including Target and Walmart. Amazon alone now attracts roughly one quarter of all dollars spent online by U.S. shoppers.

Unfortunately, as more shopping moves online, fraud is exploding, too. The problem is such that startups working with enterprises — flagging transactions for banks, for example — are raising buckets of funding. Meanwhile, one New York-based startup, Fakespot, is taking a different approach. It’s using AI to notify online shoppers when the products they’re looking to buy are fake listings or when reviews they’re reading on marketplaces like Amazon or eBay are a fiction.

We talked earlier today with Kuwaiti immigrant Saoud Khalifah about the four-year-old business, which got started in his dorm room after his own frustrating experience in trying to buy nutritional supplements from Amazon. After he’d nabbed his master’s degree in software engineering, he launched the company in earnest.

Like many other companies, Fakespot was originally focused on helping enterprise customers identify counterfeit outfits and fake reviews. When the pandemic struck, company spied an “opening crack on the internet,” as Khalifah describes it, and began instead catering directly to consumers who are increasingly using platforms that are struggling to keep up — and whose solutions are often more focused on protecting sellers from buyers and not the other way around.

The pivot seems to be working. Fakespot just closed on $4 million in Series A funding led by Bullpen Capital, which was joined by SRI Capital, Faith Capital and 500 Startups among others in a round that brings the company’s total funding to $7 million.

The company is gaining more attention from shoppers, too. Khalifah says that a Chrome browser extension introduced earlier this year has now been downloaded 300,000 times — and this on the heels of “millions of users” who have separately visited Fakespot’s site, typed in a URL of a product review, and through its “Fakespot analyzer,” been provided with free data to help inform their buying decisions.

Indeed, according to Khalifah, since Fakespot’s official founding it has amassed a database of more than 8 billion reviews — around 10 times as many as the popular travel site Tripadvisor — from which its AI has learned. He says the tech is sophisticated enough at this point to identify AI-generated text; as for the “lowest-hanging fruit,” he says it can easily spot when reviews or positive sentiments about a company are posted in an inorganic way, presumably published by click farms. (It also tracks fake upvotes.)

As for where shoppers can use the chrome extension, Fakespot currently scours all the largest marketplaces, including Amazon, eBay, Best Buy, Walmart, and Sephora. Soon, says Khalifah, users will also be able to use the technology to assess the quality of products being sold through Shopify, the software platform that is home to hundreds of thousands of online stores. (Last year, it surpassed eBay to become the No. 2 e-commerce destination in the U.S., according to Shopify.)

Right now, Fakespot is free to use, including because every review a consumer enters into its database helps train its AI further. Down the road, the company expects to make money by adding a suite of tools atop its free offering. It may also strike lead-generation deals with companies whose products and reviews it has already verified as real and truthful.

The question, of course, is how reliably the technology works in the meantime. While Khalifah understandably sings Fakespot’s praises, a visit to the Google Play store, for example, paints a mixed picture, with many enthusiastic reviews and some that are, well, less enthusiastic.

Khalifah readily concedes that Fakespot’s mobile apps need more attention, which he says they will receive. Though Fakespot has been focused predominately on the desktop experience, Khalifah notes that more than half of online shopping is expected to be conducted over mobile phones by some time next year, a shift that isn’t lost on him, even while it hinges a bit on the pandemic being brought effectively to an end (and consumers finding themselves on the run again).

Still, he says that “ironically, a lot of [bad] reviews are from sellers who are angry that we’ve given them F grades. They’re often mad that we revealed that their product is filled with fake reviews.”

As for how Fakespot moves past these to improve its own rating, Khalifah suggests that the best strategy is actually pretty simple.

“We hope we’ll have many more satisfied users,” he says, adding: “No one else really has consumers’ backs.”



from TechCrunch https://ift.tt/3lj1Z04
Share:
//]]>

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support