Summary Whether we like it or not, advertising is a common and effective way to make money on the internet. In order to support the work being done at Read The Docs they decided to include advertisements on the documentation sites they were hosting, but they didn’t want to alienate their users or collect unnecessary information. In this episode David Fischer explains how they built the Ethical Ads network to solve their problem, the technical and business challenges that are involved, and the open source application that they built to power their network. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. When you’re ready to launch your next app or want to try a project you hear about on the show, you’ll need somewhere to deploy it, so take a look at our friends over at Linode. With the launch of their managed Kubernetes platform it’s easy to get started with the next generation of deployment and scaling, powered by the battle tested Linode platform, including simple pricing, node balancers, 40Gbit networking, dedicated CPU and GPU instances, and worldwide data centers. Go to pythonpodcast.com/linode and get a $100 credit to try out a Kubernetes cluster of your own. And don’t forget to thank them for their continued support of this show! Your host as usual is Tobias Macey and today I’m interviewing David Fischer about the Ethical Ads marketplace and the technology that runs Interview Introductions How did you get introduced to Python? Can you describe what the Ethical Ads project is and the story behind it? What are the technical and organizational requirements involved in running an ad network? How have you approached the problem of kickstarting the flywheel for the two-sided marketplace? What are some of the challenges that you face in building an accurate profile of your audience without using detailed tracking methods? What are the benefits that you see in focusing exclusively on developers in your publisher relationships? Can you describe the design and implementation of the ad server? How has the architecture evolved since you first began working on it? If you were to start over today what might you do differently? How have you approached scaling for performance and geographic distribution? What mechanisms do you use for tracking impressions/measuring ad effectiveness? How can advertisers experiment with A/B testing of ad copy? If someone wants to run their own advertisements with the ethical ads server, what is involved in getting it deployed and integrated into their sites? What are the integration and extension points available for customizing the behavior of the platform? What are some of the most notable lessons that you have learned about online advertising since you first started working on the Ethical Ads project? What are the most interesting, innovative, or unexpected ways that you have seen Ethical Ads used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on the Ethical Ads platform? What do you have planned for the future of the Ethical Ads platform? Keep In Touch davidfischer on GitHub @djfische on Twitter LinkedIn Picks Tobias Ship It! Podcast David Local Python Meetup Click CLI framework useragents library TLD for parsing internet domains Closing Announcements Thank you for listening! Don’t forget to check out our other show, the Data Engineering Podcast for the latest on modern data management. Visit the site to subscribe to the show, sign up for the mailing list, and read the show notes. If you’ve learned something or tried out a project from the show then tell us about it! Email hosts@podcastinit.com) with your story. To help other people find the show please leave a review on iTunes and tell your friends and co-workers Links Ethical Ads Network Ethical Ads Server San Diego Python Read The Docs Podcast Episode CodeFund CPM == Cost Per Mille The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA