CodeFund is an open source advertising platform that helps open source software developers and other contributors to the open source ecosystem generate side revenue. CodeFund has adopted the “Ethical Advertising” methodologies from ReadTheDocs. What this means is that our ads
- Do not track or profile ad viewers (no cookies)
- Do not remarket or resell user data (we don’t have any)
- Are relevant to the developer audience on the website
- Are unobtrusive
- Are 100% open source
- Give back to the community through “Community Ads”
I strongly believe that by following these guiding principles, we can provide an honest avenue of revenue for software developers without betraying their trust.
Who Advertises on CodeFund?
In my experience, there are three categories of advertisers that I work with:
The Converter measures the success of their ad campaigns based on numbers. They are very interested in seeing the highest amount of conversions on their website (signups, trials, newsletters, etc) for as little cost as possible. This is the most common type of advertiser. They work with tight budgets and want to prove that they can get a positive return on their ad spend (ROAS). Most converters are small to mid-sized companies wanting to grow and stand out amongst their competitors.
The Announcer measures the success of their ad campaigns primarily by generating brand awareness. Their goal is less about getting direct conversions from their ad placements, but more about making sure that people know who they are, what they provide, and think of them when the time comes to make a purchasing decision. Most announcers are larger companies with very large marketing budgets.
The Patron does not consider conversions or brand awareness as the primary goal. Their goal is truly in-line with sustain open source. Their desire is to bring funding to the open source community with very little importance placed on brand awareness or conversions. In my experience with this remarkable group, I’ve found they are always software developers. They understand the issues around open source sustainability and want to help as their primary goal.
The Converter, Announcer, and Patron are all key parts to CodeFund and the fight to sustain open source. Converters typically bring in the majority of the funding. They are the lifeblood. Announcers are hard to come by and even harder to negotiate with (being such large companies). Once they are in place though, it tends to be smooth sailing with reliable revenue. Patrons are equally important. I can’t tell you how amazing it was to work with Robert Abela / Netsparker. I told him last December before we were shutting downthat his campaign wasn’t performing great and I should refund the remainder of his funds (over $1,000). He told me that it was more important to give the funds to the community.
Supply vs. Demand
A friend of mine asked me last week what keeps me up at night in regards to CodeFund. The answer very simply is supply vs demand.
Supply and demand go hand-in-hand with the categories of advertisers we work with. In the graph above (this is real data, people), I have two primary metrics. The yellow line shows the number of ad impressions the property has had in the past 14 days. The blue line represents the average click-through rate of those impressions. Basically, of all the impressions, what percentage of them were clicked on.
The dashed black line in the middle represents the target minimum click-through rate the Converter is willing to work with. The dashed vertical green line in the middle represents the divide between high volume and low volume properties.
Here’s another graph (with the same data and timeline) that breaks down the impression volume by property. The important thing to note here is that approx 68% of all traffic coming into CodeFund come from three properties: Material-UI, Vuetify, and JSBin. Of those three properties, only JSBin has a click-through rate higher than the desired minimum rate of 0.3% (Remy, I owe you a beer!) What this means is that only about 15–20% of our traffic is really ideal for the majority of our advertisers (Converters). Yikes!
Publisher vs. Advertiser Happiness
What I’ve found over the past year with CodeFund is that it’s critical to maintain a balance of happiness with both publishers and advertisers. The unfortunate part is that often one’s happiness comes at the expense of the other.
For example, I want nothing more than to provide the highest click-through rates to our advertisers. One way we have been able to help this is to set a 30-second cache on ads that are displayed. What that did was ensure that if you visit a website (such as material-ui.com) and clicked around in their documentation, a new ad wouldn’t show for 30 seconds. This increased our click-through rates quite dramatically, but it ended up costing the Material-UI team. Less impressions == less money. We then knee-jerk reacted to this and set the timeout to be 3 seconds. This caused a pretty big drop in click-through rates, but increased the amount of money the publishers were receiving. We now have it at 10 seconds.
See what I mean? It’s a VERY hard thing to balance.
Where is Balance?
I don’t really know the right solution yet. It’s likely a combination of a whole bunch of stuff. My goal is to provide funding to open source developers and projects that support the community. Without advertisers, I can’t accomplish this. Without providing enough funding to those publishers, I can’t accomplish this.
One thing we’ve recently done (which seems to have helped quite a bit) is to only display paying ads during work hours. On every impression request, we determine which timezone the visitor is in, then only show a paying ad if it is between 5am-5pm local time for them (see PR).
Another thing we are doing now is working on an API-based solution where advertisers can display ads from other companies such as Carbon Ads when we no longer have paid ads to display.
Finally, we really need to find more Announcers and Patrons. I know you are out there and want to get your message in front of software engineers. I know you are interested in helping sustain open source. I just don’t know who you are yet. Please connect with me via LinkedIn or via email.