{"id":21673,"date":"2023-03-06T19:05:32","date_gmt":"2023-03-06T19:05:32","guid":{"rendered":"https:\/\/socialmedialab.ca\/web\/?p=21673"},"modified":"2024-12-11T00:46:02","modified_gmt":"2024-12-11T00:46:02","slug":"bringing-transparency-to-targeted-political-advertising-polidashboard-goes-open-source","status":"publish","type":"post","link":"https:\/\/socialmedialab.ca\/web\/2023\/03\/06\/bringing-transparency-to-targeted-political-advertising-polidashboard-goes-open-source\/","title":{"rendered":"Bringing Transparency to Targeted Political Advertising: PoliDashboard Goes Open Source"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">We are excited to announce that <a rel=\"noreferrer noopener\" href=\"https:\/\/polidashboard.com\/\" target=\"_blank\">PoliDashboard<\/a> is now available as an open-source piece of software on <a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/smlabto\/polidashboard\" target=\"_blank\">Github<\/a>. Anyone can now review and modify the code to make improvements and add new features as they see fit. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">PoliDashboard is a data visualization dashboard that is accessible to the public and is designed to help voters, journalists, researchers and others keep track of political spending on Meta&#8217;s products. It provides visual representations of trends related to political and social issue ads on Facebook, Instagram, and other products from Meta. Currently, PoliDashboard tracks and analyses ads from seven different countries, including Canada, the United States, the United Kingdom, Australia, Brazil, Germany, and Denmark. The data is automatically updated every eight hours through Meta&#8217;s Ads API. More countries will be added in the future depending on available resources. (Please contact us at info@socilamedialab.ca if you have any questions or if you are interested in collaborating with us on a dashboard for your country.)<\/p>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\"><strong>Figure 1: PoliDashboard Front-end and Source Code<\/strong><\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/polidashboard.com\/\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" width=\"1024\" height=\"579\" src=\"https:\/\/socialmedialab.ca\/web\/wp-content\/uploads\/2023\/03\/image-1024x579.png\" alt=\"\" class=\"wp-image-21675\" srcset=\"https:\/\/socialmedialab.ca\/web\/wp-content\/uploads\/2023\/03\/image-1024x579.png 1024w, https:\/\/socialmedialab.ca\/web\/wp-content\/uploads\/2023\/03\/image-300x170.png 300w, https:\/\/socialmedialab.ca\/web\/wp-content\/uploads\/2023\/03\/image-768x434.png 768w, https:\/\/socialmedialab.ca\/web\/wp-content\/uploads\/2023\/03\/image-1536x868.png 1536w, https:\/\/socialmedialab.ca\/web\/wp-content\/uploads\/2023\/03\/image-696x393.png 696w, https:\/\/socialmedialab.ca\/web\/wp-content\/uploads\/2023\/03\/image-1068x603.png 1068w, https:\/\/socialmedialab.ca\/web\/wp-content\/uploads\/2023\/03\/image-743x420.png 743w, https:\/\/socialmedialab.ca\/web\/wp-content\/uploads\/2023\/03\/image.png 1600w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Front-end interface&nbsp;<\/figcaption><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/github.com\/smlabto\/polidashboard\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" width=\"964\" height=\"579\" src=\"https:\/\/socialmedialab.ca\/web\/wp-content\/uploads\/2023\/03\/image-1.png\" alt=\"\" class=\"wp-image-21676\" srcset=\"https:\/\/socialmedialab.ca\/web\/wp-content\/uploads\/2023\/03\/image-1.png 964w, https:\/\/socialmedialab.ca\/web\/wp-content\/uploads\/2023\/03\/image-1-300x180.png 300w, https:\/\/socialmedialab.ca\/web\/wp-content\/uploads\/2023\/03\/image-1-768x461.png 768w, https:\/\/socialmedialab.ca\/web\/wp-content\/uploads\/2023\/03\/image-1-696x418.png 696w, https:\/\/socialmedialab.ca\/web\/wp-content\/uploads\/2023\/03\/image-1-699x420.png 699w\" sizes=\"(max-width: 964px) 100vw, 964px\" \/><\/a><figcaption class=\"wp-element-caption\">Source Code on GitHub<\/figcaption><\/figure>\n<\/div>\n<\/div>\n\n\n\n<h1 class=\"wp-block-heading\">How you can help to bring more transparency to targeted political advertising across Meta&#8217;s products<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">By releasing PoliDashboard as an open-source code on GitHub, we aim to encourage other researchers and developers to build upon our initial efforts. For instance, one promising avenue is to add additional metadata elements available via Meta\u2019s Ads API, such as the ad\u2019s creative caption, title, and description (see Table 1 below). By utilizing techniques from natural language processing or visual analytics to analyze these fields, the application could provide further context regarding the types of topics and issues being addressed by different political advertisers. <\/p>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\"><strong>Table 1: Meta Ad Library API data points<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><thead><tr><th><strong>Fields used by Polidashboad<\/strong><\/th><th><strong>New fields to be added<\/strong><\/th><\/tr><\/thead><tbody><tr><td>ad_creation_time<\/td><td>ad_creative_link_captions<\/td><\/tr><tr><td>ad_creative_bodies<\/td><td>ad_creative_link_descriptions<\/td><\/tr><tr><td>ad_delivery_start_time<\/td><td>ad_creative_link_titles<\/td><\/tr><tr><td>ad_delivery_stop_time<\/td><td>ad_snapshot_url<\/td><\/tr><tr><td>bylines<\/td><td><\/td><\/tr><tr><td>currency<\/td><\/tr><tr><td>delivery_by_region<\/td><\/tr><tr><td>demographic_distribution<\/td><\/tr><tr><td>estimated_audience_size<\/td><\/tr><tr><td>impressions<\/td><\/tr><tr><td>languages<\/td><\/tr><tr><td>page_id<\/td><\/tr><tr><td>page_name<\/td><\/tr><tr><td>publisher_platforms<\/td><\/tr><tr><td>spend<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The release of the code for PoliDashboard as an <a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/smlabto\/polidashboard\" target=\"_blank\">open-source<\/a> project is a major step forward for transparency in political advertising. We look forward to seeing how others build on our work to create even more powerful tools for understanding political advertising on social media. <\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"has-text-align-left has-pale-cyan-blue-background-color has-background wp-block-heading\">More About the Current Version of PoliDashboard<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">One of the main features of PoliDashboard is its ability to filter ads by country and advertiser, which allows users to quickly discover ads that are of interest to them and view the overall ad spending and impression stats of each advertiser. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For instance, users can: <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Filter ads based on political party or candidate to estimate the amount of money an advertiser is spending on their online campaigns and who they are targeting based on the total number of impressions garnered by their ads. <\/li>\n\n\n\n<li>Track ad spending over time for political advertisers to observe spending patterns in near real-time throughout an election period.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"has-pale-cyan-blue-background-color has-background wp-block-heading\">Making the Invisible Visible<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">To demonstrate the usefulness of PoliDashboard for transparency purposes, let&#8217;s consider the following example of a Facebook ad by Biden that was paid for by the Democratic National Committee in Figure 2. If you are only interested in knowing about the reach of just this one ad, the two charts as provided by Facebook are useful. But it is not very helpful if you are trying to understand the overall ads targeting and communication strategy of an advertiser over time.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Figure 2: Meta\u2019s Ads Library: Charts in relation to a Sample Ad by Biden<\/strong><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/socialmedialab.ca\/web\/wp-content\/uploads\/2023\/03\/image-2-1024x926.png\" alt=\"\" class=\"wp-image-21677\" width=\"512\" height=\"463\" srcset=\"https:\/\/socialmedialab.ca\/web\/wp-content\/uploads\/2023\/03\/image-2-1024x926.png 1024w, https:\/\/socialmedialab.ca\/web\/wp-content\/uploads\/2023\/03\/image-2-300x271.png 300w, https:\/\/socialmedialab.ca\/web\/wp-content\/uploads\/2023\/03\/image-2-768x694.png 768w, https:\/\/socialmedialab.ca\/web\/wp-content\/uploads\/2023\/03\/image-2-696x629.png 696w, https:\/\/socialmedialab.ca\/web\/wp-content\/uploads\/2023\/03\/image-2-1068x966.png 1068w, https:\/\/socialmedialab.ca\/web\/wp-content\/uploads\/2023\/03\/image-2-465x420.png 465w, https:\/\/socialmedialab.ca\/web\/wp-content\/uploads\/2023\/03\/image-2.png 1178w\" sizes=\"(max-width: 512px) 100vw, 512px\" \/><\/figure>\n<\/div>\n\n\n<h3 class=\"has-pale-cyan-blue-background-color has-background wp-block-heading\">Box Plots to the Rescue<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">To provide voters with an overview of how individual advertisers, such as political parties, are spending their ad budget on Meta&#8217;s various platforms as a whole and whom they are targeting with their various ads, PoliDashboard automatically aggregates different data points such as age and gender (Figure 3) and by location (Figure 5) for all ads purchased by an individual advertiser using box plots charts. <\/p>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\"><strong>Figure 3: PolidaDashboard Summary Charts<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"524\" src=\"https:\/\/socialmedialab.ca\/web\/wp-content\/uploads\/2023\/03\/image-3-1024x524.png\" alt=\"\" class=\"wp-image-21678\" srcset=\"https:\/\/socialmedialab.ca\/web\/wp-content\/uploads\/2023\/03\/image-3-1024x524.png 1024w, https:\/\/socialmedialab.ca\/web\/wp-content\/uploads\/2023\/03\/image-3-300x154.png 300w, https:\/\/socialmedialab.ca\/web\/wp-content\/uploads\/2023\/03\/image-3-768x393.png 768w, https:\/\/socialmedialab.ca\/web\/wp-content\/uploads\/2023\/03\/image-3-696x356.png 696w, https:\/\/socialmedialab.ca\/web\/wp-content\/uploads\/2023\/03\/image-3-1068x547.png 1068w, https:\/\/socialmedialab.ca\/web\/wp-content\/uploads\/2023\/03\/image-3-820x420.png 820w, https:\/\/socialmedialab.ca\/web\/wp-content\/uploads\/2023\/03\/image-3.png 1387w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">For instance, in the week leading up to the 2022 mid-term election, the DNC ran nearly 600 ads. The chart on the left in Figure 3 displays the number of active ads for each day, categorized based on the price range paid by the advertisers. From this chart, we can observe that Biden\u2019s page mostly purchased cheaper ads, costing less than $100 (as indicated by the yellow arrow). Additionally, PoliDashboard aggregates and visualizes gender and age breakdowns using box plots, as shown in the chart on the right in Figure 3. Here, we can see that ads from Biden&#8217;s page have a higher reach among older women (particularly those aged 65 and above) compared to other age groups or genders (indicated by the red arrow).<\/p>\n\n\n\n<h3 class=\"has-pale-cyan-blue-background-color has-background wp-block-heading\">Why Use Box Plots?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A box plot is a convenient way to summarize a series of data points (a dataset). The beginning and end of the line indicate the min and max value respectively, excluding outliers (Figure 4). Data points displayed before or after the min and max values are considered to be statistical outliers. In our case, outliers are one-off ads that tend to target a particular demographic group more or less than usual.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The \u201cbox\u201d in a box plot represents where 50% of all data points reside. The vertical line inside the box represents the median value, often defined as the \u201cmiddle\u201d value because it divides the lower half from the higher half of values in the dataset. In our context, the median value can be considered as a \u201ctypical\u201d percentage of that demographic group targeted by the advertiser during on a given time period.&nbsp;<\/p>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\"><strong>Figure 4: How to read and interpret a Box Plot Chart<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"394\" src=\"https:\/\/socialmedialab.ca\/web\/wp-content\/uploads\/2022\/10\/image-1-e1666749748734-1024x394.png\" alt=\"\" class=\"wp-image-20496\" srcset=\"https:\/\/socialmedialab.ca\/web\/wp-content\/uploads\/2022\/10\/image-1-e1666749748734-1024x394.png 1024w, https:\/\/socialmedialab.ca\/web\/wp-content\/uploads\/2022\/10\/image-1-e1666749748734-300x115.png 300w, https:\/\/socialmedialab.ca\/web\/wp-content\/uploads\/2022\/10\/image-1-e1666749748734-768x295.png 768w, https:\/\/socialmedialab.ca\/web\/wp-content\/uploads\/2022\/10\/image-1-e1666749748734-696x268.png 696w, https:\/\/socialmedialab.ca\/web\/wp-content\/uploads\/2022\/10\/image-1-e1666749748734-1068x411.png 1068w, https:\/\/socialmedialab.ca\/web\/wp-content\/uploads\/2022\/10\/image-1-e1666749748734-1093x420.png 1093w, https:\/\/socialmedialab.ca\/web\/wp-content\/uploads\/2022\/10\/image-1-e1666749748734.png 1280w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Each dot in the sample box plot (Figure 5) represents a single ad. Hover over any dot on the chart to see what state or province were shown that particular political ad on Meta\u2019s platforms (labeled as A in Figure 5). <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If all other dots that appear on the chart (other than the dot you hovered over) is at or close to the 0% mark on the x-axis (labeled as B), it suggests that that particular ad was only (or mostly) targeted at that specific location (or demographic group) and no other. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Users can also click on the dot to see the actual ad and all of its stats as provided by Meta&#8217;s Ads Library in a new window.<\/p>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\"><strong>Figure 5: Sample Box Plot Chart<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/socialmedialab.ca\/web\/wp-content\/uploads\/2023\/03\/boxplots-Example-No-Labels-1024x576-1.png\" alt=\"\" class=\"wp-image-21694\" srcset=\"https:\/\/socialmedialab.ca\/web\/wp-content\/uploads\/2023\/03\/boxplots-Example-No-Labels-1024x576-1.png 1024w, https:\/\/socialmedialab.ca\/web\/wp-content\/uploads\/2023\/03\/boxplots-Example-No-Labels-1024x576-1-300x169.png 300w, https:\/\/socialmedialab.ca\/web\/wp-content\/uploads\/2023\/03\/boxplots-Example-No-Labels-1024x576-1-768x432.png 768w, https:\/\/socialmedialab.ca\/web\/wp-content\/uploads\/2023\/03\/boxplots-Example-No-Labels-1024x576-1-696x392.png 696w, https:\/\/socialmedialab.ca\/web\/wp-content\/uploads\/2023\/03\/boxplots-Example-No-Labels-1024x576-1-747x420.png 747w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>We are excited to announce that PoliDashboard is now available as an open-source piece of software on Github. Anyone can now review and modify the code to make improvements and add new features as they see fit. PoliDashboard is a data visualization dashboard that is accessible to the public and is designed to help voters, [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":21676,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[41,37,554,264],"tags":[8,532,601,510,451],"class_list":["post-21673","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-announcements","category-politics","category-research-tools","category-web-apps","tag-facebook","tag-facebook-ads","tag-github","tag-polidashboard","tag-source-code"],"_links":{"self":[{"href":"https:\/\/socialmedialab.ca\/web\/wp-json\/wp\/v2\/posts\/21673","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/socialmedialab.ca\/web\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/socialmedialab.ca\/web\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/socialmedialab.ca\/web\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/socialmedialab.ca\/web\/wp-json\/wp\/v2\/comments?post=21673"}],"version-history":[{"count":17,"href":"https:\/\/socialmedialab.ca\/web\/wp-json\/wp\/v2\/posts\/21673\/revisions"}],"predecessor-version":[{"id":21702,"href":"https:\/\/socialmedialab.ca\/web\/wp-json\/wp\/v2\/posts\/21673\/revisions\/21702"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/socialmedialab.ca\/web\/wp-json\/wp\/v2\/media\/21676"}],"wp:attachment":[{"href":"https:\/\/socialmedialab.ca\/web\/wp-json\/wp\/v2\/media?parent=21673"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/socialmedialab.ca\/web\/wp-json\/wp\/v2\/categories?post=21673"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/socialmedialab.ca\/web\/wp-json\/wp\/v2\/tags?post=21673"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}