9 ms·
Show HN: EthicalAds – Privacy-first ad network for developers
(More info posted in a comment below: https://news.ycombinator.com/item?id=32651107 https://news.ycombinator.com/item?id=32651107)
- ericholscher 4y agoHi HN! 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-backstory-and-future-of-our-ad-network/ 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 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 https://jsbin.com/roniviv/edit?html,output -- docs here: https://ethical-ad-client.readthedocs.io/en/latest/ https://ethical-ad-client.readthedocs.io/en/latest/)
- webmobdev 4y agoIf 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.
- ericholscher 4y agoThanks -- We actually maintain an exclude list of OSS ads that you can use with your ad blocker of choice: https://ads-for-open-source.readthedocs.io/en/latest/index.html https://ads-for-open-source.readthedocs.io/en/latest/index.h... 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.
- webmobdev 4y agoI feel ad proxying and server side rendering would be a better fit for the brand identity you are trying to create. Why does one need javascript to serve some text or image, along side some content? One of the common reasons for blocking ads is they slowdown websites by using more resources and thus also reduce battery life. It also introduces another barrier to trust you more - how do I know that the Javascript code is not doing something unwanted (like browser fingerprinting, introducing some annoying animation etc.) - after all, it would be a pain to keep reviewing your javascript code and would be easier to just block it.
- gbtw 4y agoThere is no such thing as ethical ad. Why would anyone leave money on the table and not do scummy / google / facebook ads. Not like anything is stopping them unless the ad industry gets killed by law.
- ericholscher 4y agoI definitely appreciate the negative view of ads. I had some similar internal conflict around building on ads, but it was the only way for us to sustain the project we worked on.. Read the Docs was a huge part of the open source community, but all the other ways we tried to fund it didn't work. I posted about this at the time, and still think it makes a good argument for why we should be investing to fund open source infrastructure with marketing money, not just engineering budget: https://www.ericholscher.com/blog/2016/aug/31/funding-oss-marketing-money/ https://www.ericholscher.com/blog/2016/aug/31/funding-oss-ma... We are also experimenting with an option for showing sponsorships, instead of paid ads. This works well for non-profits, and could layer on top of Open Collective or GitHub Sponsors. We're working with the Python Software Foundation to power their "sponsored by" messaging, which is another option other than "paid ads" https://www.ethicalads.io/sponsorship-platform/ https://www.ethicalads.io/sponsorship-platform/
- williamtrask 4y agoIf the ads didn’t change what you showed based on the price and instead charged a fixed price ti be in the list (and still be ranked by what’s best) then I think you can call it ethical. That is to say, helping people find the best product is ethical. Helping them find whichever product has the biggest marketing budget less so.
- pugio 4y agoIt sounds like we have a very different idea of what "ethical" means. In answer to your question about "what's stopping them?" - well, just that: ethics, morals, the desire to act decently even when there might be some additional benefit to being sleazy. Waiting for a law to prohibit immoral behavior doesn't seem like a sustainable way for a society to function, even though it does seem to be the way we're trending.
- compumike 4y agoHi 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)?
- ericholscher 4y agoHey Mike, 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 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.
- radihuq 4y ago> 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?
- brightball 4y agoCould you describe how your service differentiates from Carbon? https://www.carbonads.net/ 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.
- ericholscher 4y agoSure -- we have a post about just that topic! https://www.ethicalads.io/alternative-to-carbon-ads/ 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-series-ido-shamun-from-dailydev/ 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.
- brightball 4y agoThank you for the insight!
- ericholscher 4y agoDefinitely! Happy to answer any other questions you have via email once you're ready to move forward. Email is in my profile, or just eric@ our company domain :)
- jefftk 4y agoIt 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. (Disclosure: I used to work on ads at Google)
- ericholscher 4y agoFraud 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.
- jefftk 4y agoThanks! 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.
- tintedfireglass 4y agoNo site can escape the clutches of the deadly HN Hug Of Death x_x
- ericholscher 4y agoSeems up to me? https://downforeveryoneorjustme.com/ethicalads.io https://downforeveryoneorjustme.com/ethicalads.io
- tintedfireglass 4y agoIt came back up after a few minutes
- ipaddr 4y agoYour site missing key piece sof information. Pricing.. what amount/percentage does a publisher get? What does running an ad cost? What are your maximum daily traffic numbers if I ran an ad? How do you payout? An faq would be helpful
- ericholscher 4y agoWe have lots of that info on other pages: Pricing: https://www.ethicalads.io/advertisers/#pricing https://www.ethicalads.io/advertisers/#pricing Publisher page: https://www.ethicalads.io/publishers/ https://www.ethicalads.io/publishers/ Publisher FAQ: https://www.ethicalads.io/publishers/faq/ https://www.ethicalads.io/publishers/faq/
- cunidev 4y agoHave 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
- slugiscool99 4y ago$2 cpm (https://www.ethicalads.io/publishers/faq/#how-much-will-i-make https://www.ethicalads.io/publishers/faq/#how-much-will-i-ma...) is not higher than adsense, especially for a high value audience like US developers. We were seeing ~$5-$8 cpms on adsense for a much less affluent demographic on our site. 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.
- ericholscher 4y agoWe definitely get a lot more than that for US developers (pricing here: https://www.ethicalads.io/advertisers/#pricing 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.
- matt-p 4y agoLove this idea, but Wow.. those are some crazy CPM numbers. Would it not be a better idea to shoot for CPC?
- ericholscher 4y agoCrazy how? In the past we have done some CPC campaigns, but it leaves the risk of a poorly performing ad on us, instead of the advertiser. With CPM, we make the same amount for our inventory, but advertisers with great ads benefit with a higher CTR and lower CPC.
- deleted 4y ago[deleted]
- benjaminjosephw 4y ago> 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.
- davidfischer 4y agoCan you give a few more details of what you mean? 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 https://github.com/EFForg/dnt-guide
- tech234a 4y agoInteresting concept. A couple questions: Do you plan on expanding your audience beyond developers to other users such as, for example, the slightly more general group of those who are technologically-adept but aren't necessarily developers? Do you have other options for targeting ads other than page content? For example, some web apps may display private user information in the web page and would not want to send the page content to the ad server. Perhaps it would be possible to target based on a general list of keywords that are known to be related to the site? Would it be possible to run the ad script in a sandbox iframe to ensure the server doesn't get access to page content? (I see in other comments that you mention server-side rendering but that wouldn't work for a static client-side web app.)
- ericholscher 4y agoThanks :) We don't currently plan to expand our audience. There's still a lot of growth in the dev market we're hoping to achieve. That said, we are looking at selling our product as a SaaS for other folks (https://www.ethicalads.io/sponsorship-platform/ https://www.ethicalads.io/sponsorship-platform/) -- which could target any market they wanted. We do allow our publishers to set keywords on the inbound traffic, as well as our own ML (https://ethical-ad-client.readthedocs.io/en/latest/#configuration https://ethical-ad-client.readthedocs.io/en/latest/#configur... data-ea-keywords here). The content of the site isn't send to our servers for ML -- we crawl the sites, so private content stays private. You could run it in a sandbox, but I question the use case of highly private content having ads on it. That's going to be harder for us to verify your traffic, and look a lot like fraud, but we might be willing to give it a try. We'd keep it on the network if our advertisers see good results with it.
- tech234a 4y agoThank you for the explanation!
- shortformblog 4y agoWould love it if you expanded beyond devs, though I know that’s a challenge as it requires building up a new base. I have been keeping an eye on you for a while either way.
- dyeje 4y agoBeen toying with an idea like this for years, congrats on shipping!
- ericholscher 4y agoThanks! Shoot us an email if you ever wanted to continue toying with something like this with us! ;)
- legitster 4y agoProfessional marketing person here. 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.
- ericholscher 4y agoThanks 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. * 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-link-to https://www.ethicalads.io/advertisers/faq/#where-do-the-ads-... * Well, can't do much about that one :)
- digitallyfree 4y agoAdding 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.
- legitster 4y agoTheir advertiser FAQ mentions they don't charge for ads that don't load.
- cercatrova 4y agoAnother filter to add onto uBlock Origin, I see.
- ericholscher 4y agoGreat, thanks! https://ads-for-open-source.readthedocs.io/en/latest/ https://ads-for-open-source.readthedocs.io/en/latest/ is our default exclude list for OSS sustainability ads.
- cercatrova 4y agoI meant another filter to block, not allow, but I appreciate the links.
- davidfischer 4y agoWe're already on the EasyList (a big blocklist) so it should already be blocked.
- yomkippur 4y agoi like your attitude and i will consider putting your ads
- YetAnotherNick 4y agoIs the list of sites you advertise in publicly available? Is it possible to just publish ads for one/few particular site/s with the same CPM?
- ericholscher 4y agoWe don't have a full list, but each of our audience pages shows some of our top publishers: https://www.ethicalads.io/advertisers/#audiences https://www.ethicalads.io/advertisers/#audiences We generally charge our listed CPM, but if you narrow down the targeting a lot, that can cost a bit more.
- soared 4y agoLooks interesting and useful for small advertisers. I can see this being useful in some cases. Nice that you’re insulated from cookie issues with context targeting only. I’d expect the lack of tools like frequency capping, impression trackers, brand safety, etc to stop you from getting many large advertisers.
- simonw 4y agoI've been running this on my blog for the past month and a half, and I've made $70.38. Not too bad! Example ad in the sidebar of this page: https://simonwillison.net/2022/Aug/29/stable-diffusion/ https://simonwillison.net/2022/Aug/29/stable-diffusion/
- marginalia_nu 4y agoWhat an exceptionally fast and responsive website. Gives a very good first impression. Does anyone have additional examples of non-intrusive ad-networks and similar? I'd like to encourage such things by penalizing them less hard in my search engine.