Tag Archives: cpc

What I learned spending $851 on Reddit Ads

I am always on the lookout for cost and time effective ways that I can market my software products. Previously, I have had quite a lot of success with Google Adwords Pay Per Click ads. However, the law of shitty clickthroughs means that advertising platforms generally get less and less profitable (for the advertisers) over time. And Google Adwords is a case study of that law in action. As Reddit is a less mature advertising platform, I thought it might still offer opportunities for a decent return. So I decided to experiment with advertising my data munging software, Easy Data Transform, on Reddit.

[By the way, I understand that nobody goes to Reddit because they want to see ads. But commercial products need to market themselves to survive, and Reddit probably wouldn’t exist without ads. Yay capitalism.]

Setup

The basic process to get started with Reddit Ads is:

  • Sign up for a Reddit Ads account.
  • Enter your details and credit card number.
  • Create a campaign.
  • Create one or more ad groups for your campaign. Choose a bid for each ad group, which countries you want it shown in and who you want it shown to.
  • Create one or more ads for each group.
  • Add the Reddit tracking pixel to every page of your website.
  • Set up conversion goals.

All pretty standard stuff for anyone who has used Google Adwords. The twist with Reddit is that you can advertise to communities (sub-Reddits), rather than based on search keywords. For example, Easy Data Transform is a much better tool for most data wrangling tasks than Excel, so I can bid to show ads targeted at Excel users in communities such as: reddit.com/r/excel/ and reddit.com/r/ExcelTips/.

Like Adwords, there are various ways to bid. I don’t want the advertising platform to set the bid prices for me (because I’m not insane), so I opted for fixed price bids of between $0.20 and $0.40 per click. Some of the ad groups suggested much higher bids than that. For example, the suggested bid for my Excel ad group is $0.79 to $4.79 per click!

However, Easy Data Transform is only a one time payment of $99. Paying more than $0.40 per click is unlikely to be profitable for me, especially when you factor in support costs. So that is the maximum I was prepared to bid. Also, the suggested bids are just the ad platform trying to push up the bid price. Something that anyone who has used Google Adwords will be all too familiar with. I was still able to get clicks, bidding significantly less than the recommended minimum.

I also set a daily maximum for each ad group, just in case I had messed up and added a zero in a bid somewhere.

I created multiple ads for each ad group, with a range of different text and images specific to the communities targeted. Here are some of the ones I ran in the Excel ad group:

Clicking ‘Learn more’ takes you to https://www.easydatatransform.com/.

I didn’t try to use edgy images or memes, because that isn’t really my style. There is an option to turn comments on below ads. As Reddit users are generally not well-disposed to ads, I didn’t try turning this on.

Based on hard-won experience with Google Adwords, I only set my ads to run in wealthy countries. I also restricted my ads to people on desktop devices as Easy Data Transform only runs on the desktop.

When Easy Data Transform is installed, it opens a page on my website with some instructions. So I used this to set up the Reddit conversion tracking to count the number of times a click ended up with a successful install of either the Windows or Mac version of Easy Data Transform.

I monitored the performance of the ads and disabled those that has poor click through or conversion rates and made variants of the more successful ones. Darwinian evolution for ads. I ended up creating 70 ads across 15 ad groups, targeting 50 communities.

I wasted an hour trying to get Reddit to recognize that I had installed their tracking pixel. But, overall, I found the Reddit Ads relatively simple to setup and monitor. Especially compared to the byzantine monstrosity that Google Adwords has become.

Reddit advertises a deal where you can get $500 of free ads.

But the link was broken when I clicked on it. Someone else I spoke to said they had tried to find out more, but gave up when they found out you had to have a phone call with a sales person at Reddit.

Results

I ran my experiment from 08-Jul-2025 to 31-Jul-2025. These are the stats, according to reddit.

Spend$851.04
Impressions490,478
Clicks3,585
Windows installs177
Mac installs63
Total installs240
Click Through Rate0.73%
Cost Per Click$0.24
Click to install conversion rate6.59%
Cost Per Install $3.55

I generally reckon that somewhere around 10% of people who install are going on to buy. So $3.55 per install would mean around $35.50 cost per sale, which is reasonable for a $99 sale. So that all looks quite encouraging.

But, comparing the Reddit number to the numbers I get from Google Analytics and my web logs, I think the Reddit numbers are dubious. At best. In a week when Reddit says it sent me 1174 clicks, Google Analytics says I received 590 referrals from Reddit and my web log says I received 639 referrals from Reddit. Some of the difference may be due to comparing sessions with clicks, time zones etc. But it looks fishy.

