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
ryokosuge
October 01, 2019
Programming
6
1.4k
広告実装、こうすると幸せだよ
potatotips #65で登壇した資料です
ryokosuge
October 01, 2019
Tweet
Share
More Decks by ryokosuge
See All by ryokosuge
6年ほど育ったiOSプロジェクトを刷新した話 / Renewed iOS project that grew up for about 6 years
ryokosuge
2
740
アプリ開発とSDK開発の違い
ryokosuge
1
600
広告実装の苦しみ
ryokosuge
0
380
アプリを十数個作った僕が初めて書いたテストの話
ryokosuge
2
2.3k
広告SDKを駆使して 売り上げを5倍にした
ryokosuge
2
4k
早期発見プロジェクト
ryokosuge
0
52
Other Decks in Programming
See All in Programming
Rails 1.0 のコードで学ぶ find_by* と method_missing の仕組み / Learn how find_by_* and method_missing work in Rails 1.0 code
maimux2x
1
190
1年目の私に伝えたい!テストコードを怖がらなくなるためのヒント/Tips for not being afraid of test code
push_gawa
1
510
パスキーのすべて ── 導入・UX設計・実装の紹介 / 20250213 パスキー開発者の集い
kuralab
3
890
負債になりにくいCSSをデザイナとつくるには?
fsubal
10
2.6k
クリーンアーキテクチャから見る依存の向きの大切さ
shimabox
5
960
Multi Step Form, Decentralized Autonomous Organization
pumpkiinbell
1
860
Ça bouge du côté des animations CSS !
goetter
2
150
楽しく向き合う例外対応
okutsu
0
590
Amazon Q Developer Proで効率化するAPI開発入門
seike460
PRO
0
120
Djangoアプリケーション 運用のリアル 〜問題発生から可視化、最適化への道〜 #pyconshizu
kashewnuts
1
260
How mixi2 Uses TiDB for SNS Scalability and Performance
kanmo
40
16k
sappoRo.R #12 初心者セッション
kosugitti
0
280
Featured
See All Featured
Scaling GitHub
holman
459
140k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Testing 201, or: Great Expectations
jmmastey
42
7.2k
Designing Experiences People Love
moore
140
23k
Music & Morning Musume
bryan
46
6.4k
Designing for humans not robots
tammielis
250
25k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
193
16k
Navigating Team Friction
lara
183
15k
How to Think Like a Performance Engineer
csswizardry
22
1.4k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.1k
Transcript
広告実装、こうすると幸せだよ potatotips #65 2019/10/01 ryokosuge
自己紹介 Twitter: @ryo_kosuge GitHub: ryokosuge • 株式会社fluct ◦ SSP開発本部 SDKチーム
▪ 主にFluctSDK iOSの 開発してます ◦ 入社して1年経ちそう • 前職はマンガアプリ作ってまし た
アジェンダ • はじめに • バナー実装 ◦ refresh rate ◦ Scroll(Table、Collection)View
• 動画リワード実装 ◦ retry処理 ◦ 動画リワードSSPってなに? • まとめ
はじめに
はじめに • 今回はアプリに特化したお話です ◦ Webも話せなくもないけど、基本タグを貼って終わりが一番ので • 広告用語が少し出てくるかと思いますが、簡単に説明するのでわからないこ とあったら懇親会で聞いてください ◦ ググれなんて言わない気持ち
バナー実装
バナー実装(refresh rate) • refresh rateはいじらないほうがいい ◦ refresh rate ▪ バナー広告のリフレッシュ
= 切り替え時間 ◦ 各社がrefresh rateに対して最適解を持っている ▪ 実装で変えられる広告SDKも多いですが、ほぼ全てが管理画面で変 えられるようになっています
バナー実装(refresh rate) • refresh rateを短くするとどうなるか ◦ 広告の切り替え間隔が短くなる ▪ つまり imp
が増える ◦ ユーザーの広告を認識する時間が短くなる ▪ click数が減る ◦ impが増えてclickが減ると枠の価値が下がる ▪ 表示回数多いのにclickが少ない枠と認識される • 結果効果の高い広告が配信されなくなり、さらに価値の薄い枠になる
バナー実装(Scroll View) • 適切なタイミングで広告表示Requestを飛ばすべき ◦ TableView / CollectionViewのcell返す時に毎回リクエストするのはダ メ ▪
impだけ爆発的に伸びる可能性がある • refresh rateと同じ ◦ そもそもCellでバナー表示をするのはスクロールがカクついたりするた めあまりオススメしない ▪ 広告SDKもそれように作られていないことが多い
バナー実装(Scroll View) • 一度生成したら使い回す手法を取り入れる ◦ 初回にRequest飛ばしたらあとはrefresh rateに身を任す ◦ 画面から表示されなくなるタイミングでrequestを止められる広告SDK もある
▪ 公開methodがなくても内部で実行されている場合もある
動画リワード
動画リワード(retry処理) • 無限にリトライするのはダメ絶対 ◦ 読み込みに失敗する理由はたくさんあるけど大きく分けて3つ ▪ Network Error • 通信環境がよろしくない
• 数秒あけてretry処理を挟むなどするのが良い ▪ 内部処理エラー • 案件によってエラーになっていることもあるのでretryして別案件を引ければ良い ▪ No Ad • 広告在庫がない ◦ 在庫なしなのですぐに在庫が復活するわけではない
動画リワード(retry処理) • No Adの場合どうしたら良いの? ◦ 違うADNWへパスバックするのが良い ◦ 動画リワードは売り上げを高くするためにfloor priceをあげていること が多い
▪ 営業担当者にお願いしてfloor price運用から在庫埋めるほうの運用 に差し替えてもらう(もしくは管理画面で) • 売り上げと在庫を両方担保したい気持ち、わかる
動画リワード(SSPって何?) • SSP = Supply-Side Platform ◦ 要は広告面の収益を最大化させるためためのplatform • SSPは各ADNWの中から最適な広告を表示させるために色々頑張る
◦ 最適な広告 = 枠収益最大化させる広告 • 動画リワードのSSPって何? ◦ 最適解のロジックはSSP側が持っていて、読み込みや再生は各ADNWの SDKで行われる ◦ どこのADNWの動画リワードを再生させると売り上げが最大化するのか
動画リワード(SSPって何?) • 動画リワードSSPをやっている会社さんはたくさんのADNWと連携している ◦ 運用も各社すごいやっている ◦ しっかり全requestに対して広告を返せるように細かい運用をしている ▪ あるADNWはfloor price引いて収益最大化を目指し、あるADNWは
在庫を返すことを目指すなどなど • 1つの枠に対してSSPなSDKを組み込むことでパスバック処理を書かなくても よくなる ◦ 各ADNWへの処理はSSPなSDKが対応しているので気にしなくて済む
まとめ
まとめ • バナーは適切なタイミングでrequestをするように心がける ◦ refresh rateとかをアプリ実装でいじらないほうがいい • 動画リワードのretry処理を見誤るとたくさんrequest飛ばすけど再生されな い枠認定されてしまう ◦
No Adがでた時はユーザーに在庫ないことをお知らせする ◦ 違う広告SDKへパスバックしてどうにか在庫を確保する • 動画リワードSSPなSDKを使うと複数のADNWをまとめて管理してくれる ◦ 実はAdMobにも似たような機能があります
ご静聴ありがとうございました