Facebook CPC – Don’t Waste Your Money

Two years ago, Limited Run posted (in a post that seems to be down now, but covered by TechCrunch here) that they believed 80% of the traffic Facebook sent from pay per click ads were bots. The resolution seemed to be that Facebook would investigate and fix any problems.

Veritasium also called out Facebook for fraud with getting Page likes. However, I’d been told that other startups have had success with Facebook’s CPC (“Like” farms should have less reason to fraudulently click those links after all) so I decided to run my own test recently to send traffic to BudgetSimple.

My first test seemed pretty bad, very few signups, very little engagement, and the numbers didn’t match what Facebook was saying, similar to what Limited Run posted. I decided to run a more scientific one over the past couple of days to figure out what could be going on.

I created a Facebook CPC campaign (“Clicks to a Website”), and targeted females aged 22-40 in the USA and Australia who like several of my competitors pages and have an interest in Personal Finance. My goal here was to see how well Facebook targeted (ie are old men from Thailand engaging with the ad, because my last campaign had a suspicious amount of elderly people “Liking” the ad). Here is what my ad looked like:

Facebook Ad BudgetSimple

I waited until the campaign gathered enough data that I felt it was significant, and these were the final results according to Facebook

Facebook Stats
On face value, these are pretty good results. 50 cent clickthroughs are cheap for the personal finance space, and a click-through rate for an ad like this of .4% actually seems quite high. Note that Facebook considers any engagement a “Click”, so they say 92 clicks went to my website, while they are counting 123 “clicks”, which includes Likes, etc… It seems the price paid though is only for the website clicks, which is great, because people liking my ad doesn’t pay the rent.

I used Google Analytics campaign tagging to “tag” the link, so I was certain any traffic came from this campaign and only this campaign. When looking at this campaign in GA, I noticed quite a discrepancy:

Uh oh, only 61 total visits, even though Facebook claimed they sent me 92! That’s 30% less, is this the bot problem that Limited Run was referring to? Do women aged 22-40 disable JavaScript? Luckily, I don’t rely just on Google Analytics, and can turn to my trusty server logs, where data of who actually accessed the site is 100% correct.

Parsing through this data, exactly 78 requests were made to the tagged URL. Two of these were Facebook’s crawler viewing the page, another seemed to be a Facebook employee verifying content, and one more was from Digital Ocean right when the ad was posted, so presumably a crawler. So that’s only 74 actual requests for the content. So what happened to the other 18 people Facebook claims they sent me? It’s also worth noting that 7 of these requests were from the same IP, so that’s only 67 unique clicks (and one of these is my IP, so 66).

Maybe this difference isn’t worth caring about if Facebook was sending quality traffic, but let’s look at the Google Analytics results (excluding myself):

Wow, a whole signup! Digging into the data (not shown here) it looks like an existing user also clicked the ad, so they skewed the data a little as well. If you segment out those two users, you get this:

A 98.15% bounce rate, with 1.02 pages viewed per user, and an average duration of 6 seconds (keep in mind though that GA user duration will only be greater than zero if they visit more than one page).

Basically that’s every single person not viewing any pages on the site, and just leaving. “Ok, Phil but maybe BudgetSimple sucks, this is just a random banner ad after all!”

Well let’s compare this traffic to other sources in the same time period (specific numbers eliminated, but only sources with at least as much traffic as the facebook campaign shown):

As you can see these numbers are quite different. Assuming (direct) is mostly returning users, all of these traffic sources have a signup percentage greater than 6%, and Pages/Visit > 3

Hmm. Also if people found the content so horrible, why did 24 people “Like” the ad? All these factors (non-matching click metrics, random likes on the ad, low to no engagement on the site) made me dig deeper.

Here’s what I found:

80% of traffic sent by Facebook were using Android (excluding traffic from me, it’s an even higher number). Now, I’m not entirely surprised that mobile traffic is a large part of Facebook, although towards the end of last year, TechCrunch reported that only 48% of them were. So why am I receiving such a disproportionately high percentage of mobile? And why all Android clicks as opposed to iPhone?

My thought is this. These are almost all mis-clicks. In a completely unscientific survey of my friends phones, I noticed the Android version of Facebook seems to show more ads. I’m not sure why, and maybe that’s just a coincidence. Android users also repeatedly said things like “sorry, my phone is slow”, maybe everyone feels this way, but my thinking is people are accidentally clicking ads on Android, perhaps because there are more ads and their phones run slower.

The proof I believe is this:

-Facebook shows 92 clicks, because 92 people hit their tracking referral.

-My server shows 76 requests for content, because 16 people were able to scramble and hit the back button between the time Facebook registered the click and before their browser directed them to my site.

-Google Analytics only shows 61 clicks because 15 people were able to hit the back button between the time their browser started to load the page, but before the Google Analytics code loaded.

-The remaining 60 people let the page load far enough for GA to track them before realizing their mistake and hitting back.

Why did 24 people like the ad? Misclicks I assume. I think half of the Facebook business model is based on people accidentally clicking things. After all, given large enough numbers and an imprecise user input method, this is what you get.

How can Facebook fix this? They need to work like Google. First, note that Facebook seemed to have charged me for non-unique users clicking the ad, as well as myself clicking the ad. Let’s compare this to Google AdWords in the same time period. They charged me for 160 clicks:

And Google Analytics is showing:

What’s that? Google sent me 460 clicks but only charged me for the 160 new clicks! You’ll also notice that the 160 number matches EXACTLY what Google Analytics is showing. And 23% of these are Android!

Maybe Google cleans up this data by having tracking on both ends, or maybe the traffic is just intentional instead of accidental. Either way, Facebook could at least ensure that clicks that are paid for actually make it to the destination by offering tracking script on the destination website.

Google also lets me target only Desktop users. If Facebook would allow this same control, I could run this test again with more confidence.


I suspect some people will say the clicks are genuine and my ad copy or targeting is just off. My website is not optimized for mobile, so I’m willing to accept that the clicks were legitimate and my site is the problem (although I was running the exact same ad in Google Display network with different results). It’s definitely possible a lot of bored people just click any random story on Facebook, and when they see it’s not interesting they go back. That said, it’s a big problem that Facebook is charging for clicks which do not actually make it to your site.

Facebook has some pretty smart engineers working for them, so I can only assume it works this way on purpose to maximize profit. It doesn’t seem fraudulent per say, as they did technically deliver what they were selling. But it definitely doesn’t seem like you are getting what you pay for, and certainly the value, at least for my site is not there.

UPDATE Others have told me it is possible to target a Facebook campaign for Desktop only. I started a new experiment and the results are very interesting! Will post a new post as an update when I have a similar amount of clicks to this test.

Get Regular Product Growth Content In Your Inbox