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, 29 October 2019

Market research platform Milieu Insight raises $2.4 million to launch in more Southeast Asian countries

Milieu Insight, a Singapore-based market research and data platform, announced today that it has raised $2.4 million in pre-A funding. The round, led by MassMutual Ventures Southeast Asia, will be used on product development and to launch in four new Southeast Asian countries, Malaysia, Indonesia, the Philippines and Vietnam. The startup’s platform, called Milieu Surveys, is already available in Singapore and Thailand and has signed more than 45 clients.

This brings Milieu Insight’s total funding so far to $3.15 million, including a seed round announced in November 2018. Founded in December 2016 by CEO Gerald Ang, who previously worked at global research firms including GfK and YouGov, Milieu Insight seeks to make market research and data analysis accessible to smaller businesses and organizations. Milieu Portraits, its consumer segmentation tool, returns insights about specific demographics, including what products, media and brands they prefer, while Milieu Studies allows companies to create their own studies.

[gallery ids="1904986,1904985,1904984"]

COO Stephen Tracy told TechCrunch in an email that the startups’ four new markets were picked because “they are in high demand among existing research buyers who want to study consumer trends, particularly because the market dynamics in these countries are evolving fast.” Milieu focuses exclusively on mobile data since smartphone penetration is still growing quickly in many Southeast Asian markets.

He added “one other dynamic that makes us particularly excited about expanding across Southeast Asia is that, through our investment in tech and automation, we’re able to sell market research solutions at considerably more affordable price points (i.e. research studies as low as US$350). Meaning our platform can also activate new spending among businesses/organizations who couldn’t previously afford it, such as charities/non-profits, academic institutions and startups.”

Milieu Insight’s competitors include traditional research firms like Kantar and YouGov for Milieu Studies and Global Web Index for Milieu Portraits. Tracy says the startup’s competitive edge is its end-to-end solution. “That is, there’s no other company that offers a single platform that connects an audience (i.e. our managed consumer panel) with a SaaS service that allows you to access consumer profiling data on-demand as well as launch bespoke consumer studies and get results in just a few hours, all within a self-serve environment.”

In a press statement, MassMutual Ventures managing director Anvesh Ramineni said “Milieu’s impressive team has built a world-class product, making market research services affordable, accessible and more relevant in today’s mobile first landscape. We are pleased to lead Milieu’s current round and look forward to supporting the company as it scales across the region.”



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

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support