Digital Plague Draining Ad Budgets
Made-for-advertising sites are draining your digital ad budgets without you knowing. Today, we discuss how they pull it off. Plus the source code for a script to screenshot ads on any site you want.
Today we're diving into the murky underbelly of the internet, where the insatiable hunger for ad dollars mated with the blissful ignorance of programmatic traders to give birth to a Frankenstein-like creature: Made-for-Advertising (MFA) websites.
These sites, designed to siphon off paid media dollars while sidelining quality content and user experience, are taking a hefty bite out of ad budgets and leaving advertisers with little to show for it.
According to Jounce Media, a staggering 12% of programmatic display ad budgets go to these MFA websites. (Go read this report, it is free!)
We're talking about billions of dollars funneled into the digital abyss, with no real return on investment. However, most advertisers think they are getting material ROI thanks to last-touch attribution models.
But fear not, fellow advertisers and media buyers, for we shall endeavor to shed light on this shadowy corner of the internet and arm ourselves against these digital parasites.
ℹ️ Programming Note: If you are here to learn more about the little automated screenshotting script I created with ChatGPT, jump down to the bottom of this article.
Break it down
First, let's take a step back and dissect the anatomy of an MFA site.
Picture a page stuffed to the gills with ads, crammed in between insipid clickbait articles and a cacophony of auto-play videos. The content is shallow and unsatisfying, like a saltine cracker.
The user experience? Abysmal. But the ad impressions? Through the roof. 🚀
These sites prey on unsuspecting advertisers, fooling DSP’s and optimization algorithms with high traffic and user engagement. But the sad truth is that the vast majority of users who land on MFA sites are victims of clickjacking, misleading links, or other nefarious tactics designed to trick them into generating ad revenue.
It's a digital house of horrors, where advertisers are drained of their budgets while MFA site owners laugh all the way to the bank.
Advertisers think these sites are performing because last-touch attribution models do not care if the publisher site has a bounce rate of 99.999%. The models do not care that these sites rely almost exclusively on retargeting ads. They also ignore the fact that the same advertiser could serve ten or more ad impressions on a single pageview.
Real examples
Allow me to introduce you to a seemingly harmless little website called claireandjamie.com (observe the screenshot below). Are any Outlander superfans among us?
At first glance, the site appears to be innocuous enough. But venture deeper into the articles, and you'll find your CPU gasping for breath as it struggles to load an avalanche of banner ads, auto-play-sound-off video ads, expendables, and more.
Oh, and did I mention the display ads that auto-refresh every few seconds, just to keep the party going?
We've got ourselves a textbook MFA site on our hands.

But wait, there's more. In the screenshot below, you'll see ads for claireandjamie.com cozying up to another MFA site, reference.com (cue dramatic music).
These clickbait ads tempt you with irresistible headlines like "Meet Amal Clooney's Twins Grown Up" and "Nicole Smith's Daughter Grown Up." Intriguing, but what do these celebrity offspring have to do with our beloved Outlander fan site? Let's scroll on and unravel the mystery.
Should you take the bait and click on the ad, you'll be whisked away to a page that bears no resemblance to the claireandjamie.com we saw earlier. Instead, you'll find yourself knee-deep in a pool of celebrity gossip, a hidden trove of content that's impossible to stumble upon via the main site.
Take a closer look at the URL, and you'll see that the monetization platform where the click was procured was GDN, and the website that sold the click (in this case, pensandpatron.com) is revealed as a participant in this MFA web of traffic trading.
As if that's not enough to raise your eyebrows, you'll also notice a little disclaimer stating, "This article was originally published on tworeddots.com and has been republished here with permission."
Hold up – tworeddots.com is a travel blog, so why on Earth would they be peddling celebrity gossip? The plot thickens.

At this point, the screenshot below from tworeddots.com shouldn’t surprise you. The website looks like a beautiful luxury travel magazine. However, it publishes and monetizes hidden celebrity gossip content and other clickbait posts.