The discrepancy is even greater if you look at conversions. The total installs per week reported by Google Analytics and my web logs didn’t go up anything like you would expect from looking at the Reddit conversion numbers. If you dig a bit further, you find that Reddit uses ‘modeled conversions‘ to:

“Gain a more complete view of your ads performance with modeled conversions, which leverages machine learning to bridge attribution gaps caused by signal loss.”

Uh huh. Sounds suspiciously like ‘making shit up’.

And then there are the sales. Or lack of. I don’t have detailed tracking of exactly where every sale comes from. But I estimate that my $851 outlay on ads resulted in between $0 and $400 in additional sales. Which is not good, given that I don’t have VC money to burn. Especially when you factor in the time taken to run this experiment.

The top 5 countries for spend were:

  1. Italy
  2. Spain
  3. France
  4. Germany
  5. Singapore

The US only accounted for 0.28% of impressions, 13 clicks and $3.81 in spend. Presumably because the US market is more competitive, and I wasn’t bidding enough to get my ads shown.

You can look at various breakdowns by country, community, device etc. This is helpful. But some of the breakdowns make no sense. For example, it says that 41% of the click throughs from people reading Mac-related communities were from Windows PCs. That sounds very unlikely!

But the worst is still to come. Feast your eyes on this Google Analytics data from my website:

Average engaged time per active user (seconds)Engaged sessions per active user
Google / organic330.75
Successfulsoftware.net / referral310.74
Youtube.com / referral270.86
Chatgpt.com / referral240.69
Google / CPC160.65
Reddit / referral80.25

8 seconds! That is the mean, not the median. Yikes. And 75% of the sessions didn’t result in any meaningful engagement. This makes me wonder if the majority of the Reddit clicks are accidental.

I had intended to spend $1000 on this experiment, but the results were sufficiently horrible that I stopped before then.

If I had spent a lot of time tweaking the ad images and text, landing pages, communities and countries, then I could probably have improved things a bit. But I doubt I could ever get a worthwhile return on my time and money.

If the lifetime value of a sale is a lot more than $99 for you, or your product is a good fit for Reddit, then Reddit Ads might be worth trying. But be sure not to take any Reddit numbers at face value.

Google Ads can charge you anything they like for a click on their partner network

I have been using Google Ads (previously Adwords) since 2005. A lot has changed in that in time. But it still remains basically an auction. You bid how much you are prepared to pay for a click when someone types a particular phrase into Google. Google then decides which ads to show based on bids and a variety of factors. It has always been a basic article of faith that (if you choose manual bidding) you are never charged more than the maximum cost per click you set. But this is no longer true. Check out this recent Google Ads report for my data transformation software, Easy Data Transform.

adwords-cpc

How can the average cost per click be 3x more than the maximum cost per click? I am using manual bidding, am not using ‘enhanced CPC’, have no positive bid adjustments and I haven’t recently changed these bids. I emailed Google technical support. This is the reply I got:

Post reviewing the search campaign : Easy Data Transform, I can see that  you have applied Bidding strategy as Manual CPC, also you have included Google search partners due to which system has charged extra amount. As in Google search partners maximum capping would not work.

For example the keywords: [keyword redacted] in this the maximum cpc is set as while as you have included Google search partners due to which system has avg cpc charged £0.45.

‘Google search partners’ are “hundreds of non-Google websites, as well as YouTube and other Google sites”. New Adwords campaigns are opted in to search partners by default.

So I emailed back:

So when did this policy change?

Is there a limit what you can change for Search partners clicks? If I bid a Max CPC of £0.10 CPC can Adwords charge me £100.00, if it feels like it?

And the reply was:

Andy, I would like to inform you that there is no recent changes made in this policy. However, I would not be able to provide the exact date of change made in this policy. If you have applied the  Max CPC of £0.10, system may charge you £100 if the search partner is enabled at your campaign level.

WHAT? They can ignore my maximum bid and charge me £100 per click (if I am using manual bidding, tracking conversions and opted in to search partners)! I don’t trust Google’s algorithms to bid for me based on prior experience. Presumably they can’t charge more than my daily budget, but they can use this whole budget in a single click, if they choose.

Running a report you can see that the average cost per click of the partner network (red) has shot up recently for my Easy Data Transform campaign:

adwords-network

Digging a bit more I found this.

smart-bidding

