AudiencePi is a self-serve demand side platform for online display advertising.

  • Responsible for everything and funded the startup with my own money.

  • Started AudiencePi as a data provider and later pivoted to self-serve demand side platform backed with retarget marketplace.

  • Single handedly built self-serve demand side platform backed by 19 different types of servers (e.g. bidder, adserver, predictor, lb).

  • Integrated with BidSwitch via OpenRTB and Google Adexchange.


Industry Verticals

  • Adtech

  • Demand Side Platform

BackStory

Affiliate Marketing

When I was still schooling in my teens, I was doing part time affiliate marketing making money online selling products. I stumbleupon (remember this social media site?) the advertising industry and was intrigued by the rapid innovation in the adtech space, and that was the start of the golden age of adtech.


AdVertive

Thus I started a behavioral advertising company call AdVertive and license adserver from Yahoo Right Media. We didn't have our own technology and was making some money arbitraging on advertising deals.


Beginning of AudiencePi

I founded AudiencePi when I was 23 years old after completing my mandatory 2 years military service. My previous ventures allowed me to save around $200k. While most of my peers decided to study in university, I decided to take a different route and start my own adtech company by building a demand side platform from scratch.

I never had any professional development experience beforehand and threw myself in a den full of elephants with enormous VC funding.

It was during this period my growth and technology skillsets grew at an exponential rate as adtech development is complex and challenging technically. For example, real time bidding has a cutoff time of 100ms (including all roundtrips). Thus I had to optimize my code such that it can consistently return response within 20ms.

Had to even picked up Erlang when I was building my bidder but eventually opted to use Golang. Even after 10 years, I'm still using the same ansible devops setup for my newer apps.


AudiencePi Differentiation

Retarget Marketplace

This is the innovation I came up with AudiencePi. The idea is to allow advertisers to retarget users from a publisher site. For example, Nike can target to users who've visited espn.com while they're on other websites, not just on espn.com. Of course espn.com will get paid for allowing that data access.


Self-Serve

Users can even fund accounts with paypal to get started.


Configurable Optimization Strategy

Advertisers can choose different prediction models and bidding strategy to use for their campaign. For example, they can optimize for clearing price, click through rate, conversions etc. For more, check the screenshot for campaign wizard at the last section of this page.


Tech Stack

Infrastructure and Capacity Planning

Even though I founded AudiencePi more than 10 years ago, it still has the most complex tech stack and server costs among all startups that I've founded 😭.

The whole infrastructure of AudiencePi runs on 19 different types of servers.

Monthly server bills adds up to around $10k/mo. I paid all the server bills from my own pockets.

  • Since real time bidding has a cutoff time of 100ms, I had to deploy different clusters near each ad exchange. It should at least be in the same region.

  • Softlayer Washington DC Cluster - handles Bidswitch OpenRTB ad-requests from North America.

  • Softlayer Tokyo Cluster - handles Bidswitch OpenRTB ad-requests from Asia.

  • GCloud US Central Cluster - handles Google Adexchange requests from North America.

  • GCloud Europe West Cluster - handles Google Adexchange requests from Europe.

  • Ansible is used to fully automate deployment and configurations of 40+ servers across 4 clusters with Google Cloud and Softlayer. 

  • Yes I always have checklist for deployment to ensure nothing goes wrong.


Development and Tools

  • Web Console built with Django, Postgres, jQuery, Handlebars, SASS, Celery

  • Load Balancing with Nginx, HAProxy and Google Compute Engine Load Balancing (IIRC google load balancing was used for servers hosted on google cloud while HAProxy was used for servers hosted in softlayer)

  • Scikit-Learn for Predictive Modeling

  • Data Pipeline: Python scripts as cron jobs

  • Real time bidder written in Golang

  • Aerospike for OLTP. This is the go-to OLTP db used by many adtech companies.

  • Bigquery for OLAP to slice and dice reports. I even wrote a library in python to export large bigquery results into google cloud storage.

  • Monitoring with Stackdriver, Datadog, Librato, Pganalyze

  • Ansible for Devops

Source code is still available.


Why I shut it down?

It's not hard to see why I had to shut down AudiencePi eventually. While being passionate about your startup is good, there's also a need to be practical. I funded AudiencePi completely out of my own pocket.

At the time when AudiencePi was shutting down, I had 1 advertiser running 4 figures monthly campaign. However, the huge server bills every month meant that I am racking at least mid 4 figures losses each month. 

When I had 6 months of runway left to burn through my own savings, I had to make the decision. Either to shut down everything this month or try to get enough advertisers to make it profitable within the next few months. I decided to live to fight another day 😂. 

In conclusion, I overstretched myself and lack the resources to make it profitable within a short period of time.

After AudiencePi, I told myself that I need to keep burn rate to the minimal for my future startups if I don't have a regular income to cover for it.


Screenshots

Some other screenshots of the live running sites before it was shut down.


Campaign Wizard


Inventory Selections


Domain Report


Creatives Wizard