Why does this matter?
As a seasoned media buyer, you might glance at claireandjamie.com and tworeddots.com on an approved site list and think, "These sites seem legit. No red flags here."
You might even visit the websites and find yourself impressed with their content – TV fandom and luxury travel? Sounds lovely.
Contextual targeting, that clever little devil, will also steer you toward these sites if you're on the hunt for mainstream TV fan content and travel destinations.
But here's the trap: what you're likely sinking your ad dollars into are the hidden clickbait MFA content. The traffic for these deceptive gems is sourced from content exchanges, clickbait ads, and low-cost CPC.
Now, let's don our digital detective hats and examine the source code of these sites. Here’s a list of ad tech vendor tags, all playing their part in facilitating these transactions via script tags or iframes on these two example publishers:
Google
Criteo
Outbrain
Fastclick
Wazimo
MoatAds
OpenX
Vidazoo
33Across
Rubicon
Quantcast
Amazon Ads
Sonobi
Casale Media
Pubmatic
Yahoo
Media.net
Xander
This crew is a blend of sell-side and buy-side platforms. Some have been embedded into the page by the site owner, while others are part of the programmatic transaction that ensnared the advertiser on the page when the screenshots were taken. Each of them, whether they like it or not, has a role to play in eradicating the monetization of MFA content.
9 Actions to take immediately
There's hope, my friends, for the savvy media buyer who's willing to dig much deeper and do their due diligence. Here are some strategies to help you spot MFA sites and avoid the digital quicksand that threatens to swallow your budget:
Scrutinize the content: If an article seems to be written with the sole purpose of stuffing in as many ads as possible, or if it's riddled with grammatical errors and devoid of any real substance, then it's likely an MFA site. Trust your instincts – if something feels off, it probably is.
Investigate site ownership: Many MFA sites are part of large networks operated by the same nefarious puppet masters. Conduct a WHOIS search to see who's behind the curtain and if they're linked to other known MFA sites. Don't be fooled by the smoke and mirrors.
Check traffic sources: MFA sites often rely on shady traffic sources, such as pop-under ads, adware, or traffic exchanges. Take a close look at the traffic sources and steer clear of any site that seems to be generating traffic through underhanded, chumbox means.
Examine user engagement: High bounce rates and short dwell times are telltale signs of an MFA site. If users are fleeing the scene faster than a raccoon caught rummaging through your garbage, then it's best to keep your ad dollars far, far away.
Trust, but verify: Sure, a site may boast impressive traffic numbers and offer tantalizing ad placements, but do your homework and verify these claims. Does the site owner employ four full-time employees yet rank in the top 1000 sites on your distribution list? 🤔 Hmmm. Use third-party tools to cross-check data and ensure you're not being taken for a ride.
Collaborate and share: Knowledge is power, and by pooling our collective experiences and intelligence, we can create a united front against MFA sites. Share your findings with fellow advertisers and media buyers, and work together to blacklist known MFA sites and networks. The more we communicate and collaborate, the stronger our defenses will be.
EmbraceRequire transparency: Demand transparency from the platforms and vendors you work with. They should be able to provide you with clear, detailed information about where your ads are being served and what safeguards are in place to protect against MFA sites. If they can't or won't give you straight answers, it's time to consider alternative partners.Invest in brand safety and ad verification tools: There are a growing number of technology solutions designed to help advertisers avoid MFA sites and ensure that their ads are being served in a brand-safe environment. Explore these options and invest in the tools that best meet your needs and objectives.
Advocate for industry change: The rise of MFA sites is a symptom of a larger issue in the digital advertising ecosystem – the relentless pursuit of ad revenue at the expense of user experience and content quality. As advertisers and media buyers, you have the power to shape the future of our industry by demanding better standards and practices. Use your influence to push for meaningful change and create a healthier, more sustainable digital landscape for all.
So, my fellow media buyers and ad tech gurus, the moral of this tale is clear: appearances can be deceiving.
We must be ever vigilant in our quest to protect our ad budgets and ensure that we're investing in genuine, quality websites that deliver the ROI we deserve. And, perhaps most importantly, we must hold each other accountable.
MFA Screenshots using ChatGPT code
To investigate this problem, I started manually trolling a list of known MFA websites to see what sort of advertisers are falling for what is “too good to be true.”
I quickly discovered a huge problem. Tons of mainstream advertisers litter these sites, and I could not take screenshots fast enough.
After taking at least 40 screenshots manually, I thought there had to be a better way. Enter: ChatGPT.
Many know ChatGPT’s ability to generate amazing text-based copy but do not know it can also write code. Really good code. Blazingly fast.
So I decided to give it a try.
I asked ChatGPT to create a Python script that crawls these sites and takes screenshots of advertiser activity. The script is designed to capture the entire webpage, including any ads that may be present in the background, outside the viewport, or hidden from the user.
The script works by utilizing the Selenium webdriver, which allows us to programmatically control a web browser and capture screenshots of web pages. It uses Python libraries such as BeautifulSoup and requests to parse the HTML of the web pages and detect any ads that may be present. Once an ad is detected, the script takes a screenshot of the entire page and saves it to a specified location.
To install and use the script, follow these steps:
Step 1: Install Python If you don't have Python installed on your system, you will need to download and install it. You can download the latest version of Python from the official Python website.
Step 2: Install Required Libraries The script requires several Python libraries to run. You can install these libraries by opening a terminal or command prompt and entering the following command:
pip install selenium requests pillow dropbox
Step 3: Download and Extract the Script Download the screenshot python script from the repository and extract it to a location of your choice.
Step 4: Set Up Dropbox Access Token To upload the screenshots to Dropbox, you will need to create a Dropbox App and generate an access token. Follow the instructions on the Dropbox website to create an app and generate an access token.
Step 5: Configure the Script Open the screenshot.py file in a text editor and enter your Dropbox access token in the ACCESS_TOKEN variable. You can also change other settings such as the URLs to crawl, the screenshot dimensions, and the Dropbox folder location.
Step 6: Run the Script Open a terminal or command prompt and navigate to the directory where the screenshot.py file is located. Enter the following command to run the script:
python screenshot.py
The script will start crawling the specified URLs and taking screenshots of any ads that are present. The screenshots will be saved to the specified Dropbox folder, allowing you to analyze the advertiser activity and ensure you are reaching your target audience effectively.
In conclusion, our python script provides a valuable tool for digital advertisers looking to combat the problem of clickbait, chumbox, and made-for-advertising sites. By crawling these sites and taking screenshots of advertiser activity.
Source code
import time
import os
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import dropbox
from datetime import datetime
# Dropbox access token and folder path
ACCESS_TOKEN = 'Insert Dropbox token here'
DROPBOX_FOLDER = '/screenshots'
# Web pages to visit
urls = ['https://example1.com','https://example2.com']
# Set up Chrome options
options = Options()
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
options.add_argument('--start-maximized')
options.add_argument('--headless') # run Chrome in headless mode
# Set up the Chrome driver
driver = webdriver.Chrome(options=options)
# Set up Dropbox client
dbx = dropbox.Dropbox(ACCESS_TOKEN)
for url in urls:
# Visit the web page
driver.get(url)
# Wait for the page to load
time.sleep(10)
# Get the page height
page_height = driver.execute_script("return document.body.scrollHeight")
# Set the window size to the page height
driver.set_window_size(1920, page_height)
# Take a screenshot of the page
screenshot_name = datetime.now().strftime('%Y-%m-%d_%H-%M-%S') + '.png'
driver.save_screenshot(screenshot_name)
# Upload the screenshot to Dropbox
with open(screenshot_name, 'rb') as f:
dbx.files_upload(f.read(), os.path.join(DROPBOX_FOLDER, screenshot_name), mode=dropbox.files.WriteMode.overwrite)
# Delete the local screenshot file
os.remove(screenshot_name)
# Quit the driver
driver.quit()