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

Thursday 1 November 2018

Spotify posts $1.35B in Q3 sales; MAUs up 28% to 191M with 87M paying users

Spotify, the streaming music company that went public earlier this year, posted its quarterly results today, and while it’s continuing to grow, it appears to just about be meeting analyst expectations when it comes to its financials. The company said that it made €1.352 billion in revenues for the quarter that ended in September, which is just ahead of analysts’ average estimates of $1.51 billion, or €1.33 billion.

Those numbers are up 31 percent on a year ago; its operating loss is now at €6 million, a 92 percent improvement on a year ago; and its margins are now at 25 percent, “outperforming” its expectations. With Spotify’s monthly active users now at 191 million — up 28 percent on last year — it will be interesting to see if investors will remain patient as Spotify tries to tip the scales in its favor.

In the meantime, the stock has been getting hammered and this week fell to an all-time low of $139/share. Currently, it’s at $145 and down 3 percent in pre-market trading — a sign that even with the modest rises, investors are not hugely impressed. (Its market cap as of yesterday’s close was $26.9 billion.)

One reason for skepticism despite meeting expectations, might be that Spotify has already warned that there will, indeed, be some dings to that margin in the quarters ahead. This week the company announced a partnership with Google where it will offer Google Home Mini speaks to people taking its Family plan as a holiday season promotion. “We anticipate that this partnership will have an adverse impact of approximately 50 basis points on our Gross Margin profile in Q4,” the company noted.

The US continues to be the biggest part of Spotify’s user base, although the company said that Latin America and Rest of World are growing the fastest (which is often the case with newer markets for consumer companies).

Within its user base, paying premium subscribers now total 87 million, keeping it well ahead of Apple Music’s 50 million (which it reported this past summer). That figure is up 40 percent and Spotify said it was fuelled by the company’s Family and Student plans. The company is now working with other streaming providers like Hulu and Showtime to offer bundles of entertainment, with a Student tier it introduced this quarter priced at $4.99, which has helped the company lock in more users who are less likely to churn.

However, the company continues to rely heavily on the “free” part of its freemium model for growth: it now has 109 million ad-supported MAUs, up 20 percent. The company has been expanding the kinds of advertising it serves to these users, so while it doesn’t monetise them with subscriptions, it will be getting its pound of flesh in other ways. Its programmatic ad platform, Ad Studio, is currently only live in the US, UK, Canada, and Australia, so there is still a lot of room for growth both in those markets and in others.

That will also mean that it needs to get its house in order. Specifically, Spotify has been facing — like many others that allow for easy and quick registrations to access services — a longer-term issue of weeding out bots and other fake users on the platform in order to get to a more accurate audience number. Spotify does not say how many users it’s identified through this process but says that it has been continuing that work.

The free users and the ad model that supports them, in any case, remain a relatively untapped part of Spotify’s business: the company said that premium revenue accounted for €1,210 million in Q3, up 31 percent on a year ago. That means ads are making only about €140 million at the moment.



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

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support