Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
フルスクラッチで書いたアドサーバの開発・運用史
Search
Satoshi
September 25, 2014
Technology
2
4.3k
フルスクラッチで書いたアドサーバの開発・運用史
アドサーバの開発・運用で得た知見について説明しています。
Satoshi
September 25, 2014
Tweet
Share
More Decks by Satoshi
See All by Satoshi
高速な広告配信サーバの作り方のコツ
satoshi03
3
460
スケールしない広告サーバの作り方
satoshi03
0
210
Gunosy AdServerのデータ周りの話
satoshi03
2
2.7k
Gunosy.go #2 container
satoshi03
1
60
Gunosy Go Lang Study #6 net net/http net/url
satoshi03
0
130
Other Decks in Technology
See All in Technology
リンクアンドモチベーション ソフトウェアエンジニア向け紹介資料 / Introduction to Link and Motivation for Software Engineers
lmi
4
300k
形式手法の 10 メートル手前 #kernelvm / Kernel VM Study Hokuriku Part 7
ytaka23
5
750
組み込みLinuxの時系列
puhitaku
4
1k
マイベストのデータ基盤の現在と未来 / mybest-data-infra-asis-tobe
mybestinc
2
1.9k
Terraform未経験の御様に対してどの ように導⼊を進めていったか
tkikuchi
1
260
これまでの計測・開発・デプロイ方法全部見せます! / Findy ISUCON 2024-11-14
tohutohu
3
250
障害対応指揮の意思決定と情報共有における価値観 / Waroom Meetup #2
arthur1
3
280
今、始める、第一歩。 / Your first step
yahonda
2
680
フルカイテン株式会社 採用資料
fullkaiten
0
40k
3次元点群データ「VIRTUAL SHIZUOKA』のオープンデータ化による恩恵と協働の未来/FOSS4G Japan 2024
kazz24s
0
130
徹底比較!HA Kubernetes ClusterにおけるControl Plane LoadBalancerの選択肢
logica0419
2
140
いろんなものと両立する Kaggleの向き合い方
go5paopao
2
970
Featured
See All Featured
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
26
2.1k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
231
17k
Practical Orchestrator
shlominoach
186
10k
4 Signs Your Business is Dying
shpigford
180
21k
Designing the Hi-DPI Web
ddemaree
280
34k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
A Philosophy of Restraint
colly
203
16k
Building Applications with DynamoDB
mza
90
6.1k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
7
560
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
Scaling GitHub
holman
458
140k
Transcript
フルスクラッチで書いた アドサーバの開発運⽤用史 株式会社Gunosy 2014 年年 9⽉月
©Gunosy Inc. 印南聡志(いんなみ さとし) アドエンジニア 2014年年6⽉月⼊入社(4ヶ⽉月⽬目) ⾔言語 l Java l Python
Git Hubアカウント l satoshi03 ⾃自⼰己紹介
©Gunosy Inc. 業務 • 「広告による収益を最⼤大化する」 • AdServerの開発・運⽤用 • 配信周りの開発 •
広告推薦ロジック開発 • 広告枠の開発 • ログ集計・分析 • チーム⼈人数 • 3 ~∼ 4⼈人 アドチームとは
©Gunosy Inc. 罠にかかって学んだ広告事業で⼤大切切な2つのこと 本⽇日話したい内容
©Gunosy Inc. Gunosyの広告事業 ⾃自社製のAdServerを開発・運⽤用 Gunosy Ads l ⾃自社メディア(Gunosyアプリ)に広告配信 Gunosy Ad
network l 他社メディアに広告配信 今回のお話
©Gunosy Inc. 広告事業で⼤大切切なこと 広告による収益の最⼤大化 良良い広告を⼤大量量に配信すること
©Gunosy Inc. 良良い広告とは? メディア (Gunosy) ・ ユーザのクリック率(CTR)が高い ・
広告の単価が高い 第一の罠 単価の高い広告をクリックさせればいい
©Gunosy Inc. メディア視点での収益⾄至上主義の罠 メディアの収益性を上げたい!! とにかくクリックされやすい広告を出す クリック率率率が上昇しメディアの収益が増加 しかし、、、
©Gunosy Inc. しかし、、 次第に収益が低下
©Gunosy Inc. このとき起きていること ユーザ メディア (Gunosy) 広告主 ・ ユーザのクリック率が高い
・ 広告の単価が高い ・ ニーズにマッチしていない ・ ストレスが多い ・ ユーザのコンバージョン率 が低い • ストレス増加によるユーザの離脱 • 効果があわないことによる広告主の離脱
©Gunosy Inc. ⼤大切切なこと:その1 ユーザ メディア (Gunosy) 広告主 ・ ユーザのクリック率が高い
・ 広告の単価が高い ・ ニーズにマッチしている ・ ストレスが少ない ・ ユーザのコンバージョン率 が高い 良い広告の定義はユーザ・広告主・メディアによって異なる ユーザ・広告主・メディア全ての利益を最大化!「三方良し」
©Gunosy Inc. 【参考】良良い広告を判断するための指標 DAU (Daily Active User) 1⽇日のアクティブユーザ数 CVR (ConveRsion
Rate) クリックに対するコンバージョンの割合 ユーザ 広告主 メディア eCPM (effec2ve Cost Per Mill) 1000回インプレション(表示)あたりの収益 CTR (Click Through Rate) インプレッション(表示)に対するクリックの割合 CPA (Cost Per Acquisi2on) 1コンバージョンにかかったコスト
©Gunosy Inc. 広告事業で⼤大切切なこと 広告による収益の最⼤大化 良良い広告を⼤大量量に配信すること
©Gunosy Inc. ⼤大量量に配信するとは? • 配信にレイテンシを出さない(< 50msec) • 表⽰示枠(在庫)を増やす • (もちろん)⽌止まらない
©Gunosy Inc. アクセス数の急激な増加 5⽉月から4ヶ⽉月で5倍以上のアクセス数の増加 数千万リクエスト/ 日 数億リクエスト/日 5月 9月
©Gunosy Inc. アクセス数の時間ごとの急激な増加 ピーク時には通常時の3倍〜~5倍のアクセス 21:00 17:00 12:00
8:00 リクエスト数 時間
©Gunosy Inc. 第二の罠 サーバを横に並べればなんとかなる!
©Gunosy Inc. サーバ台数を20台に、、 _⼈人⼈人⼈人⼈人⼈人⼈人_ > レイテン⽒氏来訪 <  ̄Y^Y^Y^Y^Y ̄
©Gunosy Inc. そのとき何がおこっていたか 問題:R/WをするRedisにアクセスが集中 Write/Bulk Read待ちが発⽣生し遅延が発⽣生 ・・・・・ Elastic Load Balancing
EC2 instance Redis on EC2 instance Redis Read Replica
©Gunosy Inc. 対策 ・・・・・ Elastic Load Balancing EC2 instance Redis
on EC2 instance Redis Read Replica Amazon S3 bucket 配信側でRedisのReadをファイルで処理 s3からダウンロードして各インスタンスでロード レイテンシ が50msec以内に!!
©Gunosy Inc. ⼤大切切なこと:その2 たとえキャッシュでも1箇所を参照するような構成にしない スケールアウトの過程で必ずボトルネックに
©Gunosy Inc. まとめ 罠にかかって学んだ広告事業で⼤大切切な2つのこと 1. ユーザ・広告主・メディア全ての利利益を最⼤大化 2. キャッシュでも1箇所を参照するような構成にしない
©Gunosy Inc. We are hiring!!! 良良い広告を⼤大量量に配信する仕組みを 作りたいエンジニアWanted!!