Define the problem first
I'm a Senior Software Engineer at Unity, working on Tapjoy Offerwall, a ad solution for mobile games and apps. In this post, I want to demysify how online ads work, especially in the context of mobile games and app. It won't cover every detail but will give you a solid understanding of the ecosystem, the players involved, and how it all comes together. Plus, I won't explain Offerwall itself, but rather focus on the broader ad tech landscape that makes it possible.
When you play games or browse the web, you see ads everywhere. I knew that ads are everywhere but I didn't know how they really work even though I have been working on the Ads team. This article is for those who want to understand the ad tech ecosystem. I will explain key actors, how they interact, and the techonology behind it with top-down approach. I wish you will get a better understanding of how online ads works after reading this post.
There are key players in the online advertising ecosystem that work together to deliver ads to users. Here's a high-level overview:
That's a lot of jargon, but don't worry. I'll break it down in the following sections. Before that, here's a high-level diagram of the ecosystem:
flowchart TD
Advertisers -->|Create Ads| AdNetworks
AdNetworks -->|Distribute Ads| Publishers
Publishers -->|Show Ads| Users
Advertisers -->|Buy Ad Space| DSPs
DSPs -->|Bid on Inventory| AdExchanges
AdExchanges -->|Sell Inventory| SSPs
SSPs -->|Provide Ad Space| Publishers
MMPs -->|Track Performance| Advertisers
sequenceDiagram
participant Advertiser
participant DSP
participant AdExchange
participant SSP
participant Publisher
Advertiser->>DSP: Submit Ad Campaign
DSP->>AdExchange: Bid on Ad Space
AdExchange->>SSP: Auction Ad Inventory
SSP->>Publisher: Provide Ad Space
Publisher->>User: Display Ad
User->>Publisher: Interaction (e.g., click)
Publisher->>SSP: Report Interaction
SSP->>AdExchange: Update Metrics
AdExchange->>DSP: Notify Results
DSP->>Advertiser: Campaign Performance
Well, I just come up with a few interviews that I failed. When I look back, I had interviews a lot of times when I switched jobs at the early stage of my career. As I get experienced, the number of interviews was getting less and the difficulty was getting easier but I still remember that I failed some interviews.
Here is the thing. As a result, the failure was not a bad thing. Thanks to those failures. When looking back, I'm realizing that I was unprofessional and immature back then. I didn't know what they wanted and didn't think about the career path and goal.
Anyways, I got a chance to move on a better company and a better job in my perspectives. Every places where I worked gave me a lot of opportunities to learn and grow. I am grateful for that.
First company tought me general knowledge of the industry, coding, machine learning, software engineering, and project management. In the second company, I wrote a thousands of thousands of lines of code and that was the most immersive experience I've had. In the third company, I learend communication skills and how to deliver features on the top of ongoing projects. In the fourth company, I realized what kinds of colleagues and products I want to work with/work on. In the fifth company, I experienced a functional programming and a manager role. In the sixth company, I saw how to work like Google — but not at Google. In the current company, I'm going through how to make money from the product in huge projects.
The domain, the number of employees, the structure, the average age, and the nationalities — everything was different from company to company. But one thing is certain: each of them gave me valuable experiences. I'm always grateful for the journey I've been on.
I have been working at Unity for 6 months now. One sentence summary: I am happy to be here. Nice people, great work, and a good environment. Nothing prevents me from doing my best work. The product that I am working on is running well, so we have to changing the wheels on a moving train. As a result, I need to be careful not to break anything while improving it. I am learning a lot and satisfied with the work I am doing. I wish I could keep this mindset for a long time. Cheers!