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, 31 December 2018

Netflix stops paying the ‘Apple tax’ on its $853M in annual iOS revenue

Earlier this year, Netflix was seen testing a bypass of iTunes billing across dozens of markets worldwide. As 2018 draws to a close, Netflix – the App Store’s top grossing app – has ditched the ability for new users to sign up and subscribe to the streaming service within its iOS app across all global markets. The change means Apple will miss out on hundreds of millions in App Store revenue per year – money it would have otherwise received by way of its standard cut of in-app transactions.

According to new data compiled by Sensor Tower, Netflix grossed $853 million in 2018 on the iOS App Store. Based on that figure, Apple’s take would have been around $256 million, the firm said.

To date, the Netflix iOS app has generated over $1.5 billion through its in-app subscriptions, with Apple’s cut coming in around $450 million-plus, Sensor Tower estimated.

Before the change, Netflix on iOS was grossing an average of $2.4 million per day in 2018 – meaning Apple was making around $700,000 by doing nothing other than allowing Netflix to offer subscriptions in its app.

(Note, however, that Sensor Tower’s figures are based on the App Store’s 30 percent cut of transactions. After the first year, Apple’s cut on subscription renewals is lowered to 15 percent. That’s not being factored in. But it gives you a rough idea of Apple’s losses here.)

Netflix’s iOS revenue has been climbing steadily over the years.

In 2017 its gross subscriber revenue was $510 million – up from $215 million users spent in the app in 2016 – which earned it the No. 1 spot on the Top Grossing Chart for non-game apps. It snagged that position again this year, trailed by Tinder and Tencent Video.

In fact, Netflix has earned the bragging rights for being the top grossing iOS App of all time, App Annie reported this summer.

The streaming service’s decision to bypass the App Store isn’t a first. Many companies today direct their users to the web or other platforms, in order to avoid marketplace fees.

For example, Amazon has historically restricted movie and TV rentals and purchases to its own website or other “compatible” apps, instead of allowing them to take place through its Prime Video app. The same goes for Kindle e-books, which also aren’t offered in the Kindle mobile app. Spotify also discontinued the option to pay for its Premium service using Apple’s in-app payment system.

And Epic Games this year bypassed Google’s Play Store altogether – as well as its 30 percent cut – when it launched Fortnite for Android as a sideloaded app. That decision resulted in Google’s loss of $50 million+ in marketplaces fees.

Netflix earlier this year had dropped in-app subscription sign-ups in its Android app on Google Play. That signaled its intentions to later take back the so-called “Apple tax” for itself, too.

However, Netflix still earns money on Google Play through existing subscribers. That totalled around $105 million in 2018, with Google earning close to $32 million of that. But the number has been declining consistently, Sensor Tower said. Apple could soon be in the same boat.

VentureBeat was the first to notice the change to the Netflix iOS app. It would be surprising if Apple took action against Netflix, given it has not done so with other major tech companies that made similar moves.

 

 

 



from TechCrunch https://tcrn.ch/2GN3lB3
Share:
//]]>

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support