I think this is pretty neat! I would definitely consider chucking a few dollars into something like this. Especially since it has a nice, niche target audience.
My concerns:
- These are pretty spendy for CPM ads, and we almost never do CPM because of low historic RoI.
- We're not going to spend any money on any advertising unless we can approximate how much business it brings us. For digital, that means we need something like UTM. And if we are using UTM, we are basically getting the exact same information Google would be giving us. And we would still get complaints from developers. So not sure what tangible difference it would bring us.
- Developers (technical people) are a pretty lousy group to advertise to. They make the cheapest, whiniest customers (sorry!). But if I had a niche product, this could certainly be very appealing.
Thanks for the kind words (and being real with some of the unkind words :D).
To answer your questions:
* CPM ads work well for us, because we make a set amount, and places the burden of having good targeting & ads on the buyer. With CPC, a crappy ad just gets lots of views without paying us anything for them, which is a bad incentive. Lots of companies have found success with our ads, so they must have good ROI for them, but it does require a somewhat high LTV and good ads that people click.
I think that's a fair enough point. And it's not like Google's display advertisement network is a stellar option to begin with, so this could certainly be worth the money in comparison there.
BUT.... the lion's share of our digital advertising budget goes to CPC - it's just easier to shell out 8k a month ahead of time when we roughly know what it will get us. In the interest of not leaving money on the table, I am sure you guys will eventually pursue CPC options as you scale up.
Adding to the third point developers are technical people and many have adblockers set up in their browsers (at least that's what I see in industry). I wonder if many developers will even notice the ads provided by this service.
Have been using this network for 6+ (?) months now on my blog [1], and I've been amazed. The current CPM is well higher than what Google AdSense used to give (at least many years ago), the ads are non-intrusive and of great quality in the tech niche (rather than the sadly common scammy banners from major networks), and it does not spy my visitors, which for me is an absolute priority.
[1] won't spam since it's unrelated, but my profile page contains the link if you want to see a simple placement
Totally support this and am rooting for alternative ad networks - especially ones like this. However I think it's fair to acknowledge that without tracking it's inevitable that you'll have less value to provide to advertisers. We can't have our cake and eat it too.
We definitely get a lot more than that for US developers (pricing here: https://www.ethicalads.io/advertisers/#pricing). The CPM is averaged across all the traffic in the network, as most sites have traffic from eg. Poland, as well as the US, and the average ends up quite a bit lower.
We also want to underpromise and overdeliver, so we generally keep our published numbers on the conservative side.
It sounds like you have a good handle on targeting, where you can use contextual information to show ads users are likely to be interested in, but what about fraud detection?
Context for others: the high level of tracking in modern advertising is a combination of targeting and measurement / fraud detection. Without good fraud detection there isn't much keeping a shady publisher from bringing in a lot of bot traffic and cheating your advertisers. Very roughly, if I can successfully pretend I have twice as much traffic I can earn twice as much money.
Fraud detection is definitely something that is a struggle in the overall industry. We have a couple benefits that make it easier for us.
First, is that we hand-approve publishers, so that we are able to tell if they are a legit project or application. We look at some social signals when they sign up to see if their traffic numbers seem realistic, and do some sanity checking.
Secondly, we do capture anonymized IP's & user agents, and create a hash of the original values. This allows us to see trends across browser types and high-level locations, which helps with fraud detection.
The other big thing is that we have feedback from our advertisers. We do pass a UTM code about what publisher traffic comes from when an ad is clicked. This allows us to figure out who is sending junk traffic to our advertisers.
We also have a few other specific technical methods that we generally don't talk about, because we don't want to give folks guidelines. But those are mostly just to stop obvious bad actors which aren't trying very hard :)
Some of these approaches work because we're still relatively small, but I think they will scale to 10-100x our size, maybe just not to Google's size. But overall, our approach to fraud is currently working based on the number of repeat advertisers we have, and the success they are seeing with our network.
Thanks! Over time this is likely to work less well, as it becomes more worthwhile for fraudsters to target your network. Off the top of my head, using a botnet to simulate traffic with a realistic range of UAs seems like it could allow a publisher to earn, say, 30% more revenue without you being too obvious. Overall, this would shift income from your honest publishers to your cheating publishers.
All parties in the ecosystem tolerate some levels of fraud. The threshold for action varies over time (e.g., if ${bot-detector-company} has a press release that blames the Russians, people will care for a few weeks) and it depends on who is complaining. Detection of low-hanging fruit at small scales is often straightforward, and you can detect the clumsiest fraudsters using basic analytics tools. But detection at scale is hard, especially if you have a large number of clients that are not a homogeneous or predictable. The nature of organic traffic visiting streaming platforms, ticket sales sites, news sites, blogs, etc. are all very different. From my experience, the hardest part of the fraud detection space is getting some action in response to a fraud alert.
(Disclosure: I used to work in ad fraud detection)
> To comply with DNT, we pledge to delete user personal information such as IP addresses in server logs after no more than 10 days. We do this regardless of whether you set the DNT flag in your browser or not.
EthicalAds does not comply with the intent of a user who sends a DNT request. It's not obliged to, but it's a bit disingenuous to claim that the request has been honoured in some way.
It's true that Do Not Track (DNT) is not a true standard in terms of implementation and intent and different folks mean different things when setting the DNT flag. However, when building DNT for EthicalAds and for Read the Docs, we followed the EFF's implementation guide for DNT[1]. This means a number things including:
* We do not store personally identifying information when users are merely browsing a site with our ads.
* We rotate our logs in less than 10 days
* We do not set cookies on ad requests. We also don't use some non-cookie alternative. Obviously for publishers or advertisers, logging into our backend requires a login cookie.
Hi Eric, I enjoyed working with you back in my Triplebyte days! Finding Ruby job ads on a Ruby library docs page seems straightforward enough... I'm just curious what major categories of advertisers you've found (beyond recruiting)?
Good to hear from you! We also enjoyed working with Triplebyte, and still think that hiring/recruiting is a great use of EthicalAds.
In general we've also found success with higher LTV SaaS products, and you might expect for display ads. Digital Ocean, Twilio, and MongoDB are folks who have done big campaigns with us over the years, as an example. I have a sort spot for the folks at Twilio, because they were actually the ones who convinced us to do ads on Read the Docs originally, with a hacked together campaign way back in like 2015 :) Running a Python-targeted campaign, with Python code in the ad image, linking to a Python-specific landing page tutorial really showed the vision for what we could build.
We've also had a lot of luck with more niche targeting for specific audiences. Our current major audiences are Backend, Frontend, Data Science, Security, & Devops: https://www.ethicalads.io/advertisers/#audiences -- Each of these audiences has had good success with folks targeting specific products (Think feature flagging in JS for frontend devs, and ML model services for data science).
As we grow and optimize our ML modeling, we're going to continue to expand our high-level topics, as well as offer more finer grained targeting.
> I have a sort spot for the folks at Twilio, because they were actually the ones who convinced us to do ads on Read the Docs originally, with a hacked together campaign way back in like 2015
This sounds really interesting! I find it fascinating that Twilio was willing to do such a personalized project with a relatively small company. Would you be willing to share the story?
Specific curiosities:
* Did you reach out to them, or did they reach out to you?
* Who were you working with there? (someone in a business unit, or someone in engineering?)
* Twilio is huge with (I imagine) big reputation risk. Why were they okay with being such early adopters?
* What was the process like working with them through this campaign?
To be 100% honest, Carbon is a great product, and I do recommend them. I wish we were competing against only Google & Facebook, instead of Carbon & BuySellAds, because they are a solid competitor. However, Carbon is not as privacy-focused, and they are closed source. They still inject Google's and other third-party images in your docs. We have pushed back against that with our advertisers, which has caused us to lose some business, but we want our publishers to know that we're the only third-party they are dealing with.
Not to say that all third-party scripts are bad. The ad industry is pretty scammy, and there's a good bit of fraud. A lot of these third-party services are about verification and standardizing reporting. However, it's still sending all your visitor data to a third-party, which you have no knowledge of ahead of time, and could change. We have invested a good amount in our anti-fraud detection, and we know our product is good because of the number of repeat advertisers we have.
We often have publishers who do a 50/50% split between us & Carbon, to diversify their revenue. Daily.dev does this, and talks a bit about it here: https://www.ethicalads.io/blog/2022/01/publisher-spotlight-s... -- We recommend that to folks who aren't coming to us for privacy or regulatory reasons, especially if they have a lot of traffic.
I was definitely thinking that your product seems like a BuySellAds for developers and it looks like I’m correct! Good to have an additional good option.
There's a link on this in their footer https://www.ethicalads.io/alternative-to-carbon-ads/ (and another comparing to Google). My skim of Carbon diff: open source, no third party tracking, support open source community.
(I personally want to tax all ads but am cheering EA on to capture a larger share of a smaller pie.)
We've been working on our ad network for a couple years, but we just launched the 1.0 of our open source code, so it seems like a great time to do a Show HN! We have more info on our 1.0 post here: https://www.ethicalads.io/blog/2022/08/going-v10-the-backsto...
A few years back, we were building Read the Docs, a documentation platform for open source. We had millions of monthly visitors and the obvious way to monetize was ads. However, we cared about the privacy of our visitors and we didn't want ad companies to track our users around the web. We went to a few ad networks and asked if we could proxy the ad traffic or even just run ads without cookies. They weren't willing to do what we wanted, so we built our own ad network.
We decided to build a privacy-first ad network. We don't use any cookies, and target ads based on content. The code is all open source (https://github.com/readthedocs/ethical-ad-server), and we're slowly working to help fund open source projects. We only show developer-related ads on developer sites. No ads about a product whose site you visited last week and nothing off topic.
Next, we built a crawler that indexes the sites on our network to help target our ads. Using an ML classifier (built with SpaCy), it can tell if a page is about data science or about full stack development. This allows advertisers to target the niche they are focused on and ensure the ads perform well, without doing any user tracking.
We're pretty excited about the future ability of our ML to improve ad targeting without any information about the user. The coolest thing is that our business gets better as we understand the content we're serving ads on better, instead of "learning" more about our users by harvesting more data about them.
We've been a true network beyond just ads on Read the Docs for a couple years and we now have ~130 publishers. We gross just under $60k per month in ad revenue of which 70% goes to publishers. Most of our publishers are small sites or open source projects so to send them ~$40k/mo feels great.
Do you have a developer site that you're looking to monetize? Or are you an advertiser trying to reach developers? Or are you just curious about privacy and advertising? Happy to answer any questions!
If your ad doesn't run any javascript code, doesn't place any cookie, doesn't do any kind of tracking, and is relevant to the content many wouldn't mind unblocking it in their adblocker. Especially if it is served from the same domain host the content is on. What kind of ads you serve also matter - small text ads (like Google Adsense / Adwords ads used to be a decade or two ago) was actually interesting when it was relevant to the subject content. Tiny tidbits of text are easy to scan and read or skip. I can also somewhat tolerate still-image banner ads as long as it is a few kbs lightweight and doesn't draw too much attention to itself. I absolutely abhor animated gifs, video, pop-up etc. ads of any kind. "Interrupt ads" (those placed in between the content) are also very irritating.
Of note, we do run our own javascript client on the pages. Our users can opt into hitting our backend API instead of running JS code, but many just use our client directly.
We currently serve the ads on our own domain. We could implement the ability for our publishers to proxy the ad views to our domain (this is generally called "ad cloaking"), but it hasn't felt like the right thing to do.
We are also on the Acceptable Ads non-tracking list, so our domains are unblocked for people who choose that in their ad blocker. If we use a publishers domain, they will be unblocked for some period of time, but then their domain gets added to the ad blockers, and we lose this Acceptable Ads traffic.
With no js the only option would be an iframe, wouldn't it? And that'd be super easy to game for the publishers. So there's gotta be some javascript involved.
> Each advertiser and publisher is hand-approved so that every ad is relevant and interesting.
With respect to relevancy and interestingness, what’s your criteria for approving advertiser and publisher? If I have a nascent product of uncertain interestingness, can I still be accepted as an advertiser?
> Next, we built a crawler that indexes the sites on our network to help target our ads. Using an ML classifier (built with SpaCy), it can tell if a page is about data science or about full stack development. This allows advertisers to target the niche they are focused on and ensure the ads perform well, without doing any user tracking.
This sounds very interesting really. Have you done any tests to compare your method with Google’s user info harvesting method? I would really love to get a more detailed overview on how the whole system works if you’ve written about that somewhere.
I think this is pretty neat! I would definitely consider chucking a few dollars into something like this. Especially since it has a nice, niche target audience.
My concerns:
- These are pretty spendy for CPM ads, and we almost never do CPM because of low historic RoI.
- We're not going to spend any money on any advertising unless we can approximate how much business it brings us. For digital, that means we need something like UTM. And if we are using UTM, we are basically getting the exact same information Google would be giving us. And we would still get complaints from developers. So not sure what tangible difference it would bring us.
- Developers (technical people) are a pretty lousy group to advertise to. They make the cheapest, whiniest customers (sorry!). But if I had a niche product, this could certainly be very appealing.
To answer your questions:
* CPM ads work well for us, because we make a set amount, and places the burden of having good targeting & ads on the buyer. With CPC, a crappy ad just gets lots of views without paying us anything for them, which is a bad incentive. Lots of companies have found success with our ads, so they must have good ROI for them, but it does require a somewhat high LTV and good ads that people click.
* You can use UTM codes on the ad clicks. We don't track users on our side, but once a user clicks an ad, all bets are off. We mention specifically using UTM codes in our FAQ: https://www.ethicalads.io/advertisers/faq/#where-do-the-ads-...
* Well, can't do much about that one :)
BUT.... the lion's share of our digital advertising budget goes to CPC - it's just easier to shell out 8k a month ahead of time when we roughly know what it will get us. In the interest of not leaving money on the table, I am sure you guys will eventually pursue CPC options as you scale up.
Deleted Comment
[1] won't spam since it's unrelated, but my profile page contains the link if you want to see a simple placement
Totally support this and am rooting for alternative ad networks - especially ones like this. However I think it's fair to acknowledge that without tracking it's inevitable that you'll have less value to provide to advertisers. We can't have our cake and eat it too.
We also want to underpromise and overdeliver, so we generally keep our published numbers on the conservative side.
Context for others: the high level of tracking in modern advertising is a combination of targeting and measurement / fraud detection. Without good fraud detection there isn't much keeping a shady publisher from bringing in a lot of bot traffic and cheating your advertisers. Very roughly, if I can successfully pretend I have twice as much traffic I can earn twice as much money.
(Disclosure: I used to work on ads at Google)
First, is that we hand-approve publishers, so that we are able to tell if they are a legit project or application. We look at some social signals when they sign up to see if their traffic numbers seem realistic, and do some sanity checking.
Secondly, we do capture anonymized IP's & user agents, and create a hash of the original values. This allows us to see trends across browser types and high-level locations, which helps with fraud detection.
The other big thing is that we have feedback from our advertisers. We do pass a UTM code about what publisher traffic comes from when an ad is clicked. This allows us to figure out who is sending junk traffic to our advertisers.
We also have a few other specific technical methods that we generally don't talk about, because we don't want to give folks guidelines. But those are mostly just to stop obvious bad actors which aren't trying very hard :)
Some of these approaches work because we're still relatively small, but I think they will scale to 10-100x our size, maybe just not to Google's size. But overall, our approach to fraud is currently working based on the number of repeat advertisers we have, and the success they are seeing with our network.
(Disclosure: I used to work in ad fraud detection)
EthicalAds does not comply with the intent of a user who sends a DNT request. It's not obliged to, but it's a bit disingenuous to claim that the request has been honoured in some way.
It's true that Do Not Track (DNT) is not a true standard in terms of implementation and intent and different folks mean different things when setting the DNT flag. However, when building DNT for EthicalAds and for Read the Docs, we followed the EFF's implementation guide for DNT[1]. This means a number things including:
* We do not store personally identifying information when users are merely browsing a site with our ads.
* We rotate our logs in less than 10 days
* We do not set cookies on ad requests. We also don't use some non-cookie alternative. Obviously for publishers or advertisers, logging into our backend requires a login cookie.
[1]: https://github.com/EFForg/dnt-guide
Good to hear from you! We also enjoyed working with Triplebyte, and still think that hiring/recruiting is a great use of EthicalAds.
In general we've also found success with higher LTV SaaS products, and you might expect for display ads. Digital Ocean, Twilio, and MongoDB are folks who have done big campaigns with us over the years, as an example. I have a sort spot for the folks at Twilio, because they were actually the ones who convinced us to do ads on Read the Docs originally, with a hacked together campaign way back in like 2015 :) Running a Python-targeted campaign, with Python code in the ad image, linking to a Python-specific landing page tutorial really showed the vision for what we could build.
We've also had a lot of luck with more niche targeting for specific audiences. Our current major audiences are Backend, Frontend, Data Science, Security, & Devops: https://www.ethicalads.io/advertisers/#audiences -- Each of these audiences has had good success with folks targeting specific products (Think feature flagging in JS for frontend devs, and ML model services for data science).
As we grow and optimize our ML modeling, we're going to continue to expand our high-level topics, as well as offer more finer grained targeting.
This sounds really interesting! I find it fascinating that Twilio was willing to do such a personalized project with a relatively small company. Would you be willing to share the story?
Specific curiosities:
* Did you reach out to them, or did they reach out to you?
* Who were you working with there? (someone in a business unit, or someone in engineering?)
* Twilio is huge with (I imagine) big reputation risk. Why were they okay with being such early adopters?
* What was the process like working with them through this campaign?
https://www.carbonads.net/
I've been considering monetizing my blog for a few months, but was only considering a service like yours. Would be interested to learn more.
https://www.ethicalads.io/alternative-to-carbon-ads/
To be 100% honest, Carbon is a great product, and I do recommend them. I wish we were competing against only Google & Facebook, instead of Carbon & BuySellAds, because they are a solid competitor. However, Carbon is not as privacy-focused, and they are closed source. They still inject Google's and other third-party images in your docs. We have pushed back against that with our advertisers, which has caused us to lose some business, but we want our publishers to know that we're the only third-party they are dealing with.
Not to say that all third-party scripts are bad. The ad industry is pretty scammy, and there's a good bit of fraud. A lot of these third-party services are about verification and standardizing reporting. However, it's still sending all your visitor data to a third-party, which you have no knowledge of ahead of time, and could change. We have invested a good amount in our anti-fraud detection, and we know our product is good because of the number of repeat advertisers we have.
We often have publishers who do a 50/50% split between us & Carbon, to diversify their revenue. Daily.dev does this, and talks a bit about it here: https://www.ethicalads.io/blog/2022/01/publisher-spotlight-s... -- We recommend that to folks who aren't coming to us for privacy or regulatory reasons, especially if they have a lot of traffic.
(I personally want to tax all ads but am cheering EA on to capture a larger share of a smaller pie.)
We've been working on our ad network for a couple years, but we just launched the 1.0 of our open source code, so it seems like a great time to do a Show HN! We have more info on our 1.0 post here: https://www.ethicalads.io/blog/2022/08/going-v10-the-backsto...
A few years back, we were building Read the Docs, a documentation platform for open source. We had millions of monthly visitors and the obvious way to monetize was ads. However, we cared about the privacy of our visitors and we didn't want ad companies to track our users around the web. We went to a few ad networks and asked if we could proxy the ad traffic or even just run ads without cookies. They weren't willing to do what we wanted, so we built our own ad network.
We decided to build a privacy-first ad network. We don't use any cookies, and target ads based on content. The code is all open source (https://github.com/readthedocs/ethical-ad-server), and we're slowly working to help fund open source projects. We only show developer-related ads on developer sites. No ads about a product whose site you visited last week and nothing off topic.
Next, we built a crawler that indexes the sites on our network to help target our ads. Using an ML classifier (built with SpaCy), it can tell if a page is about data science or about full stack development. This allows advertisers to target the niche they are focused on and ensure the ads perform well, without doing any user tracking.
We're pretty excited about the future ability of our ML to improve ad targeting without any information about the user. The coolest thing is that our business gets better as we understand the content we're serving ads on better, instead of "learning" more about our users by harvesting more data about them.
We've been a true network beyond just ads on Read the Docs for a couple years and we now have ~130 publishers. We gross just under $60k per month in ad revenue of which 70% goes to publishers. Most of our publishers are small sites or open source projects so to send them ~$40k/mo feels great.
Do you have a developer site that you're looking to monetize? Or are you an advertiser trying to reach developers? Or are you just curious about privacy and advertising? Happy to answer any questions!
(If you just want to play around with our ad client, you can try it out here: https://jsbin.com/roniviv/edit?html,output -- docs here: https://ethical-ad-client.readthedocs.io/en/latest/)
Of note, we do run our own javascript client on the pages. Our users can opt into hitting our backend API instead of running JS code, but many just use our client directly.
We currently serve the ads on our own domain. We could implement the ability for our publishers to proxy the ad views to our domain (this is generally called "ad cloaking"), but it hasn't felt like the right thing to do.
We are also on the Acceptable Ads non-tracking list, so our domains are unblocked for people who choose that in their ad blocker. If we use a publishers domain, they will be unblocked for some period of time, but then their domain gets added to the ad blockers, and we lose this Acceptable Ads traffic.
With respect to relevancy and interestingness, what’s your criteria for approving advertiser and publisher? If I have a nascent product of uncertain interestingness, can I still be accepted as an advertiser?
> Next, we built a crawler that indexes the sites on our network to help target our ads. Using an ML classifier (built with SpaCy), it can tell if a page is about data science or about full stack development. This allows advertisers to target the niche they are focused on and ensure the ads perform well, without doing any user tracking.
This sounds very interesting really. Have you done any tests to compare your method with Google’s user info harvesting method? I would really love to get a more detailed overview on how the whole system works if you’ve written about that somewhere.
https://ads-for-open-source.readthedocs.io/en/latest/ is our default exclude list for OSS sustainability ads.