Why you need the Adsense Competitive Ad Filter

While it didn’t invent search-triggered ads, Google figured out a far more efficient way of turning web-users into buyers. Rather than doling out premium space to the highest bidder, as its competitors did, Google used another algorithm to work out how relevant the ad text was to a given query and the odds someone would actually click on it. This meant ads were targeted at the users most likely to respond to them. The result was that Google’s ‘click through’ rate (the number of times users click on ads) was twice as high as its nearest competitor’s.

(Sunday Times)

You signed up for Google Adsense, verified your home address, typed in the secret code they sent you and now you have adverts on your website. Are you earning the most you can from them? Probably not. Read the quote above again. I’ll wait.

Done? Many advertisers already know this and exploit how Google pick their adverts so their low-paid adverts show in preference to higher paid ads. A whole industry has sprung up around this to create “Made For Adsense” or MFA sites. MFA sites make money because the link clicked to get to them costs them less than the money they make from the adverts your visitors click on their sites. Google took action earlier in the year and disabled many MFA accounts but it’s easy enough to get an Adsense account and they’re coming back. Here are the Alexa graphs for a couple of MFA sites who were stopped in their tracks in June:


And here’s an inappropriate site I don’t want advertising on my site.


Unfortunately despite the culling of MFA sites in June there are still plenty of low-paid adverts in the Adsense inventory. That’s where the Competitive Ad Filter comes in useful. At least once a week, or maybe more often I browse through the most popular posts on my sites looking at the adverts. If a URL looks particularly suspect I manually type it into a new browser window (don’t ever click on your own ads!). If the page that loads looks like an MFA site it gets added to my ad filter.

Criteria for MFA Sites:

  • Content free. The site will have very little content, or the content will be ripped from elsewhere. Sometimes this is easy to pick up on.
  • Lots of adverts compared to content.
  • Directory site. The front page is a list of unrelated subjects.
  • Front page lists link directly to product affiliate links.

Basically, spammy behaviour.

How do I know if cheap adverts are being served? Log in to Adsense and check the “Page eCPM” column on the Reports Overview page. Is it lower than $5? You could probably do much better! eCPM stands for “Effective Cost Per Thousand Impressions”. From the Adsense help page:

From a publisher’s perspective, the effective cost-per-thousand impressions (eCPM) is a useful way to compare revenue across different channels and advertising programmes. It is calculated by dividing total earnings by the number of impressions in thousands. For example, if a publisher earned $180 from 45,000 impressions, the eCPM would equal $180/45 or $4.00. However, please keep in mind that eCPM is a reporting feature that does not represent the actual amount paid to a publisher.

I document changes to my Competitive ad filter on The sites listed in those posts suit my sites, but if you don’t use the ad filter in Adsense it’s a good starting point. Hopefully you can increase the eCPM of your Adsense account above US$5 with only a few small changes.


Google just killed the ad click tracking industry

It would appear that Google stopped displaying the “Go to ….” message in the status bar when someone clicked on Adsense adverts.

What’s the big deal with this? Unfortunately it means that it’s impossible to track what adverts are being clicked, with the aim of removing low paying or MFA adverts using the competitive ad filter.

eCPM is up today, possibly because Google stopped arbitrage accounts. I hope it’s a sign of better things to come and Google will improve their filter to the extent that it would make the competitive ad filter redundant except for filtering out competitive adverts, like it was supposed to!


How to accidentally erase your ad filter

When you’re adding sites to the Google Adsense “Competitive Ad Filter” please do not do what I just did.

As my filter has the maximum 200 urls I have to delete entries before adding new one, but I had deleted a couple of urls so I thought I’d have space for just one more slightly-dodgy low paying ad site. Unfortunately I didn’t and the familiar “Too many lines” error showed.

Normally I would search out another url to delete but I wanted to be done with it and not bother with my last change so I hit return on the url, this url, – thinking that it would reload the old list. It certainly did. It brought me back to day 1 when I had no entries in the filter! You know that sinking feeling? That moment when something has gone really wrong? That was me a few minutes ago.

Thankfully hitting BACK on my browser and confirming the POST operation restored the list and I quickly removed the offending LCPC site. Phew.

Someone should tell Google, this would be a rather quick and easy way for a malicious someone to mess with a person’s filter. They should check for the existance of some POST variables before overwriting the filter. It’s a bug!

Simply because a blog post isn’t a blog post without a link, here’s where I talk about my competitive ad filter. MFA and LCPC sites galore. The MFA sites listed in this post finally made it into the ad filter this morning.


Is my competitive ad filter broken?

I have noticed adverts from a particular domain listed in my Adsense competitive ads filter are still appearing. I understand it might take several hours for changes to the filter to become active, but 4 days? has been on my list since the 22nd of December but I still saw it appear on the Love Messages post on my photoblog.

Google, is something broken?


Update! It appears I’m not the only one with this problem.

It works again!

Bah, it happened again on 2006-12-30. An advert for appeared on my site despite being in my competitive ad filter for ages. Grrr.