So it looks like they quietly introduced this new policy in October 2018. I don’t remember being told about this. It doesn’t mention this policy if you hover over max CPC:

adwords-tip

It is only if you click ‘Learn more’ and read to the bottom of that page that they tell you about the exception for network partners.

I checked with my goto Google Ads expert, Aaron of softwarepromotions.com. He knows Google Ads inside out, but he hadn’t heard of this policy either.

Google Ads have a long history of quietly introducing major changes and not telling their customers, let alone asking them to opt-in. For example with in-app ads.

This change is particularly galling given that clicks from the partner network are generally lower quality and convert significantly worse than clicks from Google itsself.

So far the costs to me of this change don’t appear to be significant. But they could be very significant to people with larger accounts. I did a quick surf and I found this on webmasterworld.com, dated March 2019:

Don’t have all the numbers yet but it looks like so far this month about 60% of our spend this month has been on these inflated clicks. And when I say inflated, on the extreme end we have a keyword set to $0.27 CPC and the average CPC has been $4.67, and almost all clicks for the keyword have been from the search partner network.

I have turned off the Google partner network on all my campaigns. You might want to do the same.

disable

Google CPA bidding goes wild

I have been using Google’s AdWords Cost Per Action (CPA) bidding for a number of years. I set the maximum I was prepared to pay for a conversion  (e.g. a successful install of my software). AdWords then set the bid price to try and get me conversions at that price or less. It worked pretty well for a number years and it saved me a lot of time tweaking bid prices. But Google recently phased out Maximum CPA bidding and forced me to switch to Target CPA bidding. From this point I could only specify the average price I was prepared to pay per conversion. This is where it all started to go wrong.

AdWords started to bid crazy prices. Check out the screenshot below. You can see that in each case the average Cost Per Click (CPC) is more than the CPA price. For example, in the first row I have set £0.50 as the price I am prepared to pay for conversions from the ‘seating charts’ ad group. Typically about 10% of people who click on one of my Adwords ads will install the software and trigger a conversion (which is fairly standard). So a £0.50 CPA means that AdWords should be bidding somewhere around £0.05 per click. Google knows this, because they have vast amounts of data from my AdWords account (11 years worth). But the average price for the last 3 clicks was £1.17 per click. WTF Google – that’s my money!

Given that the base version of my software costs £19.95 (one time fee) there is no way I can make a profit at £1.17 per click. Not all the bids are this crazy. But there are enough crazy bids to put my whole AdWords campaign into a tailspin. So I have been forced to switch back to manual CPC bidding. If you have also been forced to switch from Maximum CPA to Target CPA bidding, then I suggest you keep a careful eye on your cost per click.

The declining profitability of Google Adwords

Google Adwords used to be a great way to get targeted traffic cheaply (if you knew what you were doing). I think those days are well and truly over.

I have been using Google Adwords to advertise my table plan software since 2005. The following graphs show some metrics from my Adwords campaigns over that 8 years. The graphs show 12-monthly cumulative figures (e.g. each point represents the value for that month plus the preceding 11 months). Using cumulative data hides some of the noise, including the seasonal variations that are inevitable in a business related to weddings (more people buy my software when it is summer in the northern hemisphere), and makes the overall trends clearer.

Average cost per click (CPC)

Average cost per click (CPC)

Clickthroughs

Clickthroughs

Conversions (sales)

Conversions (sales)

Profit per month

Profit per month

The trends are clear and it’s not a pretty picture. Less, more expensive clicks = less profit. I can either pay more and more per click to maintain the same number of sales. Or I can continue to pay the same per click and get less and less clicks. Either way, my profit goes down. It isn’t a trend I see changing direction any time soon.

I think these long-term trends are mostly due to increasing competition. As more and more companies bid on Adwords for a finite number of clicks, it inevitably drives up the cost of clicks (simple supply and demand). It also doesn’t help that a lot of Adwords users are not actively managing their campaigns or measuring their ROI, and are consequently bidding at unprofitably high levels. Google also does its best to drive up CPC values in various ways (suggesting ridiculously high default bids, goading you to bid more to get on page 1, not showing your ad at all if you bid too low – even if no other ads appear etc).

Of course, this is just my data for one product in one small market. But the law of shitty clickthrus predicts that all advertising mediums become less and less profitable over time. So I would be surprised if it isn’t a general trend. Are your Adwords campaigns becoming less profitable? Have you found another advertising medium that works better?

Setting an optimal bid price for Google CPA bids

