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, 26 May 2020

Bluecore raises $50M for its first-party, AI-based marketing automation tools

As more online brands look for ways to move beyond third-party cookies as a way of gaining more direct insights about their users and customers, a startup that has developed a platform to help them has raised a big round of funding. Bluecore, a marketing technology firm that uses data gained from direct marketing like email, social media, site activity and combines that with machine learning to make better predictions about who might want to buy what among its customers, is today announcing that it has raised $50 million.

The funding will be used to build the next generation of the Bluecore platform, expected later this year, which will tap into aggregated engagement data (but not actual browsing individuals) from “hundreds” of brands, which customers can combine with their own first-party data — based on consent-based, first-party customer IDs — to develop better targeting insights.

“There are a lot of systems that focus on customer data and transactional data but no system that focuses on the product and product catalogue, which we think is the key asset,” said Fayez Mohamood, the co-founder and CEO, in an interview. He says that the company manages over 200 million products and SKUs, second only to Amazon’s and bigger than Walmart’s, that companies can matches with consumer identities (from email and other direct channels). “We can deliver insights on what customers might want even if they have never engaged with a particular product.”

The Series D is being led by Georgian Partners, with FirstMark and Norwest also participating. All three are existing investors in the company and I’ve confirmed with Mohamood that it’s a significant valuation jump on its previous valuation of $148 million (based on its $35 million Series C in 2017, per PitchBook), but is still under $500 million. The company has raised $110 million to date.

The funding comes at a key moment in the world of martech. The New York Times hit the news last week because of a move it has made to shift its data sourcing activity from third-party to first-party data for ads and other money-making activities on its properties. That is, it’s tapping its own channels to source information rather than relying on the Googles, Facebooks, and the many third-party data aggregators, of this world to provide the information.

That story was interesting because it taps into what seems to be a trend at the moment, where businesses are shifting to first-party data to reduce their reliance on data that may be harder to trace (and thus potentially falls afoul of a lot of privacy and data protection measures), and in part just to strengthen their own businesses.

Just as the NYT is building this concept out in the media world, there has been a lot of activity in this area of marketing specifically in the world of e-commerce, which is the sector that Bluecore focuses on.

It’s a timely place to be: e-commerce has been on everyone’s minds of late because of the pandemic, and there has been a surge of activity on sites as consumers turn to the web to buy what they might have previously shopped for in person.

But Bluecore was actually already on a roll before the pandemic hit. The funding comes on the heels of significant growth for the company, and Bluecore believes that its platform and how its used influences some 10% of all non-Amazon Gross Merchandise Value (GMV) in the U.S. Given how fragmented the e-commerce landscape is (once you remove Amazon from the equation, of course) that is a significant percentage. Its 400 customers today include high-profile names like Sephora, CVS, Teleflora and Tommy Hilfiger.

Given the huge shift to shopping online that we’ve seen take hold of the world, it’s no surprise that this has had a big effect on business for companies like Bluecore, which helps retailers but also brands make better sense of what’s going on when they can no longer see customers, track footfall, and sell to them as humans.

“We have had a lot of conversations with existing customers, yes, but what we’re also seeing are new ones, some some non traditional brands that have only sold in stores,” he said. “My LinkedIn has never seen so much inbound messaging from brand names that have previously been stuck inside stores, now just starting to think of how to approach DTC.”

It’s not just brands of course, but retailers having to quickly rethink priorities.

“A retail executive of a huge department store told me they’ve spent more money on lighting fixtures than on their technology budget. It really tells you something. That hit it home for me.”

And, it seems, hit it home for investors, too.

“Bluecore is uniquely equipped to deliver the advanced artificial intelligence capabilities that retailers need to navigate rapidly changing market conditions,” said Tyson Baber, Partner, Georgian Partners, in a statement. “We are delighted to be deepening our partnership with Bluecore with this funding round, as well as continuing our long-standing research and development partnership. Their work is helping brands get actionable intelligence from one of the richest sets of retail industry data in the world.”



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

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support