Quantcast
Connect with us

ProPublica flagged Russian political ads Facebook didn’t know about — then they blocked anyone from finding future ads

Published

on

A number of organizations, including ProPublica, have developed tools to let the public see exactly how Facebook users are being targeted by advertisers.

Now, Facebook has quietly made changes to its site that stop those efforts.

ProPublica, Mozilla and Who Targets Me have all noticed their tools stopped working this month after Facebook inserted code in its website that blocks them.

ADVERTISEMENT

“This is very concerning,” said Sen. Mark Warner, D-Va., who has co-sponsored the Honest Ads Act, which would require transparency on Facebook ads. “Investigative groups like ProPublica need access to this information in order to track and report on the opaque and frequently deceptive world of online advertising.”

For the past year and a half, ProPublica has been building a searchable database of political ads and the segments of the population advertisers are paying to reach. We did this by enlisting thousands of volunteers who installed a web browser extension. The tool shared the ads users see as well as Facebook’s details on why the users were targeted.

In a statement to ProPublica, Facebook said the change was meant to simply enforce its terms of service. (The Guardian also published a story Sunday flagging the change.)

“We regularly improve the ways we prevent unauthorized access by third parties like web browser plugins to keep people’s information safe,” Facebook spokesperson Beth Gautier said. “This was a routine update and applied to ad blocking and ad scraping plugins, which can expose people’s information to bad actors in ways they did not expect.”

Facebook has made minor tweaks before that broke our tool. But this time, Facebook blocked the ability to automatically pull ad targeting information.

ADVERTISEMENT

The latest move comes a few months after Facebook executives urged ProPublica to shut down its ad transparency project. In August, Facebook ads product management director Rob Leathern acknowledged ProPublica’s project “serves an important purpose.” But he said, “We’re going to start enforcing on the existing terms of service that we have.” He said Facebook would soon “transition” ProPublica away from its tool.

Facebook has launched an archive of American political ads, which the company says is an alternative to ProPublica’s tool. However, Facebook’s ad archive is only available in three countries, fails to disclose important targeting data and doesn’t even include all political ads run in the U.S.

Our tool regularly caught political ads that aren’t reflected in Facebook’s archive. Just this month, we noticed four groups running ads that haven’t been in Facebook’s archive:

ADVERTISEMENT

 National Rifle Associatio

 Electoral reform advocacy group targeting Bernie Sanders supporter

ADVERTISEMENT

 Local anti-corruption group and

Union advertising to Democrats about health care policy.

After we contacted Facebook, the company canceled the ads and said it is “investigating why these particular ads weren’t classified as political so we can learn and update our protocols.”

ADVERTISEMENT

Journalists in other countries — including those with impending elections like Canada, Ukraine, Guatemala and Israel — currently have no way to track political ads or targeting information. Facebook announced Monday that it plans to expand its archive to those countries this year and will debut a global tool “by the end of June.”

Facebook’s archive doesn’t disclose the targeting advertisers do by racial, ethnic, religious, partisan and other sensitive attributes. Some of those microtargeting categories have been used to affect the political process: For instance, Russian agents targeted many African-Americans during the 2016 election.

In an email, Facebook said it doesn’t plan to disclose sensitive targeting categories in its archive because doing so “could expose people’s information.” It didn’t elaborate on how that might happen.

The proposed Honest Ads Act, which is expected to be re-introduced in Congress this year, would require Facebook to publish “a description of the audience targeted by the advertisement.”

ADVERTISEMENT

Facebook has also developed another tool that it says will allow researchers to analyze political ads more easily. That tool, called an API, is in “beta” and restricted to a few participants, including ProPublica, who had to sign a nondisclosure agreement about the data it provided.

One researcher with access said the API is not sufficient. It only allows searching by keyword, said Laura Edelson, a researcher at New York University who studies online political advertising. “You can only find ads about things that you already know you’re looking for,” Edelson said. “So any kind of emerging activity is potentially undiscoverable.”

What it all adds up to, said Knight First Amendment Institute senior attorney Alex Abdo, is “we cannot trust Facebook to be the gatekeeper to the information the public needs about Facebook.”

Here are the details of how our tool worked and what Facebook has done:

ADVERTISEMENT

All Facebook users can find details about how they’re being targeted by clicking through a series of options on the site. Our tool, the Political Ad Collector, automated the process. Every time one of our over 16,000 participants in crowdsourcing project scrolled past an ad like this one …

… our extension automatically captured the text and related picture. It also opened the ellipses on the top right of the ad, which leads to this menu:

From there, it read the information contained in “Why Am I Seeing This” and copied that to the database as well:

We have collected more than 100,000 political ads in this way. But Facebook’s latest update blocks tools like ours from clicking on the “Why Am I Seeing This” menu.

The company added code that prevents clicks generated by computers — including browser extensions — on just that one button. Web browsers make a distinction between a click generated by the computer and one generated by your mouse. Clicks from your mouse are marked “isTrusted“ and those generated by computer code are not.

ADVERTISEMENT

Facebook pointed out that other options, besides seeing the explanation for an ad’s targeting, exist behind that menu, like the ability to hide an ad or report it.

Facebook’s site does not make such a distinction between user or computer-generated clicks on other behaviors that have been abused by bad actors. For example, it is still possible to automatically like a page, watch a video or click through on an ad — loopholes exploited by bots and misinformation campaigns attempting to gain credibility or turn a profit.