A couple of years ago I wrote up the results of an experiment comparing Cost Per Action vs Cost Per Click bidding in Google Adwords. At the end of the experiment I decided that I did trust Google CPA bidding, but the results from CPA bidding weren’t compelling enough for me to switch. So I stayed with my mature CPC campaign. Subsequently I spoke at length with Adwords guru David Rothwell and Adwords master practitioner Alwin Hoogerdijk. They convinced me that:

  • I hadn’t really given Google CPA enough learning time – the more data Google has the better it should be able to do. The mighty Google brain might even be able to spot and exploit patterns I would find very difficult to emulate (e.g. based on season, country, day or week or time of day).
  • I should switch from paying per sale to paying per download, as this would give Google an order of magnitude more data to work with.
  • CPA bidding would require a lot less of my precious time to manage.

So I switched back to CPA. This time measuring a conversion as a successful download and install (my table planner shows a help page in a browser on first run, this contains the Google conversion tracking script).

So now, instead of having to choose thousands of bid prices (one for each keyword and match type in each campaign), I had to choose a single bid price – what I am prepared to pay Google for a download. If I pay too little for a download: Google won’t show my ads much, I won’t make many sales and my profit will be low. If I pay too much for a download: Google will show my ads a lot, but the amount I pay for each conversion will be high and my profit will be low. In between their should be a ‘sweet spot’ that gives me optimal profit. But how to find that sweet spot?

Looking at analytics data I have a good idea at what rate Adwords traffic converts to sales. I chose a CPA bid based on this and then I randomly varied the bid up or down every 7 days (some days of the week perform consistently better than others for my product). The graphs below show the results. Each data point is 7 days of data. The black lines are linear trend lines. I deliberately haven’t put values on the axes, but the x and y axes are all linear, starting at 0.

The trends are pretty clear. Increasing CPA bid price:

  • increases the number of times your ads are shown
  • makes little difference to the click through rates
  • decreases the click to download and download to sale ratios

So higher bids means more sales, but also a higher cost per sale. But, of course, the really important metric is profit. So I worked out the average daily profit from Adwords traffic, which is the net sales income (gross sales minus sales costs, including payment processor fees and support costs) minus Adwords costs. Again each point is 7 days of data. The black line is a 2nd order polynomial trend line.

The data is quite noisy. But some data is a lot better than none and there does appear to be sweet spot about where the red arrow is. The curve is fairly flat meaning that I don’t have to be too precise in my bid price to get a near to optimal return. But if I bid twice the optimal price my profit will drop by about 35%.

In an ideal world I would have run all these different bid prices concurrently, instead of one after the other. But that just isn’t possible with Adwords at present (you can use Google Adwords experiments to split test bid prices, but only 2 at a time). Also I could have gathered a lot more data, used longer time intervals (7 days probably isn’t long enough for Google CPA to get into its stride) and bid a lot higher and lower, to make the trends clearer. But I wasn’t prepared to spend the extra time and money required.

If you are using CPA bidding you should be able to carry out a similar analysis on your own Adwords account to find your own CPA bidding sweet spot. If you are still using CPC, perhaps you should consider switching to CPA and let Google do some of the heavy lifting for you. You can switch any campaign that has 15 or more conversions per month to CPA bidding in the ‘Settings’ tab.

You can always switch back to CPC later. If you aren’t using Google conversion tracking, well you really should be.

A word of warning. Not all downloads are equal. You might think that download to sale rates would vary a lot less than impression to click and click to download rates (I did). But download to sale ratios can vary a lot between different campaigns, even for the same product. For example, my analytics data shows that downloads from Adwords display (=contents/adsense) traffic only convert to sales at around a quarter of the rate of Adwords search traffic. So display campaign downloads are worth a lot less to me than search campaign downloads and I set my CPA bids accordingly.

I showed a draft version of this post to Alwin Hoogerdijk of Collectorz.com collection database software, who first persuaded me to switch back to CPA and knows a lot more about CPA than I do. He had the following to add:

When using CPA bidding you should give Google more room to experiment. On search, this means using more broad match terms, or at least modified broad match. And less negative keywords (I removed a lot of my negatives lately). The idea is that Google will automatically find out what works and what doesn’t (again, this may take a lot of time).

On the Content Network it means being less trigger-happy with the site exclusions. Without CPA bidding, I would be more likely to exclude generic sites like Facebook, about.com, etc… But with CPA bidding, I tend to allow the optimizer to display on those sites and the find the right pages within those sites to show my ads on.

