ad.watch - Investigando anúncios políticos no Facebook
Por Manuel Beltrán e Nayantara Ranganathan
RESUMO: Dois investigadores traçam seu processo de criação o projeto ad.watch, uma investigação em estilo de pesquisa aberta sobre propaganda política no Facebook. Este estudo de caso rastreia o projeto evolução - com suas revelações, obstáculos, técnicas e ferramentas - de um esforço limitado para um recurso crescente que facilita investigações sobre anúncios políticos em todo o mundo.
Foi assim que viemos a publicar ad.watch, um projeto que revela informações sobre os anúncios políticos (anúncios) publicados no Facebook e no Instagram.
Grande parte da publicidade na internet é personalizada, um método comumente referido como publicidade direcionada. Anúncios direcionados usam informações psicológicas, comportamentais e outros tipos de informação sobre as pessoas para apresentar a cada um de nós uma mensagem diferente. A diferença pode estar no conteúdo, design, entrega ou outras características. A personalização das mensagens é complementada com informação sobre a sua eficácia, permitindo o teste de suposições criadas durante o perfil psicológico ou comportamental.
Porque os políticos hoje usam plataformas online para divulgar suas campanhas e promover suas mensagens, e essas plataformas entregam os anúncios com base em informações pessoais, a frase «o pessoal é político» tem ganhou uma nova dimensão. Os anúncios são personalizados de acordo com a nossa dados pessoais e padrões de comportamento, e recebemos essas informações direcionadas anúncios em nossas telas pessoais. No entanto, entender esses mecanismos s hão direto. A infra-estrutura de entrega de publicidade opera invisivelmente, com plataformas fazendo grandes esforços para ofuscar seus mecanismos e estabelecem muitas barreiras para entender como eles função. Frequentemente, nem mesmo os anunciantes têm uma visão completa de quem seus anúncios alcançam ou por quê.
Somos Nayantara e Manuel e criamos ad.watch para entender os novos canais, através dos quais a propaganda é criada e circula online.
Rumo a ad.watch
No processo de encontrar respostas para nossas perguntas específicas sobre o período de silêncio, encontramos outras formas interessantes de ler os dados através do Tableau. Um dos principais desafios aqui foi entender como para estruturar os dados. Como os dados que estávamos coletando estavam em vários arquivos, tínhamos que ter certeza de que os arquivos estavam «empilhando» da maneira certa.
Desenhamos a coleta de dados de forma que houvesse cortes limites para arquivos com base em seu tamanho. Isso significava que se um os dados de anúncios do ator político eram enormes (como os de Donald Trump), então o arquivo conteria menos do que o número padrão de dez os dados de anúncios dos atores e, em vez disso, contêm apenas os dados de um político. fomos capaz de entender a estruturação dos dados por meio de muitas tentativas e erros, bem como com a ajuda dos fóruns da comunidade do Tableau e do YouTube vídeos sobre a ferramenta. Uma vez que é uma análise de dados tão popular e ferramenta de visualização, encontrar respostas para tais detalhes era uma questão de explorando fóruns já disponíveis.
Além das quebras do período de silêncio, encontramos outras detalhes interessantes: a arquitetura da informação sobre política anúncios, as categorias de informação disponíveis, bem como os dados que estava faltando, foram todos reveladores. Por exemplo, aprendemos que o Facebook perfilou as pessoas em binários de gênero masculino e feminino, apesar permitindo que os usuários se identifiquem entre uma ampla gama de opções no usuário lado. Esta foi uma espiada interessante em como as coisas funcionam de maneira diferente em o nível de experiência do usuário versus como eles funcionam no back-end infraestrutura projetada para comercialização.
Captura de tela: opções do menu suspenso que aparecem nas configurações da conta do Facebook depois que você escolhe definir seu sexo como “Personalizado”. Data de 29 de novembro de 2019. Fonte: Nayantara Ranganathan.*
Captura de tela: Segmentação de usuários do Facebook no binário de gênero, visível no processo de criação de anúncios ou impulsionamento de postagens. Data de 29 de novembro de 2019. Fonte: Nayantara Ranganathan.
Assim que conseguimos descobrir as violações do período de silêncio, o índio as eleições estavam bem encaminhadas e as eleições para o Parlamento Europeu de 2019 aproximavam-se. Nesta ocasião, também começamos a pesquisar dados sobre os partidos espanhóis para as eleições do Parlamento Europeu e as eleições municipais e nacionais espanholas de 2019. Lentamente, começamos a ampliar o escopo de nossa coleta e pesquisa de dados.
Embora agora estivéssemos coletando e explorando dados de anúncios do Facebook de vários contextos, ficamos desconfortáveis escrevendo histórias sobre países que não tínhamos contexto ou conhecimento. Além disso, sentimos que era de alguma forma incorreto fazê-lo, mesmo que tivéssemos algum entendimento do lugares ou encontrar colaboradores de diferentes países.
Mas enquanto permanecemos em nossa pista, também queríamos fazer esses dados em outros países acessíveis. Decidimos que coletaríamos os dados disponível em todos os países, mas deixe a análise e investigações a quem possa estar interessado em assumi-las.
Nos conectamos com colegas e amigos em outras partes do mundo onde as eleições estavam acontecendo para ver se os dados que estávamos coletando pode ser útil para eles diretamente ou se eles estiverem interessados em defendendo a liberação de dados semelhantes nessas regiões também. Por exemplo nas Filipinas, o Facebook é um canal crucial para Duterte campanhas de desinformação do governo. As Filipinas também passam a ser um dos mercados de trabalho para contratos exploradores e traumáticos trabalhos para moderação de conteúdo, inclusive para o Facebook. falamos com um amigo e colega nas Filipinas para compartilhar o que havíamos trabalhado, e ouvi sobre os desenvolvimentos e preparativos de lá.
Assim que decidimos começar a ver anúncios políticos globalmente, tivemos que considerar seriamente qual abordagem adotar, quais grupos ou pessoas foram já trabalhando em projetos relacionados a propaganda política e o que lacunas que podemos preencher. Sabíamos que FBTrex por exemplo, é uma ferramenta que ajuda os usuários a coletar metadados de postagens, incluindo anúncios políticos que aparecem em seus feeds de notícias, instalando um extensão do navegador.
Dicas:
Rastreamento do Facebook Exposed (FBTrex) é um projeto cuja visão é que os indivíduos devem estar no controle de seus algoritmos. Entre outras coisas, o projeto oferece um navegador plugin que coleta os metadados de todas as postagens públicas em sua linha do tempo e permite que você contribua com esses dados para um conjunto de dados público ou mantenha é privado para seu próprio uso. O FBTrex também permite que pesquisadores (e usuários) usar/reutilizar uma parte dos dados por meio de seus API.
ProPublica criou um ferramenta chamada Political Ad Collector, que permite instalar um plug-in de navegador que coleta todos os anúncios políticos que você vê enquanto navega e os envia para um banco de dados que permite que o ProPublica analise melhor a natureza do anúncio político segmentação.
Who Targets Me é um projeto que também usa um plug-in de navegador que você pode instalar para coletar todos os postagens na sua linha do tempo. O plug-in envia esses dados para um crowdsourced banco de dados global de anúncios políticos, corresponde aos posts patrocinados contra listas categorizadas de anunciantes políticos e desenha conclusões sobre quem está mirando você online.
Tínhamos nos familiarizado com os campos de informação que o anúncio do Facebook A API da biblioteca estava fornecendo, mas não conhecíamos os campos de informações que estavam disponíveis para os anunciantes segmentarem os usuários. Isso significava que mesmo que soubéssemos que um determinado anúncio estava alcançando entre 1.000 e 10.000 pessoas em Delhi, não sabíamos se esses eram os parâmetros que o anunciante selecionou para segmentar os anúncios. Nós estávamos interessados em conhecer as opções disponíveis para administrar o direcionamento, por assim dizer.
Então criamos páginas de partidos políticos fictícios e testamos a compra e segmentação de anúncios. Criamos uma página cada e «impulsionamos» as postagens. O nível de detalhe disponível deste lado da janela foi, sem surpresa, muito maior do que a informação que estava sendo revelada em nome da transparência. Poderíamos criar «públicos personalizados» por especificando quais tipos de «Dados Demográficos, Interesses e Comportamentos» nós queria atingir. Também poderíamos inserir dados de pessoas que possam ter interesse indicado em nosso negócio ou campanha e o Facebook ofereceria para fornecer anúncios a um «público semelhante». Estes são anúncios padrão métodos, mas estávamos prestes a descobrir que os campos disponíveis para a segmentação parecia bastante problemática e poderia se prestar a todos tipos de discriminação. Por exemplo, encontramos uma categoria chamada «Amigos de pessoas celebrando o Ramadã.»
Captura de tela: sugestões de segmentação ao criar um anúncio. Data: 29 de novembro de 2019. Fonte: Nayantara Ranganathan.
Estávamos cientes dos acontecimentos nos EUA, onde práticas de discriminação havia sido gravado e o Facebook responsabilizado. Também sabíamos que O Facebook se comprometeu a não permitir a segmentação com base em raça e gênero quando se trata de anúncios sobre emprego, habitação e crédito. Essas categorias confirmou que tais problemas não foram resolvidos em outras partes do mundo. Por exemplo, a opção acima de «amigos de pessoas comemorando Ramadã» é uma categoria que pode ser facilmente usada para excluir os muçulmanos em um momento em que o sentimento anti-muçulmano na Índia está emergindo do Estado assim como a sociedade em geral.
Captura de tela: Sugestões para excluir pessoas do direcionamento de um anúncio. Data: 29 de novembro de 2019. Fonte: Nayantara Ranganathan.
Publicando ad.watch
Decidimos coletar os dados de atores políticos em todo o mundo.
Como mencionado anteriormente, estávamos usando o Tableau para experimentos internos e entender os dados. Nesse ponto, descobrimos que o Tableau permite a publicação online e, de fato, desde relativamente dinâmico e níveis sofisticados de visualização.
Enquanto começamos a usar o software Tableau para nos ajudar a entender o dados, uma vez que surgiu a questão da publicação, tivemos que pensar se queríamos tornar todo o projeto dependente de uma ferramenta que era proprietário e usado principalmente por departamentos de marketing para conduzir dados análise. Também tivemos que considerar se estávamos fazendo nossa ferramenta vulnerável por confiar em software proprietário que poderia decidir revogar o acesso a qualquer momento.
Exploramos outras alternativas de código aberto muito apreciadas, como Rawgraphs e Datawrapper. No entanto, dado o tamanho e particularidades dos dados, estes foram descartados. Alguns essas alternativas não puderam analisar o conteúdo dos anúncios porque o os anúncios às vezes continham caracteres de scripts não latinos. Então decidimos para prosseguir e usar o Tableau Public.
Observação:
Foi intrigante entender por que muitos desses aclamados jogos abertos fonte e software de visualização gratuito não conseguiram abrir nem mesmo pequenos extratos dos arquivos JSON.
Usamos um site chamado JSONLint que ajudou a «validar» os dados JSON – isto é, ajudando-nos a identificar se ocorreram erros de formatação nos arquivos. Fazer isso nos ajudou a descobrir saí que os erros de sintaxe identificados foram porque o campo com o texto geralmente continha scripts diferentes do latino, e também emojis e caracteres que foram incluídos em versões recentes do Unicode, o padrão para codificação de scripts em caracteres legíveis por máquina.
Então começamos a projetar nossas próprias interfaces visuais com o Tableau para navegar os bancos de dados. Um dos problemas que encontramos ao usar o Tableau foi a quantidade de recursos de computação necessários para lidar com bancos de dados de deste tamanho, que ultrapassavam os cinco gigabytes. Nossos computadores rodando através da máquina virtual eram muito lentos ou às vezes simplesmente incapazes de carregar os dados. Com os recursos financeiros limitados que tínhamos, comprar um computador mais poderoso não era uma opção.
Manoel
A universidade onde leciono fornece acesso aos professores para uma área de trabalho remota com um processador Intel Xeon com 20 GB de RAM. Esse acabou sendo uma ótima solução. Na ausência disso, teríamos tive que alugar um Virtual Private Server para o mesmo fim. Uma área de trabalho remota pode ser acessada através Protocolo de Área de Trabalho Remota (RDP). Este é um protocolo que permite acessar e controlar um sistema que não está no mesmo local físico que você.
Usar o RDP do meu laptop nos permitiu começar a carregar os bancos de dados em Tableau e ter os recursos do meu terminal disponíveis para outras tarefas. Até tornou possível fechar meu laptop enquanto o RDP continuava a carregar.
Observação:
Tableau permite importar arquivos JSON de até 128 MB apenas, então tivemos para dividir os arquivos abaixo desse limite. Usamos um script Python simples chamado json-splitter para essa tarefa.
Foi um desafio encontrar o equilíbrio certo entre o que queríamos alcançar com o projeto.
Por um lado, estávamos diante de uma vasta quantidade de dados relevantes para a política de muitos países, e já havíamos encontrado questões críticas na quantidade limitada de países que nós mesmos analisamos. Houve uma certa vertigem sobre a profundidade do que mais poderia estar lá, encorajando nossa necessidade de colocá-lo para fora.
Como um projeto que expõe os mecanismos não amplamente compreendidos tecnologia era importante apresentá-la de forma que qualquer um pudesse aprenda e entenda como os anúncios políticos funcionam. precisava ser poderoso o suficiente para permitir que jornalistas e pesquisadores conduzam suas investigações. E também precisou problematizar como o infraestrutura das funções de anúncios do Facebook. Unindo todos esses elementos levou algum tempo e exploramos diferentes iterações.
Entre torná-lo compatível com dispositivos móveis ou baseado em desktop, optamos pelo desktop, pois permite uma experiência mais aprofundada.
Enquanto se aproximava a conclusão das interfaces que estavam prestes a dar leve para ad.watch, a questão de como atualizar o banco de dados tornou-se mais iminente.
Se descarregarmos os dados diretamente para quem precisa deles, talvez o as atualizações não eram tão relevantes, mas como um recurso ao vivo, sentimos que era mais importante estar sempre atualizado. Algumas semanas antes do lançamento do projeto online participamos de um workshop do Exposing o projeto Invisible de Tactical Tech, (para trabalhar, entre outras coisas, no próprio início de esse texto). Lá contamos com a ajuda de Wael Eskandar para desenvolver o projeto inicial núcleo de um script Python que automatizaria a coleta de anúncios do API. Alguns dos desafios em desenvolvê-lo incluíram como tornar o Python incorporar as modificações que estávamos introduzindo anteriormente manualmente.
O próximo desafio foi fazer o script entender quando os anúncios de um determinada consulta foi concluída para que o script pudesse pular para a próxima consulta. Ou como fazer com que os arquivos fiquem abaixo do limite de 128 MB do Tableau cada. Como observado anteriormente, o Facebook impôs limites às consultas automatizadas, então começamos a imitar o comportamento humano adicionando atrasos de tempo aleatórios entre as consultas. De sua versão inicial, o roteiro tornou-se uma espécie de precioso sistema de coleta de dados, que estávamos melhorando a cada dia. Tornou-se também uma fonte de experimentação através que entendemos melhor como funciona a API do Facebook e experimentar com a recolha de dados que não os dos partidos políticos. No posteriormente, criamos um sistema de arquivos de texto com IDs de página que o script passaria, e um arquivo separado com o ISO de duas letras códigos de país, para que pudesse coletar vários países de uma só vez. Esta nova sistema também nos permitiu fazer atualizações na lista de partidos políticos mais facilmente.
Captura de tela: página inicial do site ad.watch. Data: 29 de novembro de 2019. Fonte: Manuel Beltrán.
O primeiro lançamento de ad.watch em 26 de julho de 2019 foi feito com a coleta manual de dados, mas até então também tínhamos aperfeiçoou o script a um nível que nos permitiu atualizar regularmente o dados, que se mostraram extremamente valiosos para a eficácia do projeto. Entramos no ar com o site e postamos em nossas redes sociais redes de mídia para espalhar a palavra. Recebemos muitos comentários positivos reações, inclusive de jornalistas que estavam usando os dados para entender os esforços de transparência de anúncios muito divulgados do Facebook, observando as tendências nas eleições de vários países.
Bifurcações na estrada
Verificação pelo Facebook
Quando estávamos tentando acessar os dados pela primeira vez e precisávamos ir através do processo de verificação de identidade, percebemos que os dois nós tivemos que enfrentar processos de verificação bastante diferentes para obter acesso para a plataforma de anúncios do Facebook.
Nayantara
Como alguém cuja «localização do país principal» foi Índia, tive que passar por uma etapa adicional para verificação de endereço. Isso envolvia escolher entre receber um código entregue em minha casa via correio ou visita de «alguém». A diferença de tempo entre os dois opções era significativo: o correio levaria três semanas, e o a visita à minha casa aconteceria dentro de uma semana. Porque queríamos obter com o processo o mais rápido possível e também foram atingidos pelo processo de visita domiciliar, decidimos por essa opção.
Captura de tela: processo de verificação em três etapas para acessar a Ad Library API. Data: 20 de abril de 2019. Fonte: Manuel Beltrán.
O que aprendemos no decorrer desse processo de identificação explodiu nossas mentes.
Um dia após fazer o pedido de verificação, eu (Nayantara) recebi um telefonema de um homem que iria conduzir o processo. Ele disse que estava ligando sobre a verificação do Facebook e para perguntar se o dia seguinte foi um bom momento para visitar.
Captura de tela: Informações de identidade do representante do OnGrid encarregado da verificação. Data: 23 de abril de 2019. Fonte: Nayantara Ranganathan
Todo esse episódio foi interessante por vários motivos, incluindo mostrar como a ascensão da tecnologia de identificação e negócios na Índia interagido com grandes empresas de tecnologia como o Facebook em busca de olhos e ears na Índia, um exemplo perfeito de verificação de identidade como serviço.
Naquela ocasião, perguntei ao interlocutor quem ele era e de qual empresa ele era de. Ele hesitou um pouco e parecia que não esperava o pergunta. Uma vez que estabelecemos que ambos sabíamos falar Kannada (um língua falada predominantemente pelo povo de Karnataka no sudoeste Índia), estabelecemos um tom mais familiar e confiante de conversa. Ele disse que trabalhava para uma empresa chamada OnGrid, e que seu nome era Umesh (nome alterado). Enquanto ele falava com uma mulher na linha, eu senti um tom estranho quando ele me perguntou sobre meu endereço e direções para minha casa. Ele também se tornou mais próximo ao revelar detalhes sobre si mesmo.
Umesh me garantiu que eu não precisava estar em casa quando ele me visitou, e contanto que houvesse alguém lá que pudesse confirmar que eu moro lá, foi suficiente. Dois dias depois, Umesh chegou em minha casa para conduzir a verificação. Ele tirou fotos da minha casa por fora, uma marco perto dele, e peguei a assinatura da pessoa que mora na casa comigo (já que não estava em casa durante a visita).
Captura de tela: conversa no WhatsApp entre Nayantara e o representante da OnGrid. Data: 23 de abril de 2019. Fonte: Nayantara Ranganathan.
Naturalmente, estávamos curiosos sobre a empresa que era do Facebook provedor de serviços de verificação. OnGrid é uma empresa indiana que afirma permitir que as pessoas na Índia «estabeleçam confiança instantaneamente» ou em outras palavras, envolvendo-se em um comércio de informações de identificação. Eles oferece tudo, desde «verificação de educação» até uma verificação do tribunal registros. Dois anos atrás, eles estavam no noticiário por causa de uma imagem assustadora que causou um arrepio coletivo na espinha: um anúncio de reconhecimento de imagem não consensual usando a biometria nacional arquitetura de identificação, Aadhaar. Como uma entidade separada, OnGrid”s os termos de serviço e a política de dados são diferentes das políticas do Facebook sobre a retenção de informações enviadas para fins de identificação.
Imagem: imagem agora deletada postada no Twitter por OnGrid. Data: 29 de novembro de 2019. Fonte: https://mashable.com/2017/02/14/india-aadhaar-uidai-privacy-security-debate/. Página arquivada aqui.*
As políticas do Facebook não mencionavam nada sobre a terceirização de alguns elementos do processo de verificação ou como as políticas de dados podem alterar nesse caso. Isso possivelmente significava que os compromissos assumidos pelo Facebook para a exclusão de dados de identificação compartilhados com Facebook não era algo que o OnGrid – enquanto atendia a necessidade de «verificação de última milha» – era obrigado a respeitar. De fato, Facebook afirma excluir permanentemente os dados que coleta de usuários que passar pelo processo de verificação. A OnGrid, empresa contratada pela O Facebook na Índia, por outro lado, retém esses dados para fornecer «serviços de identificação» a outras entidades. OnGrid usa os dados das pessoas para criar seu banco de dados para reutilizá-lo e oferecê-lo como um serviço para outras entidades.
Depois desse processo, finalmente tive meu processo de verificação de endereço concluído e com acesso à API da biblioteca de anúncios.
Manoel
Como cidadã espanhola morando na Holanda, minha o processo de verificação de identidade era muito mais simples e envolvia menos etapas. No entanto, uma vez enviado, a aceitação final demorou cerca de dois dias para passar, em comparação com a resposta instantânea Nayantara recebido nessa etapa, indicando que o meu pode ter envolvido um ser humano no processo.
Esses episódios foram úteis para entender os diferentes tratamentos de dados processos em diferentes países, as vulnerabilidades criadas por envolvendo agentes de verificação de terceiros e o fato escandaloso de que nada disso era necessário para obter informações de interesse público isso foi crucial para entender como a mídia social poderia ser interferir nos processos democráticos.
Incluir imagens e vídeo ou não?
Tínhamos um plano para visualizar dados sobre os anúncios, mas os «visuais» do anúncio próprios não puderam ser mostrados. Ou seja, as imagens ou conteúdo de vídeo, que é o elemento que os usuários do Facebook e Instagram devem ver, não pôde ser visualizado devido às peculiaridades dos dados estrutura e acessibilidade.
Os dados não foram fornecidos de forma a serem descarregados independentemente da dependência da API e, portanto, foi um desafio visualizá-la. Mas mesmo que encontremos uma maneira de incorporar o link e apresentar o visuais, houve outro problema: a URL com os visuais inclui um «token de acesso» ativo. Este é um token único e com limite de tempo que impede o link seja útil após uma hora. Os links não seriam de muito usar sem o token de acesso do próprio visualizador.
Observação:
É assim que um URL de instantâneo de anúncio se parece:
https://www.facebook.com/ads/archive/render_ad/?id=251563729117836&access_token=EAAjPOWfPqZCgBAAJ0csteVNkFJcyxbQZA7m1xbJ8w3fzFRlm6apQ5cAnzsjBNOOJt4zSEE8IxB4k9HcKydhbcd7P4 SnNTBn82G7s>gyy5YXX8fmZC0hUGcpQMfZCp3uWaSWeX4urEcNPwB8SM01clzJSqRXPjjh8ZBguzXZC9sc9whaz0hE9MGEj889ztZBW2XNxVfitweUSkVrcKGiwePQQZB7uGBOa
Um token de acesso é o que vem depois de
access_token=
, e é o longo sequência de letras e números:EAAjPOWfPqZCgBAAJ0csteVNkFJcyxbQZA7m1xbJ8w3fzFRlm6apQ5cAnzsjBNOOJt4zSEE8IxB4k9HcKydhbcd7P4SnNTBn82G7sgyy5YXX8fmZC0hUGcpQMfZCp3uWaSWeX4urEcNP wB8S>M01clzJSqRXPjjh8ZBguzXZC9sc9whaz0hE9MGEj889ztZBW2XNxVfitweUSkVrcKGiwePQQZB7uGBOa
Consideramos coletar imagens da Biblioteca de anúncios usando um dos complementos para o navegador como “Baixar todas as imagens”. Havia também muitos scripts em Python para ajudar alguém a fazer isso. No entanto, o Facebook impede todos esses técnicas de raspagem da coleta dos recursos visuais. Além disso, o Facebook também proíbe os usuários de fazer tal raspagem em geral.
Captura de tela: Termos de Serviço do Facebook. Data: 8 de dezembro de 2019. Fonte: Manuel Beltrán.
Por um lado, era importante incluir os recursos visuais, pois eles têm um valor de recall para pessoas que navegam nas interfaces. Por outro lado, nós me perguntei se poderia realmente ser uma coisa boa não distrair as pessoas com recursos visuais, pois o aspecto mais importante a ser transmitido era que os recursos visuais podem não ser tão especiais quanto os metadados sobre eles, como o alvejando.
No entanto, também tentamos usar o comando «wget» para fazer isso, mas não funcionou.
Por fim, encontramos uma solução alternativa usando os recursos disponíveis no Tableau para permitir que os usuários do ad.watch possam inserir seus próprios tokens de acesso e visualizar o conteúdo dos anúncios.
Porém, após o lançamento, encontramos algo chamado “Access Token Debugger”, onde era possível estender o tempo de vida ou validade de cada acesso símbolo. Passamos então a usar tokens de acesso estendido em nosso sistema de coleta de dados.
Captura de tela: Depurador de token de acesso. Data: 30 de novembro de 2019. Fonte: Manuel Beltrán.
Trabalhando com jornalistas
Ao trabalhar em conjunto com jornalistas para investigar histórias emergentes dos dados, muitos queriam ver os dados brutos. No entanto, compartilhar o os dados vieram com um problema. Os dados continham o parâmetro de
"ad_snapshot_url"
, que continha nossos tokens de acesso pessoal, que descrevemos anteriormente.
Este token de acesso é exclusivo para diferentes contas de desenvolvedor e obtém registrados nos dados retornados pelas consultas. Desde que estávamos sendo cuidadosos para não fazer nada que pudesse revogar nosso acesso à API, tínhamos para removê-lo antes de compartilhar os dados. Mas remover o token de acesso de os dados de cada anúncio tiveram que ser automatizados, pois tínhamos milhões de anúncios. O solução foi bastante fácil de encontrar pesquisando em StackOverflow, e pudemos usar uma ferramenta chamada SED (Stream Editor) que já vem incluso no terminal do Linux.
sed -i -e 's/EAAjPOWfPqZCgBAAJ0csteVNkFJcyxbQZA7m1xbJ8w3fzFRlm6apQ5cAnzsj BNOOJt4zSEE8IxB4k9HcKydhbcd7P4SnNTBn82G7sgyy5YXX8fmZC0hUGcpQMfZCp3uWaSWeX 4urEcNPwB8SM01clzJSqRXPjjh8ZBguzXZC9sc9whaz0hE9MGEj889ztZBW2XNxVfitweUSkV rcKGiwePQQZB7uGBOa//g' US_20_1.json
Usando esses parâmetros, o SED pesquisa em um arquivo de texto o conteúdo de o token de acesso e o exclui. Esta ferramenta nos permitiu limpar facilmente os arquivos brutos de dados de forma automatizada e eficiente.
Como os dados que coletamos eram sobre os próprios anúncios e não envolviam os feeds de notícias pessoais dos usuários, não tivemos que lidar com o problema de proteção de dados pessoais.
Depois de publicar ad.watch
Manutenção, atualização e adaptação dos bancos de dados
Uma vez que o projeto foi tornado público, tornou-se também imperativo que o os dados sejam atualizados regularmente e o banco de dados seja mantido. Isso envolveu perguntas sobre a frequência das atualizações, se deve coletar dados de o início de cada vez, e se não, como coletar dados exatamente de onde havíamos parado.
Adicionamos mais países à medida que seus dados foram adicionados à API do Facebook. Argentina e Sri Lanka foram adicionados pouco antes das eleições lá, e os dados de Cingapura também foram divulgados. Não houve verificação procedimentos para a Noruega e a Suíça, mas conseguimos coletar os dados sobre esses países já.
Manoel
Com o passar do tempo após o lançamento, também trabalhei para ajuste os scripts que usamos para coletar os dados, para que o a coleta foi mais eficiente, com intervenção humana mínima para determinadas tarefas.
Resposta do Facebook:
Logo após o lançamento, o (ex) vice-presidente de anúncios do Facebook deu algumas palavras de incentivo ao projeto. Isso foi estranho, pois o projeto não pretendia ser uma «ferramenta de visualização», mas desafiou a falta de acesso sistemático a dados pelo Facebook.
O projeto é uma ação para destacar o conflito fundamental entre A infraestrutura de publicidade do Facebook e as condições necessárias para participação democrática significativa nas redes sociais. Com o maior individualização possibilitada pela publicidade direcionada no Facebook,
e sua falha em abrir esses dados em todos os países em que operam Isso significava que essas condições estavam sendo derrotadas repetidas vezes.
Por esse motivo, não queríamos que o Facebook cooptasse nosso projeto e tornasse faz parte de sua história de sucesso em transparência.
Censura no Twitter
Começamos a notar algo peculiar dois dias depois de lançar o local na rede Internet. Alguns tweets feitos por outros sobre o projeto não eram mais visível para nós. Era improvável que várias pessoas tivessem tuitado sobre o projeto e deletou seus tweets.
Logo percebemos que nossos próprios tweets sobre o projeto também eram ausente. Inicialmente, não percebemos isso, pois ambos podíamos ver nossos próprios tweets. No entanto, acabamos percebendo que não podíamos mais ver um ao outro. tweets de outros.
Entendido como «shadowbanning», esse foi um fenômeno que ouvimos de antes.
Isso é ainda mais difícil de detectar, pois os tweets continuam visíveis ao autor dos tweets, sem levantar suspeitas. Este fenômeno foi uma ocorrência regular que as pessoas observaram quando se tratava de tweets e contas de usuário relacionadas à Caxemira, por exemplo.
Decidimos abordar a questão imediatamente por meio de um relatório com o Twitter equipe de suporte. Um dia depois, ainda não tínhamos ouvido falar deles. Que foi quando decidimos que talvez valesse a pena solicitar apoio e ajuda para entender o que estava acontecendo. Publicamos a seguinte chamada de suporte.
Captura de tela: Tweet pedindo apoio sobre a censura. Data: 2 de agosto de 2019. Fonte: Nayantara Ranganathan.
A essa altura, descobrimos que não apenas os tweets desapareceram, mas também também impossível postar um tweet com a URL do projeto. Nós achamos isso outros também estavam enfrentando esse problema.
Capturas de tela: Pessoas no Twitter nos alertando sobre a censura. Data: 4 de agosto de 2019. Fonte: Nayantara Ranganathan.
Foi bastante estranho que o URL do projeto também tenha sido bloqueado em Mensagens Diretas do Twitter.
Captura de tela: censura na janela de mensagem direta do Twitter. Data: 3 de agosto de 2019. Fonte: Nayantara Ranganathan.
Recebemos apoio de muitos amigos, colegas e desconhecidos no forma de documentação de mensagens de erro, conectando-nos com e sugerindo pessoas que trabalham no Twitter para contato.
Enquanto isso, descobrimos que alguém que tentou postar um link para o projeto no LinkedIn também recebeu uma mensagem de alerta. nós adivinhamos que o URL pode ter sido sinalizado em algum tipo de centralizado lista negra além das plataformas. Este foi realmente o caso, como descobrimos que uma das empresas de segurança que classifica URLs e cria listas negras - https://fortiguard.com/webfilter - de fato, listou o ad.watch como spam com base no relatório de alguém. Nós apresentou um recurso com eles, e recebeu uma resposta dizendo que eles tinham reclassificou (curiosamente) como publicidade.
Captura de tela: resultados de uma pesquisa que classificou o ad.watch como spam. Data: 5 de agosto de 2019. Fonte: Nayantara Ranganathan.
Eventualmente, o Twitter removeu o shadowbanning, mas não nos forneceu qualquer explicação. Nossa investigação continuou; alguém nos colocou em contato com um pessoa trabalhando no Twitter que parecia ansiosa para ajudar, mas isso foi em lugar nenhum. Também exploramos a possibilidade de usar diferentes canais para tente obter uma explicação sobre o motivo do bloqueio, incluindo através do uso do Direito à Explicação no European GDPR (General Data Protection Regulation). O direito de A explicação teoricamente pode forçar o Twitter a relatar o motivo a censura ocorreu, se fosse algorítmica.
Principais conclusões
Das falhas técnicas nas ferramentas às promessas sérias nas políticas, aprendemos muito sobre o submundo da economia da informação, ou seja, a venda de dados pessoais para marketing e seu impacto descomunal nas realidades sócio-políticas das pessoas. Além do Facebook, o projeto nos apresentou o ethos e o modus operandi de empresas que se dedicam à extração e monetização de dados sobre a vida das pessoas.
Este projeto era sobre acreditar que uma pequena equipe de dois poderia de alguma forma desafiar uma entidade como o Facebook, com sua escala de recursos e poder de narrativa. Isso significava que estávamos constantemente sob o risco de que nossos O acesso à API pode ser retirado ou nossos métodos classificados como contra termos de uso do Facebook, ou mesmo considerando que o Facebook teve acesso a tanta informação sensível sobre nós que poderia ser usada para prejudicar caminhos. Essas coisas drásticas não aconteceram, mas na época da trabalhando no projeto antes de lançá-lo, carregamos conosco todos essas possibilidades.
No geral, muitos fatores se juntaram para a realização do projeto:
compreender as lacunas que existiam neste meio
confiando que havia uma maneira de contornar as limitações quando as coisas não eram simples
estender a mão e ser beneficiário de conselhos generosos de amigos
levar a sério a comunicação dos dados
Esses foram alguns aspectos que ajudaram, em retrospectiva.
A partir de janeiro de 2020, o projeto toma novos rumos: estão trabalhando na divulgação de informações sobre propaganda política nas redes sociais mídia mais facilmente digerível para diferentes grupos de pessoas em diferentes partes do mundo. Também estamos voltando ao nosso objetivo inicial de desenvolvendo um método para tornar os dados disponíveis para download para qualquer pessoa que deseje passar por isso eles mesmos.
A manutenção e atualização dos bancos de dados também nos mantém ocupados. Como cenários políticos globais estão mudando e novos partidos e coalizões surgem, recebemos contribuições de visitantes que enviam e-mail novas páginas a serem adicionadas ao ad.watch.
Continuamos a documentar e atualizar o ad.watch com novas iterações do projeto. Visite-nos em ad.watch ou escreva-nos para info@ad.watch.
*Todos os tokens de acesso no artigo foram modificados.
Publicado em abril de 2020
Traduzido para português em julho de 2023
Recursos
Artigos e guias
Ferramenta de anúncios do Facebook criada para combater a desinformação não funciona como anunciado do The New York Times (cópia arquivada da Wayback Machine disponível aqui). Um artigo sobre a biblioteca de anúncios do Facebook.
Cambridge Analytica Files, do The Guardian (cópia arquivada da Wayback Machine disponível aqui). Uma série de investigações sobre as controversas práticas de mineração de dados e marketing eleitoral da empresa de consultoria política Cambridge Analytica.
Novas mídias, novas violações: campanha eleitoral no Facebook viola o código de conduta, artigo do HuffingtonPost Índia (cópia arquivada da Wayback Machine disponível aqui).
Esta ferramenta permite que você veja os anúncios políticos direcionados do Facebook em todo o mundo, artigo da Vice (cópia arquivada da Wayback Machine disponível aqui).
Adolescentes expostos a anúncios políticos altamente carregados no Facebook e Instagram, artigo da Sky News (cópia arquivada da Wayback Machine disponível aqui).
The Influence Industry, da Tactical Tech (cópia arquivada da Wayback Machine disponível aqui). Um projeto de pesquisa que analisa as práticas de coleta, processamento e uso de dados pessoais de eleitores em eleições em todo o mundo.
Ferramentas e Bancos de Dados
Bash. Uma linguagem para se comunicar com os sistemas operacionais das distribuições Linux.
API da biblioteca de anúncios do Facebook. A API do Facebook que permite que determinados usuários pesquisem anúncios marcados como relacionados à política e questões de importância política.
Facebook Tracking Exposed. Um projeto que oferece um plug-in de navegador, que coleta os metadados de todas as postagens públicas em sua linha do tempo e permite que você contribua com esses dados para um conjunto de dados público ou mantenha-os privados.
Json splitter. Uma ferramenta de linha de comando para dividir grandes arquivos JSON em arquivos menores.
Json lint. Uma ferramenta que ajuda a validar (verificar) arquivos json e reformatá-los.
Political Ad Collector da ProPublica. Uma ferramenta que permite instalar um plug-in de navegador que coleta todos os anúncios políticos que você vê durante a navegação e os envia para um banco de dados que permite ao ProPublica analisar melhor a natureza da segmentação de anúncios políticos.
Remmina. Aplicativo que ajuda a conectar-se a computadores remotos usando protocolos como o Remote Desktop Protocol.
Sed. Um editor que permite realizar transformações básicas de texto no terminal.
Stackoverflow. Um fórum da web onde os desenvolvedores fazem e respondem perguntas.
Tableau. Um conjunto de aplicativos de software para visualização e análise de dados.
VirtualBox. Aplicativo que permite executar um sistema operacional diferente daquele instalado em seu computador.
Wget. Software para recuperar conteúdo de servidores da web.
Who Targets Me. Um projeto que usa uma extensão de navegador de plug-in de navegador para anúncios políticos de crowdsourcing, você pode instalá-lo para coletar todas as postagens patrocinadas em sua linha do tempo e ver quem está direcionando seu voto.
Glossário
term-api
API – significa interface de programação de aplicativos (Application Programmin Interface em inglês), uma ferramenta de software que facilita a comunicação entre um usuário e um conjunto de dados, entre outras coisas. uma forma pela qual um plataforma pode tornar seus dados acessíveis a desenvolvedores externos gratuitamente ou sob algumas condições ou taxas. Por exemplo, a API da biblioteca de anúncios do Facebook permite que os usuários consultem dados de anúncios usando um conjunto particular de comandos desenvolvidos pelo Facebook.
term-extension
Extensão do navegador – também chamados de add-ons, são pequenos pedaços de software usado para estender as funcionalidades de um navegador da web. Estes podem ser qualquer coisa, desde extensões que permitem fazer imagens de páginas da web que você visita àquelas que verificam e corrigem sua ortografia ou bloqueiam anúncios nos sites.
term-plugin
Plugin do navegador - um software que pode ser adicionado aos navegadores para melhorar funcionalidades específicas.
term-fbpageid
Facebook Page ID - um número que identifica exclusivamente cada página do Facebook.
term-interface
Interface - (neste caso) um conjunto de visualizações interativas e permitir que os usuários tenham uma representação gráfica dos dados.
term-iso
Código de país ISO - os códigos alfabéticos curtos criados e mantidos para cada país pela Organização Internacional de Normalização: https://www.iso.org/obp/ui/#search.
term-json
JSON - JavaScript Object Notation, um formato popular para troca de dados. De acordo com o site JSON, é fácil para os humanos lerem e escrever e fáceis para as máquinas analisarem e gerarem.
term-query
Consulta - uma lista de perguntas codificadas que um usuário pode inserir em programas e aplicativos para obter dados sobre uma questão ou assunto de interesse.
term-python
Python - uma linguagem de programação que permite aos desenvolvedores escrever vários programas, como aplicativos da Web, sites, ferramentas de análise de dados: https://www.python.org/.
term-pythoneditor
Editor Python - aplicativo para navegar, depurar, compilar e executar scripts na linguagem Python.
term-rdp
Remote Desktop Protocol (RDP) - um protocolo que permite acessar e controlar um sistema que não está no mesmo local físico que você.
term-shadowbanning
Shadowbanning - quando alguns tweets (ou contas) são despriorizados ou feitos desaparecer das linhas do tempo e das contas sem um explícito aviso de censura.
term-targetads
Publicidade ou Anúncios direcionados – uma forma de publicidade que visa atingir ou serem mostrados apenas acertos grupos selecionados ou indivíduos com características particulares ou de áreas geográficas específicas, com base nos dados disponíveis sobre eles. Por exemplo, colocar anúncios de venda de bicicletas em contas do Facebook de jovens em Amsterdã.
term-terminal
Terminal - também chamado de interface de linha de comando (CLI), é um meio de interagir com um computador usando uma interface baseada em texto onde é possível inserir comandos em um programa de computador.
term-trendtopics
Trending topics - tópicos que são populares em determinados momentos.
term-unicode
Unicode - o padrão para codificar scripts em legíveis por máquina personagens.
term-uniqueid
Identificadores únicos - (neste caso) códigos únicos que são criados e marcados com cada anúncio, para que possam ser rastreados, se necessário.
term-vps
Servidor Privado Virtual (VPS) - Do inglês Virtual Private Server, é uma máquina virtual, alugada como um serviço, por uma empresa de hospedagem na Internet.
###term-virtualsoft
Software de virtualização - software que permite executar um Sistema Operacional diferente daquele instalado em seu computador sem a necessidade para adicionar outro sistema operacional em seu dispositivo.
term-wget
Wget - uma ferramenta do projeto GNU para obter arquivos de servidores web. A ferramenta permite o transporte de arquivos através de mais de um protocolo.