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

Friday, 27 November 2020

UK to set up ‘pro-competition’ regulator to put limits on big tech

The UK is moving ahead with a plan to regulate big tech, responding to competition concerns over a ‘winner takes all’ dynamic in digital markets.

It will set up a new Digital Market Unit (DMU) to oversee a “pro-competition” regime for Internet platforms — including those funded by online advertising, such as Facebook and Google — the Department of Digital, Culture, Media and Sport (DCMS) announced today.

It’s moving at a clip — with the new Unit slated to begin work in April. Although the necessary law to empower the new regulator to make interventions will take longer. The government said it will consult on the Unit’s form and function in early 2021 — and legislate “as soon as parliamentary time allows”.

A core part of the plan is a new statutory Code of Conduct aimed at giving platform users more choice and third party businesses more power over the intermediaries that host and monetize them.

The government suggests the code could require tech giants to allow users to opt out of behavioral advertising entirely — something Facebook’s platform, for example, does not currently allow.

It also wants the code to support the sustainability of the news industry by “rebalancing” the relationship between publishers and platform giants, as it puts it.

Concern over how to support quality public interest journalism in an era of ad-funded user-generated-content giants has been stepping up in recent years as online disinformation has been actively weaponized to attack democracies and try to influence votes.

“The new code will set clear expectations for platforms that have considerable market power — known as strategic market status — over what represents acceptable behaviour when interacting with competitors and users,” DCMS writes in a press release.

It suggests the DMU will have powers to “suspend, block and reverse decisions of tech giants, order them to take certain actions to achieve compliance with the code, and impose financial penalties for non-compliance”. Although full details are set to be worked out next year.

Digital Markets Taskforce, which the government set up earlier this year to advise on the design of the competition measures, will inform the Unit’s work, including how the regime will work in practice, per DCMS.

The taskforce will also come up with the methodology that’s used to determine which platforms/companies should be designated as having strategic market status.

On that front it’s all but certain Facebook and Google will gain the designation, and be subject to the code and oversight by the DMU, although confirmation can only come from the Unit itself once it’s up and running. But UK policymakers don’t appear to have been fooled by bogus big tech talking points of competition being ‘only a click away’.

The move to set up a UK regulator for big tech’s market power follows a competition market review chaired by former U.S. president Barack Obama’s chief economic advisor, professor Jason Furman, which reported last year. The expert panel recommended existing competition policy was fit for purpose but that new tools were needed for it to tackle market challenges flowing from platform power and online network effects.

Crucially, the Furman report advocated for a ‘broad church’ interpretation of consumer welfare as the driver of competition interventions — encompassing factors such as choice, quality and innovation, not just price.

That’s key given big tech’s strategic application of free-at-the-point-of-use services as a tool for dominating markets by gaining massive marketshare which in turn gives it the power to set self-serving usage conditions for consumers and anti-competitive rules for third party businesses — enabling it to entrench its hold on the digital attention sphere.

The UK’s Competition and Markets Authority (CMA) also undertook a market study of the digital advertising sector — going on to report substantial concerns over the power of the adtech duopoly. Although in its final report it deferred competitive intervention in favor of waiting for the government to legislate.

Commenting on the announcement of the DMU in a statement, digital secretary Oliver Dowden said: “I’m unashamedly pro-tech and the services of digital platforms are positively transforming the economy – bringing huge benefits to businesses, consumers and society. But there is growing consensus in the UK and abroad that the concentration of power among a small number of tech companies is curtailing growth of the sector, reducing innovation and having negative impacts on the people and businesses that rely on them. It’s time to address that and unleash a new age of tech growth.”

Business secretary Alok Sharma added: “The dominance of just a few big tech companies is leading to less innovation, higher advertising prices and less choice and control for consumers. Our new, pro-competition regime for digital markets will ensure consumers have choice, and mean smaller firms aren’t pushed out.”

The UK’s move to regulate big tech means there’s now broad consensus among European lawmakers that platform power must be curtailed — and that competition rules need properly resourcing to get the job done.

A similar digital market regime is due to be presented by EU lawmakers next month.

The European Commission has said the forthcoming ex ante pan-EU regulation — which it’s calling the Digital Markets Act — will identify platforms which hold significant market power, so-called Internet gatekeepers, and apply a specific set of fairness and transparency rules and obligations on them with the aim of rebalancing competition. Plans to open algorithmic blackboxes to regulatory oversight is also on the cards at the EU level.

A second piece of proposed EU legislation, the Digital Services Act, is set to update rules for online businesses by setting clear rules and responsibilities on all players in specific areas such as hate speech and illegal content.

The UK is also working on a similar online safety-focused regime — proposing to regulate a range of harms in its Online Harms white paper last year. Though it has yet to come forward with draft legislation.

This summer the BBC reported that the government has not committed to introduce a draft bill next year either — suggesting its planned wider Internet regulation regime may not be in place until 2023 or 2024.

It looks savvy for UK lawmakers to prioritize going after platform power since many of the problems that flow from harmful Internet content are attached to the reach and amplification of a handful of tech giants.

A more competitive landscape for social media could encourage competition around the quality of the community experienced for users — meaning that, for example, smaller platforms which properly enforce hate speech rules and don’t torch user privacy could gain an edge.

Although rules to enable data portability and/or interoperability are likely to be crucial to kindling truly vibrant and innovative competition in markets that have already been captured by a handful of data-mining adtech giants.

Given the UK’s rush to address the market power of big tech, it’s interesting to recall how many times the Facebook CEO Mark Zuckerberg snubbed the DCMS committee’s calls for him to give evidence over online disinformation and digital campaigning (including related to the Cambridge Analytica data misuse scandal) — not once but so many times we lost count.

It seems UK lawmakers kept a careful note of that.

 



from TechCrunch https://ift.tt/3mhfkHu
Share:
//]]>

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support