In my experience, the optimal CPA bid can vary (wildly) between products, campaigns, etc. . Content Network CPA’s in general tend to be much lower, for the same products. Strangely enough, content network visitor sign up (or downloads) are worth less than search traffic sign ups. Which wasn’t what I was expecting. Of course, content network traffic is less targeted in general so one would expect a lower sign up rate. But even if those visitors sign up, they convert less well to actual sales too. Tricky.

A test of Cost Per Action (CPA) vs Cost Per Click (CPC) in Google Adwords

CPA vs CPCThe traditional approach to Google Adwords is to set a bid price for each keyword. This is known as Cost Per Click (CPC). Google then then uses the bid prices in conjunction with a secret formula (the quality score) to decide how high to rank your ad in the Adwords results. If you bid more, your ad will appear higher and typically get more clicks, but your cost per click will increase. So setting an optimal bid price is important. Bid too little and you won’t rank high enough to get a decent number of clickthroughs. Bid too much and you will potentially end paying more to Google than you recoup in sales.

An alternative approach is to tell Google Adwords how much you are prepared to pay for a particular action, e.g. a sign-up, download or sale. This is known as Cost Per Action (CPA) or Conversion Optimizer. Google will then automatically calculate your bid prices and attempt not to exceed the CPA you set (although this isn’t guaranteed).

CPA sounds great. I can stay in bed a bit longer while the mighty Google brain does the bid tweaking for me. Unfortunately I wasn’t able to use CPA. I  count sales as conversions (not downloads) and I have my adwords account split into a number of campaigns by geographic region and by type (e.g. search vs content). Having my campaigns structured like this, rather than one monolithic campaign, makes for more flexibility (e.g. different ads, phrases and bid prices for different geographical areas) and more useful reports (e.g. separate reports for search and content). But it also meant none of my Adwords campaigns made the minimum threshold for conversions per month.

When Google dropped the minimum threshold for CPA to 30 conversions per campaign per month, one of my Perfect Table Plan search campaigns became eligible. So I did an experiment. I ran a campaign for 4 weeks using CPC, then 9 weeks using CPA, then another 4 weeks using CPC. I set the CPA bid to roughly the average cost per conversion I got for CPC. I was curious to see if Google would find sweet spots that I had been missing or whether they would bid as high as they could to take as much money off me as possible. Summary: CPC outperformed CPA on all key metrics, including: 4.4% higher conversions, 9.4% lower cost per conversions and 8.0% higher profit.

The detailed results are as follows:

metric CPC  (vs CPA)
impressions/day +13.9%
clicks/day +1.3%
conversions/day +4.4%
CTR -11.1%
conv rate +3.1%
income/day +4.4%
cost/day -5.5%
CPC -6.6%
profit/day +8.0%
PKI -5.2%
ROI +10.4%
cost per conversion -9.4%

In graphical form (click to enlarge):

CPA vs CPC graph 50pc

Notes:

  • The values given are taken by computing (CPC metric – CPA metric)/(CPA metric). E.g. ROI of +10.4% means that CPC had a 10.4% higher ROI than CPA.
  • Only a single (geographically based) search campaign was measured. The total number of conversions during the time period of the test was in 3 figures.
  • I only measured sale conversions. This gives me less data than measuring downloads, but I think it is unsafe to assume the number of downloads correlates closely to the number of sales.
  • The PerfectTablePlan sale price is £19.95/$29.95. To calculate profit I only counted 75% of the price of a sale (the other 25% was assumed to cover the cost of support, ecommerce fees and other overheads associated with the sale).
  • Each of the time periods was a multiple of 7 days to avoid any issues with different results on different days of the week.
  • I ran CPC for an equal amount of time either side of the CPA test to try to balance out any seasonal factors.
  • Google conversion tracking uses Cookies and is therefore not 100% accurate.
  • PKI is Profit Per Thousand Impressions.
  • ROI is Return On Investment.

It wouldn’t be wise to draw any sweeping conclusions from one test with a limited amount of data. However I believe the results show:

  • A CPA campaign running for 9 weeks wasn’t able to outperform a mature CPC campaign. The CPC campaign had been running for over 4 years, but one would have thought CPA would have been able to use that pre-existing  data. CPA might have performed better if given longer. It would probably also have done better against a less mature CPC campaign.
  • Google didn’t rob me blind using CPA bidding. The CPA cost per day was only 5.5% higher.
  • The results weren’t hugely different. On the basis of the above results one might still conclude that CPA is superior to CPC as it requires less time to manage.