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, 4 May 2021

Fewcents raises $1.6M to help publishers take payments for individual articles, videos and podcasts

Fewcents co-founders Dushyant Khare and Abhishek Dadoo

 

Fewcents co-founders Dushyant Khare and Abhishek Dadoo

Many publishers are focused on converting visitors to subscribers, but there’s another important bracket: people who want to view a premium article or video, but not enough to sign up for a subscription. Fewcents, a Singapore-based fintech startup that enables publishers to take “micropayments” for individual pieces of content, announced today it has raised $1.6 million in seed funding.

Fewcents can be used to monetize articles, video and podcasts. It accepts 50 currencies and is meant to serve as a complementary stream of revenue to advertisements and subscriptions. Its current clients include India’s Dainik Jagran, which has a readership of 55 million; Indonesian news site DailySocial; and streaming video site Dailymotion. The company, which monetizes by sharing revenue with digital publishers, also struck a partnership with Jnomics Media to expand in Europe.

Its funding round venture capital funds M Venture Partners and Hustle Fund. Participation also came from angel investors from some of the top fintech, adtech and media companies: Koh Boon Hwee (fomer chairman of DBS Bank); Kenneth Bishop (former managing director of Southeast Asia at Facebook); Jeremy Butteriss (head of partnerships at Stripe); Shiv Choudhury (partner and managing director of the Boston Consulting Group); Francesco Alberti (former APAC regional sales director for Bloomberg Media Distribution); Lisa Gokongwei-Cheng (Summit Media president); Prantik Mazumdar (Dentsu managing director), Saurabh Mittal (Mission Holdings chairman and founder) and Nitesh Kripalani (former director and country head of Amazon Video India).

Fewcents was launched last year by Abhishek Dadoo and Dushyant Khare. Dadoo’s previous startup Shoffr, an online-to-offline attribution platform, was acquired by Affle in 2019. Khare spent 12 years working at Google, including as director of strategic partnerships in Southeast Asia and India.

In an email, Dadoo and Khare told TechCrunch that only 1% to 5% of publishers’ active users are willing to commit to a monthly subscription. The majority are casual or referred users, and publishers rely on advertising to monetize that traffic.

Content creators are experimenting with micropayments, and other services include Flattr, which allows people to make one-time contributions and Axate’s pay-per-article tools. But publishers still debate how effective the model is and last year, TechCrunch reported that Google decided not to launch a tipping feature for sites.

To successfully implement a pay-per-content model, publishers not only need to produce compelling content, but also make it extremely easy for people to pay for it. For Fewcents, this means solving three key challenges, Dadoo and Khare said. First, they need to create a ubiquitous platform, since casual users won’t want to sign up for a new service every time they visit another site. It also needs to accept cross-border payments in local currency using the most popular payment methods, like digital wallets. And publishers need to be able to manage digital rights, like how long someone has access to content.

Publishers also need to determine price points that won’t turn away buyers, but will generate substantial enough revenue. Fewcents currently uses existing traffic data to manually price each piece of content. “Based on the supply-demand curve within each geography, we retroactively change the price to get the best revenue results,” Dadoo said. “However, as we develop our AI algorithms, the intent is to dynamically suggest the pricing depending on the geography and the semantics of the content.”

Khare said that by unbundling content, Fewcents can also provide deeper data than pageviews, helping them understand the preferences of specific markets and user segments, and develop customized “micro-bundles.” He added that Fewcents’ goal is to be able to automatically recommend customized content bundles for each user.



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

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support