When we asked Facebook why it does not use a similar filtering mechanism on other parts of the platform, it said it prevents “bot-like behavior” in other ways, including a collaboration with an effort to help take down an ad fraud ring.

This is not the first time Facebook has changed its code in a way that has broken our tool. For example, all ads are supposed to contain the word “sponsored” as part of a mandatory disclosure, so users can distinguish between ads and their friends’ posts. Our tool recognized ads by searching for that word. Last year, Facebook added invisible letters to the HTML code of the site. So, to a computer, the word registered as “SpSonSsoSredS.” Later, it also added an invisible “Sponsored” disclosure to posts from your friends. Many of the participants in our project noticed the effects of this change because it caused some menus to pop open unexpectedly or the page to scroll to the top repeatedly. Nowadays, the disclosure says “SpSpSononSsosoSredredSSS.” Some of these changes were likely also intended to thwart ad blockers.

ADVERTISEMENT

Here’s what the change looks like in the JavaScript code:

__d(AdsPrefsXout,
[cx,AdsTransparencyEvent,AdsTransparencyProduct,AdsTransparencyTypedLogger,AdsTransparencyXoutEvent,AdsTransparencyXoutProduct,AdsTransparencyXoutTypedLogger,DOM,EntstreamFeedObject,EventListener,ge],
(function(a,b,c,d,e,f,g){
use strict;
__p&&__p();
a = {
registerDropdownClick: function(a,c){
b(EventListener).listen(
a,
click,
function(){
new(b(AdsTransparencyXoutTypedLogger))().setEvent(b(AdsTransparencyXoutEvent).USER_ENGAGEMENT).setAdID(c).setProduct(b(AdsTransparencyXoutProduct).AD_DROPDOWN_BUTTON).log()})
},
registerDirectHideClick: function(a,c,d){b(EventListener).listen(a,click,function(){new(b(AdsTransparencyXoutTypedLogger))().setEvent(b(AdsTransparencyXoutEvent).USER_ENGAGEMENT).setAdID(c).setProduct(b(AdsTransparencyXoutProduct).AD_DIRECT_HIDE_BUTTON).log();
var e=b(DOM).create(div,{className:_5lum}),f=b(EntstreamFeedObject).getHscrollOuterRootIfAvailable(b(EntstreamFeedObject).getRoot(b(ge)(d)));
b(DOM).appendContent(e,a.getAttribute(data-action-in-progress-string));
b(DOM).insertBefore(f.firstChild,e)})},
registerNuxDropdownClick:function(a,c){b(EventListener).listen(a,click,function(){new(b(AdsTransparencyXoutTypedLogger))().setEvent(b(AdsTransparencyXoutEvent).USER_ENGAGEMENT).setAdID(c).setProduct(b(AdsTransparencyXoutProduct).NUX_AD_BUTTON).log()})},
blockScriptClicks: function(a,c){
__p&&__p();
var d=!1;
b(EventListener).capture(a,click,function(a){if(a.isTrusted===!1){
a.preventDefault();
a.stopPropagation();
if(d)return;
new(b(AdsTransparencyTypedLogger))().setAdID(c).setEvent(b(AdsTransparencyEvent).ACTION_BLOCKED).setProduct(b(AdsTransparencyProduct).FEED_UNIT_CHEVRON_BUTTON).log();d=!0}})
}
};
e.exports=a
})
,null);

The same new section of code that blocks our tool also sends a “log event” to Facebook, noting when an ad transparency tool is detected. Facebook says the change is meant to document “what percent of the traffic was from plugins that identify content without our permission versus Facebook users checking [Why am I seeing this] manually.”


Report typos and corrections to: [email protected].
READ COMMENTS - JOIN THE DISCUSSION
Continue Reading

COVID-19

We still don’t know how many people are in the hospital with COVID-19

Published

on

Late last month, Vice President Mike Pence sent a letter to administrators of the nation’s 6,000 hospitals requesting a favor.

He asked them to complete a form each day with data on the patients they are treating with COVID-19, the disease caused by the novel coronavirus, and submit it to the Centers for Disease Control and Prevention.

“The data will help us better understand disease patterns and develop policies for prevention and control of health problems related to COVID-19,” Pence wrote.

Continue Reading

Breaking Banner

Mike Pence’s office blocks top health officials from CNN as punishment

Published

on

Vice President Mike Pence has kept the nation's top health officials from appearing on CNN since the network stopped carrying the daily coronavirus briefings in their entirety.

The vice president's office, which is responsible for booking those officials to deliver pandemic information, told CNN that Dr. Deborah Birx or Dr. Anthony Fauci would not be permitted to appear on the network until it carries the briefings, including Pence's remarks, in full.

"When you guys cover the briefings with the health officials then you can expect them back on your air," a Pence spokesperson told CNN.

Continue Reading
 

Breaking Banner

‘Well-spoken cultist’: Bill Barr trashed for praising ‘statesmanlike’ Trump and urging an end to COVID-19 lockdowns

Published

on

During an interview with Fox News host Laura Ingraham Wednesday night, Attorney General Bill Barr praised President Trump's "statesman-like" effort at the "beginning" of the coronavirus epidemic where he "tried to bring people together" while "working with all the governors" -- a characterization that did not go over well with many of the President's critics on Twitter.

https://twitter.com/matthewamiller/status/1248241999297339394

https://twitter.com/andeparks/status/1248255118291742722

Continue Reading
 
 
You need honest news coverage. Help us deliver it. Join Raw Story Investigates for $1. Go ad-free.
close-image